Search Results for

    Show / Hide Table of Contents

    Загрузка в куб данных из одной таблицы базы данных

    Набор компонентов FastCube предназначен для построения сводных таблиц на основе "плоских" данных.

    Простейшим источником для куба является таблица базы данных.

    Для загрузки данных в куб необходимо подключение к базе через компонент - наследник TDataSet. Его выбор зависит от используемых в приложении компонентов доступа к БД .

    TfcxDBDataSet служит для связи компонента доступа с описателем источника данных для куба: TfcxDataSource.

    TfcxDataSource содержит в себе полное описание структуры данных, загружаемых в куб. В нём описываются все источники, поля этих источников, взаимосвязи между источниками, правила конвертирования данных и т.п. Один из источников является основным, он указывается в свойстве TfcxDataSource.DataSet. В случае, когда загружаем данные только из одной таблицы, достаточно указать только основной источник.

    Далее надо связать компоненты TfcxDataSource - TfcxCube - TfcxSlice - TfcxSliceGrid. TfcxCube и TfcxSlice можно связывать через менеджер фильтров TfcxFilterManager, если он упущен, то в TfcxSlice автоматически создастся внутренний объект TfcxFilterManager. Отдельно выделять TfcxFilterManager нужно только в случае, если один менеджер фильтров будет использоваться в нескольких срезах.

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

    Описание полей основного источника хранит свойство TfcxDataSource.Fields. Очистить описание можно методом TfcxDataSource.DeleteFields. Заполнить описание полей из источника можно методом TfcxDataSource.AddFields, но заполнение происходит только если в источнике созданы объекты полей (определены в дизайнере или созданы автоматически при открытии DataSet). Если Вы не планируете менять описание полей, вызывать AddFields не нужно, т.к. его вызов произойдет автоматически при открытии источника данных.

    В качестве источника для куба могут служить: компонент TfcxDataSource, файл с сохранением куба, поток. Выбор источника происходит на основании свойства TfcxCube.CubeSource: TfcxCubeSource.

      TfcxCubeSource =
      (
        fccs_None,           // None
        fccs_DataSource,     // load from fcxDataSource
        fccs_CubeFile,       // load from file
        fccs_CubeStream      // load from Stream
      );
    

    В нашем случае надо присвоить fccs_DataSource.

    Загрузка данных куба вызывается методом TfcxCube.Open. При этом куб автоматически открывает необходимые источники и загружает из них данные из описанных полей.

    После загрузки данных кросс-таблица готова к работе с пользователем.

    Пример:

    //  Создание необходимых компонентов, если они отсутствуют на форме.
    fcxDBDataSet1 := TfcxDBDataSet.Create(Self);
    fcxDataSource1 := TfcxDataSource.Create(Self);
    fcxCube1 := TfcxCube.Create(Self);
    fcxSlice1 := TfcxSlice.Create(Self);
    fcxSliceGrid1 := TfcxSliceGrid.Create(Self);
    fcxSliceGrid1.Parent := Self;
    fcxSliceGrid1.Align := alClient;
    // Настраиваем связи между компонентами
    fcxDBDataSet1.DataSet := DataSet1;
    fcxDataSource1.DataSet := fcxDBDataSet1;
    fcxCube1.DataSource := fcxDataSource1;
    fcxSlice1.Cube := fcxCube1;
    fcxSliceGrid1.Slice := fcxSlice1;
    // Очищаем описание полей
    fcxDataSource1.DeleteFields;
    // Указываем тип источника данных куба
    fcxCube1.CubeSource := fccs_DataSource;
    // Загружаем данные в куб
    fcxCube1.Open;
    
    Back to top © 1998-2024 ООО «Быстрые отчеты»