Selaa lähdekoodia

材料调差,整数&浮点数类型判断用户输入是否有效

MaiXinRong 9 vuotta sitten
vanhempi
commit
2443937eba

+ 1 - 0
DataModules/PriceMarginBillsDm.dfm

@@ -217,6 +217,7 @@ object PriceMarginBillsData: TPriceMarginBillsData
     AfterDeleteRecord = sdvDetailGLAfterDeleteRecord
     AfterValueChanged = sdvDetailGLAfterValueChanged
     OnFilterRecord = sdvDetailGLFilterRecord
+    OnSetText = sdvDetailGLSetText
     Left = 264
     Top = 136
   end

+ 11 - 0
DataModules/PriceMarginBillsDm.pas

@@ -28,6 +28,8 @@ type
     procedure sdvDetailGLAfterDeleteRecord(ARecord: TsdDataRecord);
     procedure sdvGclBillsGetText(var Text: String; ARecord: TsdDataRecord;
       AValue: TsdValue; AColumn: TsdViewColumn; DisplayText: Boolean);
+    procedure sdvDetailGLSetText(var Text: String; ARecord: TsdDataRecord;
+      AValue: TsdValue; AColumn: TsdViewColumn; var Allow: Boolean);
   private
     FProjectData: TObject;
     procedure WriteGclBillsData(AGcls: TList);
@@ -374,4 +376,13 @@ begin
   end;
 end;
 
+procedure TPriceMarginBillsData.sdvDetailGLSetText(var Text: String;
+  ARecord: TsdDataRecord; AValue: TsdValue; AColumn: TsdViewColumn;
+  var Allow: Boolean);
+begin
+  if AValue.DataType in [ftInteger, ftFloat] then
+    if not CheckNumeric(Text) then
+      Text := '';
+end;
+
 end.

+ 5 - 1
DataModules/ProjectGLDm.pas

@@ -74,7 +74,7 @@ implementation
 
 uses
   ProjectData, UtilMethods, DB, Variants, PhaseData, DetailGLDm,
-  BillsMeasureDm, BillsTree, sdIDTree, PhasePayDm, DateUtils;
+  BillsMeasureDm, BillsTree, sdIDTree, PhasePayDm, DateUtils, ZhAPI;
 
 {$R *.dfm}
 
@@ -493,6 +493,10 @@ begin
     if iPhaseID > 0 then
       DataSetErrorMessage(Allow, Format('该工料在第%d期已进行调差计算,不可修改基础数据。', [iPhaseID]));
   end;
+
+  if AValue.DataType in [ftInteger, ftFloat] then
+    if not CheckNumeric(Text) then
+      Text := '';
 end;
 
 procedure TProjectGLData.LoadStagePM_CalcData;