Скрипт отчета

отредактировано 00:41 Раздел: FastReport 3.0
Требуется - добавить в пространство переменных экземпляр IDispatch, чтобы там с ним работать.

Делаю

fsGlobalUnit()->AddedBy = this;

Variant ComEnvVar;
ComEnvVar.VType = varDispatch;
ComEnvVar.VDispatch = FComEnv;

fsGlobalUnit()->AddVariable( "MyVar", "Variant", ComEnvVar );

Помещаю на отчет Memo с текстом [MyVar.SomeVar]

Вижу вызов на MyVar, в качестве результата возвращаю IDispatch, соответствующий SomeVar и ожидаю вызова SomeVar.Invoke с индексом 0, а получаю сообщение об ошибке "Invalid variant operation".

Подобную ошибку я правил в 2.5, помнится.

Комментарии

  • отредактировано 00:41
    Нашел

    function TfrxCustomMemoView.FormatData(const Value: Variant;
    AFormat: TfrxFormat = nil): String;
    var
    SaveDecimalSeparator: Char;
    begin
    if AFormat = nil then
    AFormat := FDisplayFormat;
    // Мои правки
    // if Value = Null then
    // Result := ''
    if VarIsNull( Value ) then
    begin
    Result := '';
    Exit;
    end;

    Блин, никогда эта Делфи не умела правильно с VARIANT работать.

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

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