字段0值为空

问题描述:

我有查找字段,当字段为空时如何设置0值?我们知道, ,一个没有值的字段将在dbgrid中有一个空白。字段0值为空

我可以尝试让计算字段这样的:

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

但我将有很多计算领域创造。

感谢名单

如果我正确理解你的问题,你想知道当TIntegerField包含null时,如何使网格显示为“0”而不是BLANK。

一种更简单的方法比计算的领域将是使用OnGetText事件

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

我与DisplayFormat财产玩弄......但似乎并没有影响到空值的显示格式。 (至少不在TDBGrid中...)

使用TField.Clear方法设置数据库字段为NULL(在SQL术语NULL值)。

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

你试过:

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。