Программно свернуть измерение

mpuzanovmpuzanov Ижевск
отредактировано 16:36 Раздел: FastCube
Подскажите пожалуйста,
как программно свернуть измерение при создании среза,
а также установить нач.значения фильтра

Комментарии

  • отредактировано December 2011
    Приветствую.

    Ряд примеров работы с FastCube через код представлен в демо FastCubeExamples.

    1. Развернутость уровня в оси:
    TfcSlice
    property XAxisFullExpanded[ALevel: integer]: Boolean;
    property YAxisFullExpanded[ALevel: integer]: Boolean;


    2. Обращение к фильтру уникального значения:
    TfcSlice
    property UniqueFilter[ARegion: TfcRegionOfField; AIndexInRegion, AUniqueIndex: integer]: Boolean;

    Или так:

    Для управления фильтрами используйте методы из TfcSlice.SliceUniques:
    procedure SetAllFilter(FieldIndex: Integer); // Сброс фильтров
    procedure InverseFilter(FieldIndex: Integer); // Инверсия фильтров
    procedure SetNoneFilter(FieldIndex: Integer); // Полная фильтрация
    и
    property Filter[AFieldIndex, AUniqueIndex: Integer]: Boolean;
    Здесь AFieldIndex - индекс поля в списке полей куба
    AUniqueIndex- внутренний индекс уникального значения

    для группировки нескольких изменений используйте блок (для ускорения перерасчёта)
    fcSlice.BeginUpdate;
    ...
    fcSlice.EndUpdate;


    Вот пример из демо FastCubeExamples:
    // Filter only January sales
    procedure ex_FilterMonthJanuaryonly;
      var AIndex, AUniqueValueIndex: integer;
      begin
        if fcSlice.SliceFields.Find('#Month_Date', AIndex) then
        begin
          if (fcSlice.SliceFields[AIndex].Regions * [rf_CapXAx, rf_CapYAx, rf_Page]) <> [] then
          begin
            if fcCube.FindUnique(fcSlice.SliceFields[AIndex].CubeField.Index, '1', AUniqueValueIndex) then
            begin
              fcSlice.BeginUpdate;
              fcSlice.SliceUniques.SetAllFilter(fcSlice.SliceFields[AIndex].CubeField.Index);
              fcSlice.SliceUniques.Filter[fcSlice.SliceFields[AIndex].CubeField.Index, AUniqueValueIndex] := False;
              fcSlice.SliceUniques.InverseFilter(fcSlice.SliceFields[AIndex].CubeField.Index);
              fcSlice.EndUpdate;
            end
          end
        end
      end;
    

    С уважением, Олег Прялков.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.