Відображення декількох стовпців у зображенні графіку gantt
Огляд
У Microsoft Project дані проекту не тільки доступні у текстовій формі, але й можуть відображатися графічно як діаграму. Найпопулярнішими типами діаграм є діаграма Gantt, використання завдань та використання ресурсів. Aspose.Tasks для .NET підтримує передачу даних проекту на діаграму.
У цій статті описані два підходи, які дозволяють налаштувати стовпці проекту в діаграму Ганта та демонструють, як передати діаграму до зображення.
ГАРАНТ ГАНТТ
Графік Ганта - це графічне представлення проектних завдань, розбитих днями, тижнями чи місяцями. Проект складається з завдань, присвоєних різним ресурсам. Індивідуальне завдання може бути розділене на підзадачі в рамках управління завданнями. Кожне завдання має дату початку та дату кінця, яка визначає його тривалість. Діаграма Gantt в проекті Microsoft швидко дає швидкий огляд таких даних проекту. Цей скріншот показує типову діаграму Gantt в Microsoft Project:
Зображення діаграми gantt in Aspose.Tasks for .net
У Aspose.Tasks для .NET клас проекту є головним класом для обробки файлів проектів. Клас проекту розкриває різні перевантаження, якщо “зберегти” метод експорту даних проекту в різні формати файлів. Користувачі можуть налаштувати цей метод для експорту даних проекту в будь -який підтримуваний формат шляхом передачі параметрів.
Наприклад, розгляньте збереження (рядок, збереження) перевантаження.
- Перший параметр - це ім’я файлу призначення.
- Другий і найважливіший параметр приймає одного з спадкоємців класу SaveOptions. Наприклад, для формату PDF можна передати PDFSaveOptions.
Тип 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 -зображення, створене з прикладом коду:
Налаштуйте стовпці 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);