dbgrid中的column分别是:产品名称,规格,型号,数量,我想录入数据。并且回车后焦点可以下移。(在dbgrid中焦点下移我已解决),但是我想实现另外一个功能就碰到问题:我想在名称中输入代码,产品名称,规格,型号自动跳到相应的格内,焦点移到数量里。
请各位前辈指教!不胜感激!
1、是怎样捕捉产品名称项的回车事件?
2、怎么样自动填进去?
3、焦点怎么样移到数量格内?
(注:有一张代码,名称,规格...表)

解决方案 »

  1.   

    不止这个能否给你启发:http://218.56.11.178:8020/web/index.aspx-》下载基地-》例程-数据库/报表-》在DBGRID中下拉列表的显示
      

  2.   

    table1对应'代码,名称,规格...表'在'代码'field的onsettext事件中
    var
      V: Variant;
      C: string;
      A: String;
    begin
      V := Table1.Lookup('代码',
        [text]),
        '名称,规格,型号');
      if not (VarType(V) in [varNull]) then 
        begin
        FieldByName('名称').asstring:=v[0];
        FieldByName('规格').asstring:=v[1];
        FieldByName('型号').asstring:=v[2];
      end
      

  3.   

    1.DBGRID的KEYPRESS事件里可以获取,如下:
    ////////////////////
      if key=#13 then { 判断是按回车键}
      begin   
           with tdbgrid(sender.activecontrol) do //可以用相应的DBGRID名称代替
           if selectedindex=0 then  //假设0是产品名称的列序号
              selectedindex:=3;//假设3是数量的列序号
           else
              selectedindex:=selectedindex+1  //其他情况就是相当TAB
     
      end;
    ////////////////////////////////
    2.在DBGRID的ColExit内写事件;如下
    /////////////////////////////////
     if dbgrid1.selectedindex=0 then //名称
        begin
           
           dbgrid1.Fields[4].AsString:= ;  //规格(值自己从相关的表取)
           dbgrid1.Fields[5].AsString:= ;//型号
       end;
    ////////////////////////////////////
    3.问题1中已经解决这个问题。
      

  4.   

    在'代码'field的onsettext事件是什么意思?
    onsettext是那个事件?
    谢谢!
      

  5.   

    因为上面的代码写得比较匆忙
    你参考下面的例子作一下修改
    onsettext事件中
    首先在table1 的 fieldEditor中选择中相应的字段
    在object inspector中Events中
    procedure TForm1.Button1Click(Sender: TObject);
    var
      V: Variant;
      C: Integer;
      A: String;
    begin
      V := Table1.Lookup('Company;State',
        VarArrayOf(['Blue Sports', 'OR']),
        'CustNo;Addr1');
      if not (VarType(V) in [varNull]) then begin
        C := V[0];
        A := V[1];
        ShowMessage(IntToStr(C) + #10 + A);
      end
      else
        ShowMessage('Search unsuccessful!');