Предельные десятичные знаки в DBGrid
У меня есть DBGrid, который подключен к ClientDataSet, и у него есть поле UnitCost. Я хочу ограничить до 2 десятичных знаков каждое значение, которое будет присвоено этому полю. Есть ли более простой способ сделать это, кроме проверки каждого входного значения?
3 ответа
Решение
Вы можете попробовать установить ClientDataset.FieldByName('UnitCost').EditMask := '#.00';
Я обычно использую:
TFloatField(Myds.FieldByName('MyField')).DisplayFormat := '#.##';
Это должно работать с каждым типом TDataset
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;