BOM

Материал из Фабиус wiki
Версия от 12:32, 1 апреля 2016; Hisava (обсуждение | вклад) (Расширение интерпретатора выражений)

Перейти к: навигация, поиск

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 описывается тип, наследуемый от специального класса QuickReport - а

Имя такого класса начинается с TQREv

Далее в нашем новом типе перекрывается функция Calculate

Результат, который будет возвращать наш метод Calculate и будет результатом выполнения новой функции

И последнее, что нужно сделать - зарегистрировать функцию с помощью