2012-04-22 14 views
7

İki ondalık basamağı zorlamak için belirli hücreleri biçimlendirmek istiyorum. Veriler bir ElevateDB saklı yordamından geliyor ve bir TDataSource'a bağlanıyor.İki Ondalık Yer Görüntülemek için DBGrid Sütunu Nasıl Biçimlendirilir?

DÜZENLEME: SQL programlama Not:

Bu sadece bir ElevateDB sorunu olup, olmadığına emin değildi. Fields Editor hakkında bilgi sahibi olmadan önce, saklı yordamın içinde CAST (NumericField varchar (10)) ifadesini kullanarak verileri SQL düzeyinde biçimlendirmeyi denedim. Bunu yaparak, bu belirli alan için alan editörünün içine DisplayFormat özelliğini göstermedi. Saklı yordam CAST() deyimi uzaklaştırıldı

, DisplayFormat özelliği Sahası Editör ortaya çıktı.

+0

Yalnızca sayısal alanlar bir DisplayFormat özelliğine sahiptir - bu, dize alanlarında kullanılmaz. –

cevap

9

DBGrid sütunlarını, alttaki alanları formatlayarak biçimlendirebilirsiniz. Tamamlanmadıysa, veri kümenizde statik alanlar oluşturun ve söz konusu alanın DisplayFormat özelliğini 0.00 olarak ayarlayın ve işiniz bitti.

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

"Statik Alanlar" ı nasıl yaratıyorsunuz? DisplayFormat'ı nasıl ayarlıyorsunuz? –

+0

Statik (kalıcı olarak da adlandırılır) alanlar oluşturmak için [alan düzenleyicisini] (http://docwiki.embarcadero.com/RADStudio/en/Fields_Editor) kullanın. Her alanın bir DisplayName özelliği vardır. –

+0

"Sağ Tıklanan" ı ve "Alan Düzenleyicisi" ni buldum. Ancak ... DisplayFormat yoktur. Şu anda Delphi ile çok sinirlendim, tükürdüm. –

7

Sadece certian sütun biçimlendirmek için bu kod satırını ekleyin veri kümesini açtıktan sonra kodunda, aynı yöntemi kullanın.

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

Sen DrawDataCell olayı kullanarak alanı biçimlendirebilirsiniz: Uwe cevap olarak

İlgili konular