Search Results for

    Show / Hide Table of Contents

    Источники данных для диаграммы Ганта

    Для подключения диаграммы к источнику данных существует класс GanttDataSource. По умолчанию он уже содержится в диаграмме, но не имеет никаких данных в себе.

    GanttDataSource

    Класс позволяет построить иерархическю структуру на основе табличных источников (System.Data.DataSet, System.Array) используя стандартный механизм DataBinding, загрузить существующий набор данных из XML или CSV файлов, а так же задать данные руками.

    Для загрузки данных из файлов существуют методы ReadXmlDta и ReadCsvData.

    GanttDataSource source = new GanttDataSource();
    
    // Загружает набор данных из xml файла
    source.ReadXmlData(path_to_xml_file);
    

    После загрузки данных (или до) необходимо указать, какие поля будут использоваться для определения значений.

    Предположим, у вас есть Xml файл, нода которого имеет следующий вид:

    <record text="Release" StartDate="30.3.2021" EndDate="31.3.2021" Resource="SomeResourceName"/>
    

    Для подгрузки данных из этого xml нам понадобится следующий код:

    source.NameMember = "text";
    source.StartDateMember = "StartDate";
    source.EndDateMember = "EndDate";
    source.ResourceMember = "text";
    

    ResourceMember использовать необязательно. Если он не будет указан, то у всех записей индекс будет равен 0 и они будут использовать при отрисовке первый цвет в палитре.

    Также есть возможность в качестве данных использовать простой список. Для этого следует наполнить коллекцию records элементами GanttRecord, каждый из которых имеет поля Text, StartDate, EndDate и Index для определения текста, даты начала, даты конца и индекса записи.

    В следующем примере мы создаем экземпляр GanttDataSource и устанавливаем его в качестве источника данных.

    GanttDataSource source = new GanttDataSource();
    
    // Создаем новый список
    List<GanttRecords> records = new List<GanttRecords>();
    
    // Наполняем список элементами
    records.Add(new GanttRecord()
    {
        Text="Task1",
        StartDate = new DateTime(day: 1, month: 1, year: 2021),
        EndDate = new DateTime(day: 10, month: 1, year: 2021),
        Index = 0
    });
    records.Add(new GanttRecord()
    {
        Text="Task2",
        StartDate = new DateTime(day: 10, month: 1, year: 2021),
        EndDate = new DateTime(day: 20, month: 1, year: 2021),
        Index = 1
    });
    records.Add(new GanttRecord()
    {
        Text="Task3",
        StartDate = new DateTime(day: 20, month: 1, year: 2021),
        EndDate = new DateTime(day: 31, month: 1, year: 2021),
        Index = 2
    });
    
    // Устанавливаем список в качестве источника данных
    source.DataSource = records;
    

    Обратите внимание, что при таком способе не нужно указывать, какие поля будут использоваться для определения значений.

    Back to top © 2021-2022 Copyright ООО «Быстрые отчеты»