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

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

РЕДАКТИРОВАТЬ: Примечание программирования SQL:

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

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

3 ответа

Решение

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

Я использую тот же метод, на который ответил Уве, в коде после открытия набора данных просто добавьте эту строку кода для форматирования столбца 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;
Другие вопросы по тегам