RetIssue
Материал из Фабиус wiki
Версия от 09:34, 15 апреля 2016; Hisava (обсуждение | вклад) (Новая страница: «RetIssue - это функция, описанная в файле QrAddFn.pas Выход по R11, R191 или R71 RetIssue( <Code>, [<Refl/"R11 ">, <VarNum/0>…»)
RetIssue - это функция, описанная в файле QrAddFn.pas
Выход по R11, R191 или R71
RetIssue( , [<Refl/"R11 ">, <VarNum/0>, <AverWetn/0.00>, <DtShift/space(9)>] )
Полный текст функции
(* Определить выход изделия 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;