dbgrideh作输入框,有个下拉字段,出现no,name,simpname,3个字段,选择某条纪录后,no会默认付给改下拉字段,
要求选择的同时把name,simpname两个字段,付给dbgrideh中的两个字段,请问这个操作在哪个事件里写!

解决方案 »

  1.   

    我目前在colexit事件里写,有些不妥!
    procedure TGridForm.DBGridEh1ColExit(Sender: TObject);
    begin
      //再次离开首列????
      if TstringGrid(DBgridEH1).Col = 1 then
      adoquery1.FieldByName('productno').AsString := dm.ProductQuery.fieldbyname('productno').AsString;
    end;如果把前几行输入完后再回到第一行,在下拉框选一个记录当离开时就会出错!
      

  2.   

    如果你要这样做的话 要用到
    adoquery1.edit;
    adoquery1.FieldByName('productno').AsString := dm.ProductQuery.fieldbyname('productno').AsString;
    adoquery1.post;如果你真接在adoquery1数据集字段里的 Change事件里字可能会好些 
    DBGridEh1ColExit 事件做你想要的事不是很好 也可以在
      

  3.   

    我的这个dbgrideh对应的query是临时的,等若干行输入后,再保存到一个数据库表中!
    如果这样的话,能这样用吗?
      

  4.   

    我已经实现了.
    该字段用fklookup
    再看看demo1肯定是可以实现得..........
    源代码写得很清楚..
    很难做的就是这个表不是固定得..而是动态得..
    就不是那么容易..................
    我正在思考中.........
    望高手帮助~~~