8

小数点以下 2 桁を強制するように特定のセルをフォーマットしたいと思います。データは ElevateDB ストアド プロシージャから取得され、TDataSource にフックされます。

編集: SQL プログラミング注:

これが単なる ElevateDB の問題かどうかはわかりませんでした。Fields Editorについて知る前に、ストアド プロシージャ内で CAST (NumericField as varchar(10)) ステートメントを使用して、SQL レベルでデータをフォーマットしようとしました。そうすることで、この特定のフィールドのフィールド エディター内に DisplayFormatプロパティが公開されませんでした。

ストアド プロシージャから CAST() ステートメントを削除すると、DisplayFormatプロパティがFields Editorに表示されました。

4

3 に答える 3

9

Uweが回答したのと同じ方法を使用します。データセットを開いた後のコードで、次のコード行を追加してcertian列をフォーマットします。

  TFloatField(MyDs.FieldByName('Cost')).DisplayFormat := '0.00';
于 2012-04-22T20:55:37.620 に答える
9

基になるフィールドをフォーマットすることにより、DBGrid 列をフォーマットできます。完了していない場合は、データセットに静的フィールドを作成し、問題のフィールドの DisplayFormat プロパティを に設定0.00すれば完了です。

于 2012-04-22T20:35:10.233 に答える
2

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;
于 2012-04-23T10:37:32.157 に答える