DBGrid中有很多条记录。我在DBGrid中选择了多条记录。想把这几条记录做成报表。该怎么做呢。在线等待。请各位大侠帮帮我!先行感谢!!

解决方案 »

  1.   

    grid有一个选中列的属性,或者用过滤
      

  2.   

    请ynmilk()大侠说具体一点好吗?
      

  3.   

    根据选中记录的主键动态构造获取数据的SQL,重新开记录集用于打印
      

  4.   

    我一直用EXPRESS的GRID,普通的GRID不知道有没有选中标志
      

  5.   

    可否换用dbgrideh,PrintDBGridEh
      

  6.   

    用第三方控件Ehlib3.0 功能比DBGrid强很多,可以直接打印和导出excel等其他格式报表
      

  7.   

    form大侠你能确认用dbgrid?行吗?能讲具体一点吗?谢谢!!
      

  8.   

    在哪里能找到第三方控件Ehlib3.0呢?
      

  9.   

    靠,换个控件吧,dbgrid功能有限
      

  10.   

    你选的记录是随便的吗?如果是可以加个query空间通过sql语句过滤,再进行打印。若不是,可以创建一个表,让用户选一条复制一条到表中,进行打印,再将表清空。
      

  11.   

    你可以得到你所选中的行的信息,包括那一行,又几列,什么数据等,然后再动态的向QuickReport里去写就可以了(先在QuickReport里放好DBText控件,又几列就放几个;列最好不要动态,因为那样就要好几个QuickReport。),我做过,绝对没有问题了,还不行,给我发信
      

  12.   

    QuickReport我都设计好了。都是静态的。怎么样能得到我所选中的多行记录的信息呢?
    得到这些信息后能不能保存到Adoquery里面呢?
    softwaiter大哥指教。。在线等待。...
      

  13.   

    将DBGrid的options中dgMultiselect,dgRowSelect设为True
    就可以多选
      

  14.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      I: Integer;
      S: string;
    begin
      S := '';
      for I := 0 to DBGrid1.SelectedRows.Count - 1 do begin
        DBGrid1.DataSource.DataSet.Book := DBGrid1.SelectedRows[I];
        S := Format('%s or NAME=%s',
          [S, QuotedStr(DBGrid1.DataSource.DataSet.FieldByName('NAME').AsString)]);
      end;
      Delete(S, 1, Length(' or '));
      DBGrid1.DataSource.DataSet.Filtered := False;
      DBGrid1.DataSource.DataSet.Filter := S;
      DBGrid1.DataSource.DataSet.Filtered := True;
      { TODO : 打印 }
      //恢复用 DBGrid1.DataSource.DataSet.Filter := '';
    end;
      

  15.   

    使用QuickReport最好将如下参考例子~~
    C:\Program Files\Borland\Delphi6\Demos\QuickRpt俺通常是调用Excel来给用户打印~~
      

  16.   

    伴小清清大侠。
    怎么才能将我所选择的这几行记录的user_pay(是“应付款”)字段值进行合计,并显示在报表上呢?
    在线等候大侠的赐教。......
      

  17.   

    不知你的问题搞定了吗?我的qq号:86721757;可以在线提问。邮箱:[email protected]