字段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。