Форум: "Базы";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];
ВнизРедактирование перед сохранением. Найти похожие ветки
← →
AleKo (2005-01-19 09:00) [0]Добрый день господа.
У меня закралось сомнение а правильно ли я делаю.
Имеется ClientDataSet с полями ftFloat? Данные отображаются на DBGridEh.
Необходимо что бы при любых введенных значениях в поле сохранялось число округленное до двух знаков после запятой.
12,345678 сохранится как 12,34
Делаю через событие поля
procedure TMainForm.CDSBazaCDSBazaFed_rSetText(Sender: TField;
const Text: String);
begin
try
SetRoundMode(rmTruncate);
Sender.Value:=RoundTo(StrToFloat(Text),-2);
finally
SetRoundMode(rmNearest);
end;
end;
Правильно ли я делаю. Может есть другие варианты. Спасибо.
← →
Danilka © (2005-01-19 09:14) [1]В описании полей датасета, кажись в EditFormat (или что-то похожее, нету сейчас под рукой) напиши:
,0.00
и будет тебе щастье. :) ничего лишнего тогда просто не сможешь ввести.
А если в DisplayFormat добавишь, то еще и отображаться красиво будет.
Вобщем, почитай про свойства TField.
← →
Erik1 © (2005-01-19 10:26) [2]Еще можно использовать тип поля Currency.
← →
Danilka © (2005-01-19 10:34) [3][2] Erik1 © (19.01.05 10:26)
Так даже лучше. Правда, все равно надо задавать формат, т.к. Currency 4 знака после запятой, а не 2.
← →
Соловьев © (2005-01-19 10:57) [4]OnBeforePost:
...
FieldByName("2Digit").AsFloat := RoundTo(FieldByName("2Digit").AsFloat,-2);
...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.038 c