Відображення декількох стовпців у зображенні графіку gantt

Огляд

У Microsoft Project дані проекту не тільки доступні у текстовій формі, але й можуть відображатися графічно як діаграму. Найпопулярнішими типами діаграм є діаграма Gantt, використання завдань та використання ресурсів. Aspose.Tasks для .NET підтримує передачу даних проекту на діаграму.

У цій статті описані два підходи, які дозволяють налаштувати стовпці проекту в діаграму Ганта та демонструють, як передати діаграму до зображення.

ГАРАНТ ГАНТТ

Графік Ганта - це графічне представлення проектних завдань, розбитих днями, тижнями чи місяцями. Проект складається з завдань, присвоєних різним ресурсам. Індивідуальне завдання може бути розділене на підзадачі в рамках управління завданнями. Кожне завдання має дату початку та дату кінця, яка визначає його тривалість. Діаграма Gantt в проекті Microsoft швидко дає швидкий огляд таких даних проекту. Цей скріншот показує типову діаграму Gantt в Microsoft Project:

Графік Gantt, представлений Microsoft Project

Зображення діаграми gantt in Aspose.Tasks for .net

У Aspose.Tasks для .NET клас проекту є головним класом для обробки файлів проектів. Клас проекту розкриває різні перевантаження, якщо “зберегти” метод експорту даних проекту в різні формати файлів. Користувачі можуть налаштувати цей метод для експорту даних проекту в будь -який підтримуваний формат шляхом передачі параметрів.

Наприклад, розгляньте збереження (рядок, збереження) перевантаження.

Тип SaveOptions

Поведінка візуалізації може бути налаштована за допомогою властивостей класу SaveOptions (або одного з його спадкоємців). Наприклад, розмір сторінки вихідного документа можна встановити за допомогою saveOptions.CustompageSize Властивість або SaveOptions.legendoneachpage можна встановити, щоб визначити, чи слід відобразити легенду на кожній сторінці.

1PdfsaveOptions SaveOptions = нові pdfsaveOptions ()
2{
3   CustomPagesize = новий розмір (800, 600),
4   Legendoneachpage = false
5};

Існує щонайменше два підходи для налаштування зовнішнього виду наданої діаграми.

Налаштуйте стовпці Gantt Chart за допомогою типу ProjectView

Зверніть увагу, що це застарілий спосіб налаштувати зовнішній вигляд, і це менш ймовірність, що він буде розширений або вдосконалений у майбутньому. Клас ProjectView має обмежену функціональність і може бути використаний для відображення конкретних стовпців у вихідному зображенні. Конструктор цього класу приймає список масиву класу GanttchartColumn як його аргумент. Отриманий екземпляр ProjectView повинен бути встановлений як значення властивості SaveOptions.View. Приклад коду показує, як він працює:

 1// створити стовпці перегляду
 2стовпці var = новий список <ganttchartcolumn> ();
 3columns.add (новий GanttchartColumn ("Ім'я", 100, новий TaskToColumnTextConverter (Taskname)));
 4columns.add (новий GanttchartColumn ("Примітки", 100, новий TaskToColumnTextConverter (Tasknotes)));
 5columns.add (новий GanttchartColumn ("Ресурси", 200, новий TaskToColumnTextConverter (TaskResources)));
 6// створити перегляд
 7ProjectView ProjectView = новий ProjectView (стовпці);
 8
 9// створити SaveOptions
10PdfsaveOptions SaveOptions = нові pdfsaveOptions ()
11{
12   CustomPagesize = новий розмір (800, 600),
13   Переглянути = ProjectView
14};
15
16// Збережіть проект у PDF.
17project.save ("output.pdf", saveOptions);

Конструктор класу GanttchartColumn займає три аргументи - ім’я стовпця, ширина та делегат TaskToColumnTextConverter - для перетворення даних завдань у текст стовпця. У наведеному вище прикладі коду делегат TaskToColumnTextConverter викликає три цільові методи, Taskname, Tasknotes та TaskResources, щоб перетворити дані в цих стовпцях у текст. Три методи реалізуються в наступному прикладі коду.

 1/// <резюме>
 2/// перетворює дані імені завдання в текст стовпця.
 3/// </summary>
 4/// <param name = "task"> Поточне завдання. </param>
 5/// <rengts> текст стовпця. </returns>
 6Приватний рядок Taskname (завдання завдання)
 7{
 8    StringBuilder res = новий StringBuilder ();
 9    for (int i = 1; i <task.outlineLevel; i ++)
10    {
11        res.append ("");
12    }
13
14    res.AppendFormat("{0}. {1}", task.Id, task.Name);
15    return res.ToString();
16}
17
18/// <резюме>
19/// перетворює дані імені завдання в текст стовпця.
20/// </summary>
21/// <param name = "task"> Поточне завдання. </param>
22/// <rengts> текст стовпця. </returns>
23Приватний рядок tasknamehtml (завдання завдання)
24{
25    StringBuilder res = новий StringBuilder ();
26    for (int i = 1; i <task.outlineLevel; i ++)
27    {
28        res.append ("");
29    }
30
31    res.AppendFormat("{0}. {1}", task.Id, task.Name);
32    return res.ToString();
33}
34
35/// <резюме>
36/// перетворює дані про примітки завдання в текст стовпця.
37/// </summary>
38/// <param name = "task"> Поточне завдання. </param>
39/// <rengts> текст стовпця. </returns>
40приватні рядки Tasknotes (завдання завдання)
41{
42    if (task.notestext! = null)
43        Повернути завдання.notestext;
44    інакше
45        return string.empty;
46}
47
48/// <резюме>
49/// перетворює дані про ресурси завдання в текст стовпця.
50/// </summary>
51/// <param name = "task"> Поточне завдання. </param>
52/// <rengts> текст стовпця. </returns>
53Приватні рядки TaskResources (завдання завдання)
54{
55    StringBuilder res = новий StringBuilder ();
56    Project Project = Task.ParentProject;
57    bool bfirst = правда;
58    foreach (призначення ресурсів у проекті.getResourceasSignmentsByTask (завдання))
59    {
60        якщо (призначення.resource! = null)
61        {
62            if (! Bfirst)
63            {
64                res.append (",");
65            }
66 
67            res.Append(assignment.Resource.Name);
68            bFirst = false;
69        }
70    }
71
72    return res.ToString();
73}

Далі наведено зображення та HTML -зображення, створене з прикладом коду:

в результаті HTML експортується Aspose.Tasks 1 в результаті HTML експортується Aspose.Tasks 2

Налаштуйте стовпці gantt діаграми за допомогою типу перегляду

Клас використання використання та його спадкоємці - це рекомендований спосіб налаштування діаграм під час надання даних проекту. Клас перегляду відповідає для перегляду налаштувань, що використовуються в MS Project (які зберігаються у файлі MPP) та надали більш багатий API порівняно з API ProjectView. Доступні властивості класу перегляду можна знайти в посилання API. Існуючий перегляд можна взяти (для проектів, завантажених з файлу MPP, з переглядами, збереженими Microsoft Project), налаштовані та передані в метод проекту.

 1Проект Project = новий проект ("input.mpp"));
 2
 3// Отримати існуючий перегляд.
 4var view = (ganttchartview) project.views.getbyname ("& gantt Chart");
 5
 6// Визначте та вставте новий стовпець у перегляд.
 7Tablefield Field = новий Tablefield ()
 8{
 9    Aligndata = stringalignment.far,
10    Ширина = 50,
11    Поле = поле.taskname,
12    Title = "ім'я завдання"
13};
14
15view.table.tablefields.insert (1, поле);
16PdfsaveOptions SaveOptions = нові pdfsaveOptions ()
17{
18    ViewSettings = Перегляд
19};
20
21project.save ("output.pdf", saveOptions);
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.