Explorar o código

兼容SmartDataSet修改

MaiXinRong %!s(int64=9) %!d(string=hai) anos
pai
achega
60050b1eeb
Modificáronse 1 ficheiros con 10 adicións e 2 borrados
  1. 10 2
      DataModules/DealPaymentDm.pas

+ 10 - 2
DataModules/DealPaymentDm.pas

@@ -367,12 +367,20 @@ procedure TDealPaymentData.sdvDealPaymentSetText(var Text: string;
   ARecord: TsdDataRecord; AValue: TsdValue; AColumn: TsdViewColumn;
   var Allow: Boolean);
 
+  function GetRecord: TsdDataRecord;
+  begin
+    if Pos('TotalPrice', AValue.FieldName) > 0 then
+      Result := sddDealPayment.FindKey('idxID', ARecord.ValueByName('ID').AsInteger)
+    else
+      Result := ARecord;
+  end;
+
   procedure CheckLockedData;
   var
     Rec: TsdDataRecord;
     sFormula: string;
   begin
-    Rec := sddDealPayment.FindKey('idxID', ARecord.ValueByName('ID').AsInteger);
+    Rec := GetRecord;//sddDealPayment.FindKey('idxID', ARecord.ValueByName('ID').AsInteger);
     if Rec.ValueByName('CalcType').AsInteger = 1 then
     begin
       if SameText(AValue.FieldName, 'Name') or
@@ -450,7 +458,7 @@ procedure TDealPaymentData.sdvDealPaymentSetText(var Text: string;
     fTotalPrice, fAllow: Double;
     Rec: TsdDataRecord;
   begin
-    Rec := sddDealPayment.FindKey('idxID', ARecord.ValueByName('ID').AsInteger);
+    Rec := GetRecord;//sddDealPayment.FindKey('idxID', ARecord.ValueByName('ID').AsInteger);
     sFField := StringReplace(AValue.FieldName, 'TotalPrice', 'Formula', []);
     if CheckStringNull(Text) or CheckNumeric(Text) then
     begin