Bläddra i källkod

合同支付,新增支付扣款连接ID,用于报表分两列显示所有支付、扣款项数据。

MaiXinRong 9 år sedan
förälder
incheckning
1fec34b89f
4 ändrade filer med 37 tillägg och 3 borttagningar
  1. 4 1
      DataModules/DealPaymentDm.dfm
  2. 28 0
      DataModules/DealPaymentDm.pas
  3. 4 2
      Units/DataBaseTables.pas
  4. 1 0
      Units/ProjectData.pas

+ 4 - 1
DataModules/DealPaymentDm.dfm

@@ -69,7 +69,10 @@ object DealPaymentData: TDealPaymentData
       6579080F4E65656450726F636573734E616D65080001044E616D650609504446
       6F726D756C61094669656C644E616D6506095044466F726D756C610844617461
       547970650218084461746153697A6502640549734B6579080F4E65656450726F
-      636573734E616D65090000}
+      636573734E616D65090001044E616D65060C4C696E6B53657269616C4E6F0946
+      69656C644E616D65060C4C696E6B53657269616C4E6F08446174615479706502
+      03084461746153697A6502040549734B6579080F4E65656450726F636573734E
+      616D65090000}
   end
   object sdvDealPayment: TsdDataView
     Active = False

+ 28 - 0
DataModules/DealPaymentDm.pas

@@ -62,6 +62,8 @@ type
     procedure ResetPhaseLink;
     procedure LockedData;
 
+    procedure UpdateLinkSerialNo;
+
     property ProjectData: TObject read FProjectData;
 
     // 扣款项,累计金额合计
@@ -684,4 +686,30 @@ begin
     Result := Format('累计变更计量金额 >= %f', [ARec.ValueByName('PlanDeadline').AsFloat])
 end;
 
+procedure TDealPaymentData.UpdateLinkSerialNo;
+var
+  iPay, iCut, iIndex: Integer;
+  Rec: TsdDataRecord;
+begin
+  iPay := 1;
+  iCut := 1;
+  for iIndex := 0 to sdvDealPayment.RecordCount - 1 do
+  begin
+    Rec := sdvDealPayment.Records[iIndex];
+    if Rec.ValueByName('CalcType').AsInteger = 0 then
+    begin
+      if Rec.ValueByName('IsMinus').AsBoolean then
+      begin
+        Rec.ValueByName('LinkSerialNo').AsInteger := iCut;
+        Inc(iCut);
+      end
+      else
+      begin
+        Rec.ValueByName('LinkSerialNo').AsInteger := iPay;
+        Inc(iPay);
+      end;
+    end;
+  end;
+end;
+
 end.

+ 4 - 2
Units/DataBaseTables.pas

@@ -266,7 +266,7 @@ const
 
   {合同支付}
   SDealPayment = 'DealPayment';
-  tdDealPayment: array [0..18] of TScFieldDef =(
+  tdDealPayment: array [0..19] of TScFieldDef =(
     (FieldName: 'ID'; FieldType: ftInteger; Size: 0; NotNull: True; PrimaryKey: True; ForceUpdate: False),
     (FieldName: 'Name'; FieldType: ftString; Size: 200; NotNull: False; PrimaryKey: False; ForceUpdate: False),
     // 计算类型
@@ -305,7 +305,9 @@ const
     // 预定义
     (FieldName: 'PreDefined'; FieldType: ftBoolean; Size: 0; NotNull: False; PrimaryKey: False; ForceUpdate: False),
     // 锁定公式
-    (FieldName: 'LockedFormula'; FieldType: ftBoolean; Size: 0; NotNull: False; PrimaryKey: False; ForceUpdate: False)
+    (FieldName: 'LockedFormula'; FieldType: ftBoolean; Size: 0; NotNull: False; PrimaryKey: False; ForceUpdate: False),
+    // 支付扣款项拼接ID -- 报表专用
+    (FieldName: 'LinkSerialNo'; FieldType: ftInteger; Size: 0; NotNull: False; PrimaryKey: False; ForceUpdate: False)
   );
 
   {变更令}

+ 1 - 0
Units/ProjectData.pas

@@ -935,6 +935,7 @@ begin
   DeletePhaseTable;
   if FPhaseIndex > 0 then
     CopyCurPhaseData;
+  FDealPaymentData.UpdateLinkSerialNo;
   //CopyHistoryCompleteData;
 end;