BOM — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) м (→Расширение интерпретатора выражений) |
Hisava (обсуждение | вклад) м (→Расширение интерпретатора выражений) |
||
Строка 39: | Строка 39: | ||
В фабиусе используются исходники программы [http://cs.mipt.ru/docs/comp/rus/os/windows/software/develop/delphi/qr2.0/main.pdf QuickReport] | В фабиусе используются исходники программы [http://cs.mipt.ru/docs/comp/rus/os/windows/software/develop/delphi/qr2.0/main.pdf QuickReport] | ||
− | Для добавления функции интерпретатора в delphi описывается тип, наследуемый от специального класса | + | Для добавления функции интерпретатора в delphi описывается тип, наследуемый от специального класса |
Имя такого класса начинается с '''TQREv''' | Имя такого класса начинается с '''TQREv''' |
Версия 15:40, 1 апреля 2016
BoM - это функция, описанная в файле QrAddFn.pas
BoM( Dt )
Возвращает дату первого дня месяца
Содержание
Примеры
Bom( Date() )
Результат
01.04.2016
Полный текст функции
type TQREvBoM = class(TQREvDbFunction) public function Calculate: TQREvResult; override; end;
function TQREvBoM.Calculate: TQREvResult; var res: TDateTime; v: variant; begin res := BoM(Argument(0).DateResult); v := res; Result := QREvVariantToResult(@v); end;
Регистрация
RegisterQRFunction(TQREvBoM, 'BoM', 'BoM( Dt )|{Дата первого дня мца}', 'Masha', '1D');
Расширение интерпретатора выражений
В фабиусе используются исходники программы QuickReport
Для добавления функции интерпретатора в delphi описывается тип, наследуемый от специального класса
Имя такого класса начинается с TQREv
Далее в нашем новом типе перекрывается функция Calculate
Результат, который будет возвращать функция Calculate и будет результатом выполнения новой функции интерпретатора
И последнее, что нужно сделать - зарегистрировать функцию с помощью выражения
RegisterQRFunction