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

Материал из Фабиус wiki
Перейти к: навигация, поиск
м
м (QrAddFn.pas)
 
Строка 5: Строка 5:
 
Если <indItem>=true, то берется вторая часть элемента массива
 
Если <indItem>=true, то берется вторая часть элемента массива
 
= [[QrAddFn.pas]] =
 
= [[QrAddFn.pas]] =
 +
type
 +
  TQREvRetItem = class(TQREvDbFunction)
 +
  public
 +
    function Calculate: TQREvResult; override;
 +
  end;
 +
 +
function TQREvRetItem.Calculate: TQREvResult;
 +
var
 +
  marr: TMArrString;
 +
  fld: byte;
 +
begin
 +
  fld := 0;
 +
  if (ArgList.Count > 1) then
 +
  begin
 +
    marr := CreateArr(Argument(0).StrResult);
 +
    Result.Kind := ResString;
 +
    if (ArgList.Count > 2) and (Argument(2).BooResult = True) then
 +
      fld := 1; //Требуется вернуть 2-й элемент из {'Да','Д'}
 +
    Result.StrResult := marr[Argument(1).IntResult, fld];
 +
  end
 +
  else
 +
    Result := ErrorCreate(Format(SqrExpWrongArguments, ['RetItem']));
 +
end;
 +
 
= Пример =
 
= Пример =
 
  RetItem( 'waretype', 0 )
 
  RetItem( 'waretype', 0 )

Текущая версия на 07:53, 10 октября 2024

RetItem - это программа

RetItem(<ArrName>, <NumItem>, [<indItem>])

Возвращает элемент массива по номеру - 1

Если <indItem>=true, то берется вторая часть элемента массива

QrAddFn.pas

type

 TQREvRetItem = class(TQREvDbFunction)
 public
   function Calculate: TQREvResult; override;
 end;

function TQREvRetItem.Calculate: TQREvResult; var

 marr: TMArrString;
 fld: byte;

begin

 fld := 0;
 if (ArgList.Count > 1) then
 begin
   marr := CreateArr(Argument(0).StrResult);
   Result.Kind := ResString;
   if (ArgList.Count > 2) and (Argument(2).BooResult = True) then
     fld := 1; //Требуется вернуть 2-й элемент из {'Да','Д'}
   Result.StrResult := marr[Argument(1).IntResult, fld];
 end
 else
   Result := ErrorCreate(Format(SqrExpWrongArguments, ['RetItem']));

end;

Пример

RetItem( 'waretype', 0 )

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

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

Функции Delphi