Свойство TfrxComponent.IsLoading

Eugene LachinovEugene Lachinov Санкт-Петербург
отредактировано 08:13 Раздел: FastReport 3.0
Свойство TfrxComponent.IsLoading
сейчас
property IsLoading: Boolean read GetIsLoading write FIsLoading;

предлагается
property IsLoading: Boolean read GetIsLoading write SetIsLoading;

SetIsLoading нужен виртуальный

Проблема - наследники TfrxDataSet (точнее связанные с ними компоненты VCL)пытаются открыться во время загрузки, так как состояния ComponentState csLoading, csReading не устанавливаются

Комментарии

  • отредактировано 08:13
    Подробнее можно, а то я чего-то не пойму. Какой загрузки? В какой момент открываются? Какие компоненты имеются виду под наследниками TfrxDataset? Нет у меня кода для открытия датасетов, разве что в дизайнере считывается список полей...
  • Eugene LachinovEugene Lachinov Санкт-Петербург
    отредактировано 08:13
    AlexTZ написал:
    Подробнее можно, а то я чего-то не пойму. Какой загрузки? В какой момент открываются? Какие компоненты имеются виду под наследниками TfrxDataset? Нет у меня кода для открытия датасетов, разве что в дизайнере считывается список полей...
    { frxCustomDB.pas }

    procedure TfrxCustomDataset.SetActive(Value: Boolean);
    begin
    Dataset.Active := Value;
    end;

    procedure TfrxCustomDataset.SetFilter(const Value: String);
    begin
    Dataset.Filter := Value;
    end;

    procedure TfrxCustomDataset.SetFiltered(Value: Boolean);
    begin
    Dataset.Filtered := Value;
    end;

    Эти процедуры вызываются при загрузке формы (fr3) из файла, но у DataSet не установлено состояние csLoading, csReading.

  • отредактировано 08:13
    Да, но свойство Active не сохраняется в потоке! Оно в секции public именно по этой причине - чтобы датасеты не открывались при загрузке. Они все равно откроются в нужный момент при работе отчета, тогда какой смысл в свойстве Active?
  • Eugene LachinovEugene Lachinov Санкт-Петербург
    отредактировано 08:13
    AlexTZ написал:
    Да, но свойство Active не сохраняется в потоке! Оно в секции public именно по этой причине - чтобы датасеты не открывались при загрузке. Они все равно откроются в нужный момент при работе отчета, тогда какой смысл в свойстве Active?
    Обработка состояния компонента (csReading) идет в перекрытом методе TDataSet.SetFiltered

    предложение

    property IsLoading: Boolean read GetIsLoading write SetIsLoading;

    SetIsLoading - виртуальный и это никак не сказывается на текущей работе FastReport

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

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