DBGrid

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Гена
Сообщения: 1
Зарегистрирован: 13 май 2005, 16:31

Прошу помочь с такой проблемой. На форме DBGrid, ADOConnection, DataSet, Table. Таблицы вижу, но надо отформатировать значения в полях. Знаю, что надо использовать DisplayFormat объекта TFloatField, но не знаю как добраться в коде до этого. Был бы очень благодарен за помощь. Если можно, то набросайте код. Можно даже на мыло. Надо срочно. Заранее благодарен.
RoKon
Сообщения: 82
Зарегистрирован: 27 мар 2005, 12:24
Откуда: Saransk City
Контактная информация:

1. Существуют маски для полей, не помню уже что там надо задавать, обрабатывал их только для дат.
2. Можно создать вычесляемое поле (Calculated) и в событии OnCalculated кажется писать в это поле любое значение.
The trurh is out there...
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

Форматит все числовые поля по маске. пример вызова: 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;
С уважением, 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
Ответить