Страница 1 из 1
DBGrid
Добавлено: 13 май 2005, 16:40
Гена
Прошу помочь с такой проблемой. На форме DBGrid, ADOConnection, DataSet, Table. Таблицы вижу, но надо отформатировать значения в полях. Знаю, что надо использовать DisplayFormat объекта TFloatField, но не знаю как добраться в коде до этого. Был бы очень благодарен за помощь. Если можно, то набросайте код. Можно даже на мыло. Надо срочно. Заранее благодарен.
Добавлено: 13 май 2005, 23:53
RoKon
1. Существуют маски для полей, не помню уже что там надо задавать, обрабатывал их только для дат.
2. Можно создать вычесляемое поле (Calculated) и в событии OnCalculated кажется писать в это поле любое значение.
Добавлено: 14 май 2005, 08:22
LAngel
Форматит все числовые поля по маске. пример вызова: FormatFloat(Table, '#.000');
Если нужно только поля с плавающей точкой - замени 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;
Добавлено: 19 май 2005, 00:00
Naeel Maqsudov
Знаю, что надо использовать DisplayFormat объекта TFloatField, но не знаю как добраться в коде до этого.
Сначала надо обратиться к датасету
Table1 или Datasource1.Dataset или DBGrid1.Datasource.Dataset
Затем к полю
.Fields
или .FieldByName("МуField")
Ну а на последок
.DisplayFormat
Т.е. например, DBGrid1.Datasource.Dataset.FieldByName("МуField").DisplayFormat
Кроме того если на Table1 в дизайнере нажать правой кнопкой, то можно вызвать FieldEditor
В нем можно прямо в DesignTime добавить в проект объекты TField и настроить все свойства всех полей!
А также обращаться к этим полям боее быстро:
Table1XXX.DisplayFormat