Browse Source

其他台账,计算&显示小数位数控制

MaiXinRong 8 years ago
parent
commit
e14845c3ba

+ 1 - 0
DataModules/OtherMeasureOnceDm.dfm

@@ -72,6 +72,7 @@ object OtherMeasureOnceData: TOtherMeasureOnceData
       item
         FieldName = 'OmDateTime'
       end>
+    OnGetText = sdvOnceGetText
     OnSetText = sdvOnceSetText
     Left = 48
     Top = 152

+ 19 - 1
DataModules/OtherMeasureOnceDm.pas

@@ -13,6 +13,8 @@ type
     procedure sddOnceAfterAddRecord(ARecord: TsdDataRecord);
     procedure sdvOnceSetText(var Text: String; ARecord: TsdDataRecord;
       AValue: TsdValue; AColumn: TsdViewColumn; var Allow: Boolean);
+    procedure sdvOnceGetText(var Text: String; ARecord: TsdDataRecord;
+      AValue: TsdValue; AColumn: TsdViewColumn; DisplayText: Boolean);
   private
     FProjectData: TObject;
 
@@ -30,7 +32,7 @@ type
 implementation
 
 uses
-  ProjectData, UtilMethods, Variants;
+  ProjectData, UtilMethods, Variants, DB;
 
 {$R *.dfm}
 
@@ -134,4 +136,20 @@ begin
   end;
 end;
 
+procedure TOtherMeasureOnceData.sdvOnceGetText(var Text: String;
+  ARecord: TsdDataRecord; AValue: TsdValue; AColumn: TsdViewColumn;
+  DisplayText: Boolean);
+
+  procedure GetDisplayText;
+  begin
+    if AValue.DataType = ftFloat then
+      if AValue.AsFloat = 0 then
+        Text := '';
+  end;  
+
+begin
+  if DisplayText then
+    GetDisplayText;
+end;
+
 end.

+ 1 - 0
DataModules/OtherMeasurePhaseDm.dfm

@@ -109,6 +109,7 @@ object OtherMeasurePhaseData: TOtherMeasurePhaseData
     BeforeAddRecord = sdvPhaseBeforeAddRecord
     BeforeDeleteRecord = sdvPhaseBeforeDeleteRecord
     OnFilterRecord = sdvPhaseFilterRecord
+    OnGetText = sdvPhaseGetText
     OnSetText = sdvPhaseSetText
     Left = 56
     Top = 160

+ 19 - 1
DataModules/OtherMeasurePhaseDm.pas

@@ -21,6 +21,8 @@ type
       var Allow: Boolean);
     procedure sdvPhaseFilterRecord(ARecord: TsdDataRecord;
       var Allow: Boolean);
+    procedure sdvPhaseGetText(var Text: String; ARecord: TsdDataRecord;
+      AValue: TsdValue; AColumn: TsdViewColumn; DisplayText: Boolean);
   private
     FProjectData: TObject;
     FFilterDeletedRec: Boolean;
@@ -48,7 +50,7 @@ type
 implementation
 
 uses
-  ProjectData, UtilMethods, Math;
+  ProjectData, UtilMethods, Math, DB;
 
 {$R *.dfm}
 
@@ -300,4 +302,20 @@ begin
   sdvPhase.Filtered := FFilterDeletedRec;
 end;
 
+procedure TOtherMeasurePhaseData.sdvPhaseGetText(var Text: String;
+  ARecord: TsdDataRecord; AValue: TsdValue; AColumn: TsdViewColumn;
+  DisplayText: Boolean);
+
+  procedure GetDisplayText;
+  begin
+    if AValue.DataType = ftFloat then
+      if AValue.AsFloat = 0 then
+        Text := '';
+  end;
+
+begin
+  if DisplayText then
+    GetDisplayText;
+end;
+
 end.

+ 1 - 1
Units/DataBaseTables.pas

@@ -728,7 +728,7 @@ const
     // 台账类型
     (FieldName: 'MType'; FieldType: ftString; Size: 20; Precision: 0; NotNull: False; PrimaryKey: False; ForceUpdate: False),
     // 台账金额
-    (FieldName: 'TotalPrice'; FieldType: ftString; Size: 0; Precision: 0; NotNull: False; PrimaryKey: False; ForceUpdate: False),
+    (FieldName: 'TotalPrice'; FieldType: ftDouble; Size: 0; Precision: 0; NotNull: False; PrimaryKey: False; ForceUpdate: False),
     // 备注
     (FieldName: 'MemoStr'; FieldType: ftString; Size: 255; Precision: 0; NotNull: False; PrimaryKey: False; ForceUpdate: False),
     // 创建期数

+ 8 - 0
Units/ProjectData.pas

@@ -1780,6 +1780,14 @@ procedure TProjectData.ResetFloatDigitView;
     begin
       Columns.FindColumn('TotalPrice').DisplayFormat := FProjProperties.TotalPriceFormat;
     end;
+    with FOtherMeasurePhaseData.sdvPhase do
+    begin
+      Columns.FindColumn('TotalPrice').DisplayFormat := FProjProperties.TotalPriceFormat;
+      Columns.FindColumn('PreTotalPrice').DisplayFormat := FProjProperties.TotalPriceFormat;
+      Columns.FindColumn('CurTotalPrice').DisplayFormat := FProjProperties.TotalPriceFormat;
+      Columns.FindColumn('EndTotalPrice').DisplayFormat := FProjProperties.TotalPriceFormat;
+      Columns.FindColumn('AddTotalPrice').DisplayFormat := FProjProperties.TotalPriceFormat;
+    end;
   end;
 
 begin