BOM — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) м |
Hisava (обсуждение | вклад) м (→Смотрите также) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 3: | Строка 3: | ||
[[BOM]]( Dt ) | [[BOM]]( Dt ) | ||
= Пример = | = Пример = | ||
− | [[BOM]]( | + | [[BOM]]( [[DATE]]() ) |
[[Файл:16-08-2016 9-03-46.png]] | [[Файл:16-08-2016 9-03-46.png]] | ||
= Полный текст функции = | = Полный текст функции = | ||
Строка 9: | Строка 9: | ||
TQREvBoM = class(TQREvDbFunction) | TQREvBoM = class(TQREvDbFunction) | ||
public | public | ||
− | function Calculate: TQREvResult; override; | + | function Calculate: TQREvResult; '''override'''; |
end; | end; | ||
Строка 30: | Строка 30: | ||
В фабиусе используются исходники программы [http://www.quickreport.co.uk QuickReport] | В фабиусе используются исходники программы [http://www.quickreport.co.uk QuickReport] | ||
− | Для добавления функции интерпретатора в delphi описывается тип, наследуемый от специального класса | + | Для добавления функции интерпретатора в ''delphi'' описывается тип, наследуемый от специального класса |
Имя такого класса начинается с '''TQREv''' | Имя такого класса начинается с '''TQREv''' | ||
Строка 50: | Строка 50: | ||
= Смотрите также = | = Смотрите также = | ||
+ | [[Полезные функции]] | ||
[[Функции Delphi]] | [[Функции Delphi]] | ||
− | |||
− |
Текущая версия на 08:18, 26 февраля 2018
BOM - это функция, описанная в файле QrAddFn.pas
Возвращает дату первого дня месяца
BOM( Dt )
Содержание
Пример
BOM( DATE() )
Полный текст функции
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
Дерево классов
TQREvBoM TQREvDbFunction TQREvElementFunction TQREvElement