for i:=0 to dbgrid1.FieldCount-1 do begin if dbgrid1.Fields[i].AsString='' then .......
procedure TfrmStockPlan.RsStockPlanAfterScroll(DataSet: TDataSet); var eFlag:boolean; begin eFlag:=false; with dataset do begin if FieldValues['provider']=Null then eFlag:=true; if FieldValues['provider']='' then eFlag:=true; //用上面两种方式做判断都得不到正确结果,要怎么才能知道该字段有没输入内容 if eFlag then begin showmessage('资料录入不完整!'); PostMessage(StockPlanList.Handle, WM_KEYDOWN, VK_ESCAPE, 0); end; end; end; //在ADOQuery1的AfterScroll作判断的
那可以在ADOQuery1的afterscroll里写,
dbgrideh上下方向键移动就是数据记录
滚动啊!
我是在做录入,是在grid里录入的,想在离开这一行时,就判断数据是否有效。。
在afterscroll里,第一次点击cell框也会触发这个事件。。
begin
if dbgrid1.Fields[i].AsString='' then
.......
var
eFlag:boolean;
begin
eFlag:=false;
with dataset do
begin
if FieldValues['provider']=Null then eFlag:=true;
if FieldValues['provider']='' then eFlag:=true;
//用上面两种方式做判断都得不到正确结果,要怎么才能知道该字段有没输入内容
if eFlag then
begin
showmessage('资料录入不完整!');
PostMessage(StockPlanList.Handle, WM_KEYDOWN, VK_ESCAPE, 0);
end;
end;
end;
//在ADOQuery1的AfterScroll作判断的