Как отформатировать столбец 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;