有DBGrid1和DBGrid2,DBGrid2是查询结果,当我双击DBGrid2的某一行时,DBGrid1自动增加DBGrid2双击的数据,这个DBGrid2的DBClick事件怎么写?我要的是增加整行,不是增加所选的单元格。补充一下,DBGrid2关联的adoquery1的语句是:select ItemCode,ItemName from Item
DBGid1关联使用adotable1,使用的字段是ItemCode,ItemName,Price,Qty.我的目的是在DBGrid2查询结果选定多个物料,在DBGrid1输入单价和数量,提交到数据库

解决方案 »

  1.   

    在dbgrid2的dbclick中,
      with dbgrid1.DataSource.DataSet do
      begin
        Insert;
        dbgrid1.Fields[1].Value:=dbgrd2.SelectedField.AsString;
        Post;
      end;
    //dbgrid2表格中当前所选的记录的第一个字段内容赋值到dbgrid1表格的第二个字段内容里这只是个实例,参考这个,你自己弄一下就OK了,
      

  2.   

    你所要求的要全部复制进去,
    可以改成
    dbgrid1.fields[1].value:=dbgrid2.fields[0].value;当然,直接再弄个adoquery 加上sql语句直接insert 也应该可以
      

  3.   

    例如,你先选择好你要添加的数据(前题是DBGrid2设好相关属性支持多选),然后按下一个按钮将所选的数据添加到DBGrid1中去,代码如下:
    procedure TForm1.Button1Click(Sender: TObject);
    var
    i:integer;
    begin
      if DBGrid2.SelectedRows.Count>1 then begin {---如果有选择了数据---}
        for i :=0  to DBGrid2.SelectedRows.Count-1 do begin{将选了的所有数据添加到DBGrid1中去}
          ADOQuery1.GotoBook(pointer(DBGrid2.SelectedRows.Items[i]));
          ADOTable1.Append;
          ADOTable1.Fields[1].Value:=ADOQuery1.Fields[1].Value;
          ADOTable1.Fields[2].Value:=ADOQuery1.Fields[2].Value;
          ADOTable1.Post;
        end;
      end;
    end;
      

  4.   

    你试试有没有这样的方法:DBGrid2.Colums.Assign(DBGrid2.Columns.Column[0]);