BOM — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) м (→Расширение интерпретатора выражений) |
Hisava (обсуждение | вклад) м (→Смотрите также) |
||
| (не показано 28 промежуточных версий этого же участника) | |||
| Строка 1: | Строка 1: | ||
| − | + | [[BOM]] - это функция, описанная в файле [[QrAddFn.pas]] | |
| − | + | Возвращает дату первого дня месяца | |
| − | + | [[BOM]]( Dt ) | |
| − | + | = Пример = | |
| − | Возвращает дату первого дня месяца | + | [[BOM]]( [[DATE]]() ) |
| − | + | [[Файл:16-08-2016 9-03-46.png]] | |
| − | = | + | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
= Полный текст функции = | = Полный текст функции = | ||
| − | |||
type | type | ||
TQREvBoM = class(TQREvDbFunction) | TQREvBoM = class(TQREvDbFunction) | ||
public | public | ||
| − | function Calculate: TQREvResult; override; | + | function Calculate: TQREvResult; '''override'''; |
end; | end; | ||
| Строка 26: | Строка 17: | ||
v: variant; | v: variant; | ||
begin | begin | ||
| − | res := BoM(Argument(0).DateResult); | + | res := [[BoM]](Argument(0).DateResult); |
v := res; | v := res; | ||
Result := QREvVariantToResult(@v); | Result := QREvVariantToResult(@v); | ||
| Строка 33: | Строка 24: | ||
= Регистрация = | = Регистрация = | ||
| − | RegisterQRFunction(TQREvBoM, 'BoM', 'BoM( Dt )|{Дата первого дня мца}', 'Masha', '1D'); | + | RegisterQRFunction(TQREvBoM, 'BoM', '[[BoM]]( Dt )|{Дата первого дня мца}', 'Masha', '1D'); |
= Расширение интерпретатора выражений = | = Расширение интерпретатора выражений = | ||
| − | В фабиусе используются исходники программы [http:// | + | В фабиусе используются исходники программы [http://www.quickreport.co.uk QuickReport] |
| + | |||
| + | Для добавления функции интерпретатора в ''delphi'' описывается тип, наследуемый от специального класса | ||
| + | |||
| + | Имя такого класса начинается с '''TQREv''' | ||
| + | |||
| + | Далее в нашем новом типе перекрывается функция ''Calculate'' | ||
| + | |||
| + | Результат, который будет возвращать функция Calculate и будет результатом выполнения новой функции интерпретатора | ||
| + | |||
| + | И последнее, что нужно сделать - зарегистрировать функцию с помощью выражения | ||
| + | |||
| + | RegisterQRFunction | ||
| + | |||
| + | = Дерево классов = | ||
| + | |||
| + | TQREvBoM | ||
| + | TQREvDbFunction | ||
| + | TQREvElementFunction | ||
| + | TQREvElement | ||
| + | |||
| + | = Смотрите также = | ||
| + | [[Полезные функции]] | ||
| − | + | [[Функции 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
