Поключение внешней функции

hichic
отредактировано 16:43 Раздел: FastReport 4.0
Подключаю к отчету внешнюю функцию (представление числа прописью). Делаю все, как написано в мануале:
function TForm1.frxReport1UserFunction(const MethodName: string;
  var Params: Variant): Variant;
begin
  if MethodName = 'NumToWords' then
    Result := NumToWords(Params[0]);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  frxReport1.AddFunction('function NumToWords(num: String): String');
  frxReport1.ShowReport();
end;
В скрипте отчета, добавляю результат функции NumToWords в Memo:
procedure ReportSummary1OnBeforePrint(Sender: TfrxComponent);                                   
begin
  Memo1.Text := NumToWords(IntToStr(<frxDBDataset1."TOTAL">));
end;
На что при построении отчета вылетает ошибка:
написал:
Could not convert variant of type (Null) into type (OleStr)
Функция в Delphi работает на ура. Подскажите, пожалуйста, в чем причина ошибки.

Комментарии

  • gpigpi
    отредактировано 16:43
    Имя метода должно быть в верхнем регистре
    function TForm1.frxReport1UserFunction(const MethodName: string;
      var Params: Variant): Variant;
    begin
      if MethodName = 'NUMTOWORDS' then
        Result := NumToWords(Params[0]);
    end;
    
  • hichic
    отредактировано 16:43
    О дааа. Благодарю, gpi.
  • отредактировано 16:43
    hic написал: »
    О дааа. Благодарю, gpi.
    А во Free Report такое возможно?
  • gpigpi
    отредактировано 16:43
    Да. TfrReport.OnUserFunction есть и во FreeReport
    Пример есть в папке Demos\Reports
  • dron-sdron-s Россия
    отредактировано 16:43
    подробная статься о том как работать с пользовательскими функциями
    http://www.reportingfor.info/ru/news.php?extend.76.4

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

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