2012-01-06 134 views
0

我有查找字段,當字段爲空時如何設置0值?我們知道, ,一個沒有值的字段將在dbgrid中有一個空白。字段0值爲空

我可以嘗試讓計算字段這樣的:

if lookupfield1.Value = 0 then 
    calcfield.Value := 0 
else 
calcfield.Value := lookupfield1.Value; 

但我將有很多計算領域創造。

感謝名單

回答

0

如果我正確理解你的問題,你想知道當TIntegerField包含null時,如何使網格顯示爲「0」而不是BLANK。

一種更簡單的方法比計算的領域將是使用OnGetText事件

procedure TForm2.ClientDataSet1F1GetText(Sender: TField; var Text: string; 
    DisplayText: Boolean); 
begin 
    Text := IntToStr(Sender.AsInteger) 
end; 

我與DisplayFormat財產玩弄......但似乎並沒有影響到空值的顯示格式。 (至少不在TDBGrid中...)

3

使用TField.Clear方法設置數據庫字段爲NULL(在SQL術語NULL值)。

if lookupfield1.Value = 0 then 
    calcfield.Clear 
else 
    calcfield.Value := lookupfield1.Value; 
0

你試過:

if lookupfield1.Value = null then 
    calcfield.Value := 0 
else 
    calcfield.Value := lookupfield1.Value; 

而不是使用計算領域,作爲替代,你可以在字段值在數據集中的BeforePost如果字段值爲null設置爲0。

procedure tMyTableBeforePost(Dataset: TDataset); 
begin 
    if Dataset.fieldbyname('MyField').asstring = '' then 
    Dataset.fieldbyname('MyField').asstring := '0'; 
end; 

我會盡量避免計算的字段。

如果您的數據庫支持它,則可以在表配置級別將該字段的默認值設置爲0。