我有查找字段,當字段爲空時如何設置0值?我們知道, ,一個沒有值的字段將在dbgrid中有一個空白。字段0值爲空
我可以嘗試讓計算字段這樣的:
if lookupfield1.Value = 0 then
calcfield.Value := 0
else
calcfield.Value := lookupfield1.Value;
但我將有很多計算領域創造。
感謝名單
我有查找字段,當字段爲空時如何設置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。