BOM — различия между версиями

Материал из Фабиус wiki
Перейти к: навигация, поиск
м (Расширение интерпретатора выражений)
м (Смотрите также)
 
(не показано 20 промежуточных версий этого же участника)
Строка 1: Строка 1:
BoM - это функция, описанная в файле QrAddFn.pas
+
[[BOM]] - это функция, описанная в файле [[QrAddFn.pas]]
 
+
Возвращает дату первого дня месяца
BoM( Dt )
+
[[BOM]]( Dt )
 
+
= Пример =  
Возвращает дату первого дня месяца
+
  [[BOM]]( [[DATE]]() )
 
+
[[Файл:16-08-2016 9-03-46.png]]
= Примеры =  
+
 
+
  Bom( Date() )
+
 
+
= Результат =
+
 
+
01.04.2016
+
 
+
 
= Полный текст функции =
 
= Полный текст функции =
 
 
  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://cs.mipt.ru/docs/comp/rus/os/windows/software/develop/delphi/qr2.0/main.pdf QuickReport]
+
В фабиусе используются исходники программы [http://www.quickreport.co.uk QuickReport]
  
Для добавления функции в delphi описывается тип, наследуемый от специального класса QuickReport - а
+
Для добавления функции интерпретатора в ''delphi'' описывается тип, наследуемый от специального класса
  
 
Имя такого класса начинается с '''TQREv'''
 
Имя такого класса начинается с '''TQREv'''
  
 
Далее в нашем новом типе перекрывается функция ''Calculate''
 
Далее в нашем новом типе перекрывается функция ''Calculate''
 +
 +
Результат, который будет возвращать функция Calculate и будет результатом выполнения новой функции интерпретатора
 +
 +
И последнее, что нужно сделать - зарегистрировать функцию с помощью выражения
 +
 +
RegisterQRFunction
 +
 +
=  Дерево классов =
 +
 +
TQREvBoM
 +
  TQREvDbFunction
 +
    TQREvElementFunction
 +
      TQREvElement
 +
 +
= Смотрите также =
 +
[[Полезные функции]]
 +
 +
[[Функции Delphi]]

Текущая версия на 08:18, 26 февраля 2018

BOM - это функция, описанная в файле QrAddFn.pas

Возвращает дату первого дня месяца

BOM( Dt )

Пример

BOM( DATE() )

16-08-2016 9-03-46.png

Полный текст функции

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

Смотрите также

Полезные функции

Функции Delphi