如何在dbgrid中控制每一列的输入,如在这个列失去焦点后判断这个列的text.value.

解决方案 »

  1.   

    在dbgrid的colexit事件中写出相应的语句就可以了!
      

  2.   

    可在字段的OnSetText事件中写判断语句
      

  3.   

    保存中判断
    with Query do
    begin
    if VarIsNull(FieldValues['Unit_Price']) or VarIsEmpty(FieldValues['Account']) then
    begin    Showmessage('不能为空');
    end;
      

  4.   


    谢谢各位!   在dbgrid中,如果单价,数量两列为空。进行合计计算就会出错,那么怎么判断这个列的值为空。注意字段是数值型的。
    procedure Txkssform.DBGrid1ColExit(Sender: TObject);
    begin
    if DBgrid1.Fields[3].Value为空 then      这句怎么写?
        showmessage('不能为空,请重新输入‘);
        ................                    返回这个列怎么写?
        DBgrid1.Fields[3].Value:=0;
      end;
      

  5.   

    在SQL语句里可以用Is Null判断,或者在SQL语句中把为空的字段赋成0.
    isnull(aa,0)
    aa表示字段
      

  6.   

    在字段的OnSetText判断是最好的方法了!
    try
       query1.FieldByName('fields').Asstring:=StrToint(Text);
    except
       showMessage('错误');
       abort;
      

  7.   

    我是在grid里缓存更新记录,并修改、增加记录。主要是处理数值型字段。
    如果单价,数量两列为空。进行合计计算就会出错,那么怎么判断这个列的值为空。注意字段是数值型的。
    procedure Txkssform.DBGrid1ColExit(Sender: TObject);
    begin
    if DBgrid1.Fields[3].Value为空 then      这句怎么写?
        showmessage('不能为空,请重新输入‘);
        ................                    返回这个列怎么写?
        DBgrid1.Fields[3].Value:=0;
      end;
      

  8.   

    if DBGrid1.Fields[3].IsNull  then
       dbgrid1.Fields[3].Value:=0;
      

  9.   

    to 回复人: boynicky(鱼干儿) ( ) 信誉:100 对了,thank you