我想实现把DbGrid(已设置dgMutiSelect为true)中选中的几行打印出来,看了一些以前的帖子,但是不知道怎么能把DbGrid选中的记录存到一个临时表中;能不能把选中的记录存到adoquery中呢?大家提示我一下吧!

解决方案 »

  1.   

    使用adoquery.GotoBook(pointer(dbgrid.SelectedRows.Items[i]))把选中的数据存到clientdataset再打印
      

  2.   

    好像弄不出来啊,我对gotobook的操作基本上是不明白,高手们能不能再给我讲讲的啊,怎么个存储法啊?
      

  3.   

    var
      i                 : integer;
      booklist1     : tbooklist;
      book1         : tbook;
      ss,ss1            : string;
    begin
      book1 := quy_test.GetBook;  ss := 'select * from testtable where id in (';  booklist1 := dbgrid1.selectedrows;
      for i := 0 to booklist1.Count - 1 do
      begin
        quy_test.GotoBook(pointer(booklist1[i]));
        if i <> booklist1.Count - 1 then
          ss1 := ss1 + '''' + quy_test.fieldbyname('id').asstring + '''' + ','
        else
          ss1 := ss1 + '''' + quy_test.fieldbyname('id').asstring + '''';
      end;
      quy_test.GotoBook(book1);
      quy_test.FreeBook(book1);
      ss := ss + ss1 + ')  ';  quy_test.Close;
      quy_test.SQL.Clear;
      quy_test.SQL.Add(ss);
      frReport1.ShowReport;
    end;说明:quy_test连接dbgrid1