Вот код
var
aVirtual: Int64;
{Обновляем таблицу tblSpisok_TH03 "Перечень компонентов ручного ввода"}
procedure UpdateTableTH03;
var
aQuery:string;
begin
aQuery := 'SELECT AR.AR_ARTICLE_ID AS AR_ARTICLE_ID '+
',AR.AR_NAME AS AR_NAME'+
',CASE WHEN SUM(ROUND(TMP.TDB_DOSINGWEIGHT, 2)) = SUM(ROUND(TMP.TDB_DOSINGWEIGHT, 0)) '+
'THEN '+
'CONVERT(varchar(10), SUM(TMP.TDB_DOSINGWEIGHT)) + ''.00'' '+
'ELSE '+
'CASE WHEN SUM(ROUND(TMP.TDB_DOSINGWEIGHT, 2)) = SUM(ROUND(TMP.TDB_DOSINGWEIGHT, 1)) '+
'THEN '+
'CONVERT(varchar(10), SUM(TMP.TDB_DOSINGWEIGHT)) + ''0'' '+
'ELSE '+
'CONVERT(varchar(10), SUM(ROUND(TMP.TDB_DOSINGWEIGHT, 2))) '+
'END '+
'END AS TDB_DOSINGWEIGHT '+
',CASE TMP.TDB_ACTIVE WHEN 1 THEN ''Добавлен'' ELSE '''' end AS ACTIVE '+
'FROM TMP_DOSINGBATCHES TMP '+
'INNER JOIN CFG_BATCHES BD ON BD.BD_PLC_BATCHNUMBER = TMP.TDB_PLC_BATCHNUMBER '+
'INNER JOIN CFG_RAWMATERIAL RM ON RM.RM_RAWMAT_ID = TMP.TDB_RAWMAT_ID '+
'INNER JOIN CFG_ARTICLE AR ON AR.AR_ARTICLE_ID = RM.RM_RAWMAT_ID '+
'WHERE BD_BATCHNUMBER = (SELECT MAX(BD_BATCHNUMBER) '+
'FROM CFG_BATCHES '+
'INNER JOIN TMP_DOSINGBATCHES ON TDB_PLC_BATCHNUMBER = BD_PLC_BATCHNUMBER '+
'INNER JOIN CFG_WEIGHER ON WG_WEIGHER_ID = TDB_WEIGHER_ID '+
'INNER JOIN CFG_UNITS ON UN_BATCHNUMBER = BD_BATCHNUMBER '+
'INNER JOIN CFG_UNIT_DEVICES ON UN_UNIT_ID = UDS_UNIT_ID AND WG_DEVICE_ID = UDS_DEVICE_ID '+
'AND UN_BATCHNUMBER > 1 '+
'AND TDB_WEIGHER_ID = 6) '+
'AND TMP.TDB_WEIGHER_ID = 6 '+
'AND TMP.TDB_MODIFYTYPE <> ''D'' '+
'GROUP BY TMP.TDB_PLC_BATCHNUMBER'+
',RTRIM(AR.AR_ARTICLECODE)'+
',AR.AR_NAME '+
',AR.AR_ARTICLE_ID '+
',TMP.TDB_WEIGHER_ID '+
',TMP.TDB_ACTIVE '+
'ORDER BY TMP.TDB_PLC_BATCHNUMBER, MIN(TDB_SEQUENCENUMBER) ';
tblSpisok_TH03.RunSQL(aQuery, tsSaveFixRow);
end;
{Процедура проверяет все ли сырье добавлено}
procedure CheckAddedTableTH03;
var
aQuery:string;
begin
aQuery := 'SELECT CASE WHEN sum(convert(int,TMP.TDB_ACTIVE)) = COUNT(*) '+
'THEN 1 '+
'ELSE 0 '+
'END AS TMP_READY '+
'FROM TMP_DOSINGBATCHES TMP '+
'INNER JOIN CFG_BATCHES BD ON BD.BD_PLC_BATCHNUMBER = TMP.TDB_PLC_BATCHNUMBER '+
'INNER JOIN CFG_RAWMATERIAL RM ON RM.RM_RAWMAT_ID = TMP.TDB_RAWMAT_ID '+
'INNER JOIN CFG_ARTICLE AR ON AR.AR_ARTICLE_ID = RM.RM_RAWMAT_ID '+
'WHERE BD_BATCHNUMBER = (SELECT MAX(BD_BATCHNUMBER) '+
'FROM CFG_BATCHES '+
'INNER JOIN TMP_DOSINGBATCHES ON TDB_PLC_BATCHNUMBER = BD_PLC_BATCHNUMBER '+
'INNER JOIN CFG_WEIGHER ON WG_WEIGHER_ID = TDB_WEIGHER_ID '+
'INNER JOIN CFG_UNITS ON UN_BATCHNUMBER = BD_BATCHNUMBER '+
'INNER JOIN CFG_UNIT_DEVICES ON UN_UNIT_ID = UDS_UNIT_ID AND WG_DEVICE_ID = UDS_DEVICE_ID '+
'AND UN_BATCHNUMBER > 1 '+
'AND TDB_WEIGHER_ID = 6) '+
'AND TMP.TDB_WEIGHER_ID = 6 '+
'AND TMP.TDB_MODIFYTYPE <> ''D''';
RunSQL(aQuery, nil, 54);
end;
{********************************************************************************************}
begin
if DataSet.Tag = 50 then
vPM01_ID.Value := DataSet[0].AsStr;
if DataSet.Tag = 51 then
vMB02_ID.Value := DataSet[0].AsStr;
if DataSet.Tag = 52 then
begin
imgLoading_1.Visible:=false;
imgLoading_2.Visible:=false;
btnReport_reload.States[0].FontAlpha:=179;
//tblReport_dosing.Alpha:=255;
end;
if DataSet.Tag = 53 then {Обнавляем таблицу tblSpisok_TH03 после отметки строки}
begin
UpdateTableTH03;
CheckAddedTableTH03;
end;
end.
если убрать aVirtual: Int64; компиляция не идет