GreyGendalf
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору George_Lucky через TfrReport.OnUserFunction чтоли? если да, то.... ===================== procedure TRptContainer.rptReportUserFunction(const Name: string; p1, p2, p3: Variant; var Val: Variant); var xDouble: Double; begin if AnsiCompareText(Name, 'AnnuityPerMonth') = 0 then Val := AnnuityPerMonth(frParser.Calc(p1), frParser.Calc(p2), frParser.Calc(p3)) else if AnsiCompareText(Name, 'GetUsdCourse') = 0 then begin dmIpot.GetUsdCourse(frParser.Calc(p1), xDouble); Val := xDouble; end ......... //далее сколько угодно функции //AnnuityPerMonth и dmIpot.GetUsdCourse соответственно обычные функции end; ============================= |