Ряд примеров работы с 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;
Комментарии
Ряд примеров работы с 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
С уважением, Олег Прялков.