RetIssue
Материал из Фабиус wiki
RetIssue - это функция, описанная в файле QrAddFn.pas
Выход по R11, R191 или R71
RetIssue( Code, [<Refl/"R11 ">, <VarNum/0>, <AverWetn/0.00>, <DtShift/space(9)>] )
Пример
RetIssue( 25 )
Полный текст функции
(* Определить выход изделия ProdCode [при средневзвешанной влажности AverWetn] Порядок поиска выхода: 1) не пустая Dt и есть подходящая запись (дата записи не пуста и <= искомой Dt) на этаже хронологий в R191 2) R264->ISSUE 3) R11->ISSUE 4) Для заданной рецептуры VarNum подсчитываем итого муки - по ней - выход **********************************************************************************) type TQREvRetIssue = class(TQREvDbFunction) public function Calculate: TQREvResult; override; end;
function TQREvRetIssue.Calculate: TQREvResult; var ProdCode, VarNum: integer; Refl, DtShift: string; AverWetn: double; begin Result.Kind := ResDouble; ProdCode := 0; Refl := 'R11 '; VarNum := 0; AverWetn := 0.00; DtShift := StringOfChar(' ', 9); if ArgList.Count > 0 then ProdCode := ConvQREvToInt(Argument(0)); if (ArgList.Count > 1) and (Argument(1).Kind = ResString) then Refl := Argument(1).StrResult; if (ArgList.Count > 2) then VarNum := ConvQREvToInt(Argument(2)); if (ArgList.Count > 3) and (Argument(3).Kind = ResDouble) then AverWetn := Argument(3).DblResult; if (ArgList.Count > 4) and (Argument(4).Kind = ResString) then DtShift := Argument(4).StrResult; Result.DblResult := RetIssue(ProdCode, Refl, VarNum, AverWetn, DtShift); end;