Pārlūkot izejas kodu

中间计量,计量汇总,记录用户输入

MaiXinRong 7 gadi atpakaļ
vecāks
revīzija
5a5826fca6
1 mainītis faili ar 13 papildinājumiem un 3 dzēšanām
  1. 13 3
      DataModules/ZJJLDm.pas

+ 13 - 3
DataModules/ZJJLDm.pas

@@ -669,14 +669,23 @@ procedure TZJJLData.SetHistory(const AFieldName, AValue: string;
 var
   HistoryRec: TsdDataRecord;
 begin
-  HistoryRec := sddHistory.FindKey('idxHistory', VarArrayOf([AZJJL_Rec.ValueByName('BillsID').AsInteger,
-    AZJJL_Rec.ValueByName('Type').AsInteger, AFieldName]));
+  if AZJJL_Rec.ValueByName('Type').AsInteger <> Integer(ztGclGather) then
+    HistoryRec := sddHistory.FindKey('idxHistory', VarArrayOf([AZJJL_Rec.ValueByName('BillsID').AsInteger,
+      AZJJL_Rec.ValueByName('Type').AsInteger, AFieldName]))
+  else
+    HistoryRec := sddHistory.FindKey('idxGatherHistory', VarArrayOf([AZJJL_Rec.ValueByName('GatherBillsID').AsInteger,
+      AZJJL_Rec.ValueByName('Type').AsInteger, AZJJL_Rec.ValueByName('B_Code').AsString,
+      AZJJL_Rec.ValueByName('Name').AsString, AZJJL_Rec.ValueByName('Units').AsString,
+      AZJJL_Rec.ValueByName('Price').AsFloat, AFieldName]));
 
   if not Assigned(HistoryRec) then
   begin
     HistoryRec := sddHistory.Add;
     HistoryRec.ValueByName('ID').AsInteger := GetNewHistoryID;
-    HistoryRec.ValueByName('BillsID').AsInteger := AZJJL_Rec.ValueByName('BillsID').AsInteger;
+    if AZJJL_Rec.ValueByName('Type').AsInteger <> Integer(ztGclGather) then
+      HistoryRec.ValueByName('BillsID').AsInteger := AZJJL_Rec.ValueByName('BillsID').AsInteger
+    else
+      HistoryRec.ValueByName('BillsID').AsInteger := AZJJL_Rec.ValueByName('GatherBillsID').AsInteger;
     HistoryRec.ValueByName('Type').AsInteger := AZJJL_Rec.ValueByName('Type').AsInteger;
     HistoryRec.ValueByName('FieldName').AsString := AFieldName;
 
@@ -807,6 +816,7 @@ procedure TZJJLData.GenerateAllByB_CodeGather;
       Rec := sddZJJL.Add;
       Rec.ValueByName('ID').AsInteger := i + 1;
       Rec.ValueByName('BillsID').AsInteger := vZJJL.Detail[0].RelaNode.ID;
+      Rec.ValueByName('Type').AsInteger := Integer(ztGclGather);
       Rec.ValueByName('GatherBillsID').AsInteger := vZJJL.GatherNode.ID;
       Rec.ValueByName('BillsCode').AsString := vZJJL.B_Code;
       Rec.ValueByName('B_Code').AsString := vZJJL.B_Code;