I have a DBGrid which is connected to a ClientDataSet and it has a field UnitCost. What I want to do is to limit to 2 decimal places every value that will be assigned to that field. Is there an easier way to do this other than validating every input value?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
You can try to set ClientDataset.FieldByName('UnitCost').EditMask := '#.00';
回答2:
I usually use:
TFloatField(Myds.FieldByName('MyField')).DisplayFormat := '#.##';
This should work with every type of TDataset
回答3:
procedure TFMasterReport.DBDetail**DrawColumnCell**(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
TFloatField(Tempdtl.FieldByName('TS_Rate')).DisplayFormat := '0.000';
TFloatField(Tempdtl.FieldByName('TS_Tvol')).DisplayFormat := '0.00';
TFloatField(Tempdtl.FieldByName('TS_permit')).DisplayFormat := '0.00';
TFloatField(Tempdtl.FieldByName('TS_tax')).DisplayFormat := '0.00';
TFloatField(Tempdtl.FieldByName('TS_nettval')).DisplayFormat := '0.00';
end;