Пользовательские фукнции при вызове отчета из отче

отредактировано 05:46 Раздел: FastReport 3.0
Привет всем! Подскажите есть ли корректный выход из ситуации?
При создании главной формы приложения добавляю пользовательскую функцию
procedure TFormMain.FormCreate(Sender: TObject);
begin
frxReport.AddFunction('function DoPadeg(FIO:string;Padeg:shortint): string;');
end;

потом делаю
function TFormMain.frxReportUserFunction(const MethodName: String;
var Params: Variant): Variant;
begin
if MethodName = 'DOPADEG' then Result :=DoPadeg(Params[0],Params[1]);
end;

Сама функция DoPadeg описана в модуле со всеми функциями используемыми в проекте.

При создании отчета в скрипте есть код

procedure Memo18OnBeforePrint(Sender: TfrxComponent);
begin
Memo18.Text:=DoPadeg(<ADOQuery_EMP."FIO">,2);
end;
Таким образом я получаю склоненое ФИО сотрудника..Ниже идет список приказов на этого сотрудника, при щелчке по номеру приказа вызывается другой отчет:

procedure Memo12OnPreviewClick(Sender: TfrxView; Button: TMouseButton; Shift: Integer; var Modified: Boolean);
var
Full_Info:TfrxReport;
begin
Full_Info:=TfrxReport.Create(nil);
Full_Info.LoadFromFile('C:\order.fr3');
Full_Info.ShowReport;
Full_Info.Free;
end;

Вот теперь вопрос - в отчете C:\order.fr3 есть много сотрудников и ФИО всех надо склонить, поскольку я создаю класс TfrxReport не из приложеия, а из отчета, то естественно что новый отчет не знает о функции
function DoPadeg(FIO:string;Padeg:shortint): string;
И я на момент создания второго отчета не знаю какие сотрудники там отобразатся..Как мне сказать второму отчету о существовании пользовательской функции DoPadeg?

Комментарии

  • отредактировано 05:46
    Поскольку AddFunction в отчете не видна - создать пользовательскую, UserAddFuncstion(Report), которая переданному репорту будет добавлять все известные функции и назначать OnUserFunction

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

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