изменение среза куба без пересчета

отредактировано 22:15 Раздел: FastCube
Есть куб с большим массивом данных. Часто приходится его перестраивать(менять поля, показатели) при этом на каждое изменение поля наблюдаем пересчет среза что утомляет.

Как выход повесил кнопку "Начало изменений - Конец изменений" с кодом
procedure TAnalizeForm.btnPClick(Sender: TObject);
begin
  if btnP.Caption = 'End' then begin
    fcSlice.BeginUpdate;
    btnP.Caption := 'Begin';
  end else begin
    fcSlice.EndUpdate;
    btnP.Caption := 'End';
  end;
end;

Но грид при этом не совсем корректно перерисовывается (поля визуально не добавляются, убираются тоже не корректно).
Может не досмотрел и есть механизм для реализации этого?
Т.е. набросал поля (они отобразились) и нажал рассчитать.

Надеюсь понятно написал. Заранее спасибо.

Комментарии

  • отредактировано 22:15
    Приветствую.

    Да, BeginUpdate - EndUpdate служат для группировки изменений и между этими командами не следует вызывать отрисовку, так как ряд структур может быть не создана и отображаемые данные могут быть некорректны.

    Как вариант, для Вашего случая, могу предложить располагать поле ПОКАЗАТЕЛИ в области фильтров до настройки осей. В этом случае расчет показателей не происходит.

    С уважением, Олег.

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

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