Как отформатировать столбец DBGrid для отображения двух знаков после запятой? [дубликат]

этот вопрос уже есть ответ здесь:

Я хотел бы отформатировать определенные ячейки, чтобы заставить два десятичных знака. Данные поступают из хранимой процедуры ElevateDB и подключаются к TDataSource.

EDIT: Программирование SQL Примечание:

Я не был уверен, что это просто проблема ElevateDB или нет. Прежде чем узнать о Редактор Полей, я попытался отформатировать данные на уровне SQL, используя оператор CAST (NumericField как varchar(10)) внутри хранимой процедуры. Тем самым он не разоблачил DisplayFormat свойства в Редакторе полей для данного поля.

когда я удалил оператор CAST() из хранимой процедуры, DisplayFormat свойство появилось в Редактор Полей.

3 ответов


можно форматировать столбцы DBGrid, форматируя базовые поля. Если это не сделано, создайте статические поля в наборе данных, а затем установите для свойства DisplayFormat соответствующего поля значение 0.00 и вы сделали.


Я использую тот же метод, что и Uwe, в коде после открытия набора данных просто добавьте эту строку кода в формат столбца certian:

  TFloatField(MyDs.FieldByName('Cost')).DisplayFormat := '0.00';

вы можете отформатировать поле с помощью DrawDataCell событие.

procedure TFormMain.DBGridCompareDrawDataCell(Sender: TObject;
  const Rect: TRect; Field: TField; State: TGridDrawState);
begin
  if Field.Name = 'FIELDNAME' then
    TFloatField(Field).DisplayFormat := '#,##0.00';
end;