소스 검색

兼容SmartDataSet修改

MaiXinRong 9 년 전
부모
커밋
60050b1eeb
1개의 변경된 파일10개의 추가작업 그리고 2개의 파일을 삭제
  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