DBGrid
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Прошу помочь с такой проблемой. На форме DBGrid, ADOConnection, DataSet, Table. Таблицы вижу, но надо отформатировать значения в полях. Знаю, что надо использовать DisplayFormat объекта TFloatField, но не знаю как добраться в коде до этого. Был бы очень благодарен за помощь. Если можно, то набросайте код. Можно даже на мыло. Надо срочно. Заранее благодарен.
1. Существуют маски для полей, не помню уже что там надо задавать, обрабатывал их только для дат.
2. Можно создать вычесляемое поле (Calculated) и в событии OnCalculated кажется писать в это поле любое значение.
2. Можно создать вычесляемое поле (Calculated) и в событии OnCalculated кажется писать в это поле любое значение.
The trurh is out there...
Форматит все числовые поля по маске. пример вызова: FormatFloat(Table, '#.000');
Если нужно только поля с плавающей точкой - замени TNumericField на TFloatField.
Если нужно только поля с плавающей точкой - замени TNumericField на TFloatField.
Код: Выделить всё
procedure FormatFloat(DataSet: TDataSet; Format: String);
var i: Integer;
begin
For i := 1 to DataSet.FieldCount do
if DataSet.Fields.Fields[i-1] is TNumericField then
TNumericField(DataSet.Fields.Fields[i-1]).DisplayFormat := Format;
end;
С уважением, Lost Angel...
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Сначала надо обратиться к датасетуЗнаю, что надо использовать DisplayFormat объекта TFloatField, но не знаю как добраться в коде до этого.
Table1 или Datasource1.Dataset или DBGrid1.Datasource.Dataset
Затем к полю
.Fields или .FieldByName("МуField")
Ну а на последок
.DisplayFormat
Т.е. например, DBGrid1.Datasource.Dataset.FieldByName("МуField").DisplayFormat
Кроме того если на Table1 в дизайнере нажать правой кнопкой, то можно вызвать FieldEditor
В нем можно прямо в DesignTime добавить в проект объекты TField и настроить все свойства всех полей!
А также обращаться к этим полям боее быстро:
Table1XXX.DisplayFormat