哥们我想实现一个动态报表打印程序,具体想法如下:
1.报表题头是动态从数据表a中取得的,其相应的数值也是从库表中b提取的.
eg.
 标题:                 动态打印报表 表头:  A       B       C       D        E
 内容:  a1      b1      c1      d1       e1
         a2      b2      c2      d2       e2
         ..      ..      ..      ..       ..
         a10     b10     c10     d10      e10其中想实现表头A,B,C,D,E是从表a中动态得到的。我的想法是:可以从表a中循环取值,横向排列!不知到想法是否正确,同时也不知道怎么能做到横向循环取值!     请帮忙!谢谢了!

解决方案 »

  1.   

    qrCreatelist
    看看它的帮助一知道了
      

  2.   

    你可以利用Tprinter对象,从数据库表中取出表头的字段值,然后循环
    利用printer.canvas.textout输出
    例: For i:=0 To Adoquery.recordcount-1 Do
        Begin
          printer.canvas.textout('字段值',x-横坐标,y-纵坐标)
        End;
    下面表的内容也是这么做
    不知道你有没有用过水晶报表(crytalreport)中的cross-tab形式就可以很容易的得到了
      

  3.   

    你要动态 那表头的数量是不是不固定呢 如果是 我刚好做过 我是先吧 数据输入到一个DBGRID里面 然后 根据DBGRID的列数 来临时生成TQRLABEL和QRDBEDIT 这里我是用的数组
    然后再循环指定TQRLABEL。caption;=DBGRID.Columns [x].FieldName;然后位置什么的自己设吧 很简单的
      

  4.   

    我通过临时表已经把数据显示在dbgrid中,如何通过quickrep动态打印呢?
    能实现qrshape[i]吗?
    麻烦把你的代码发送到我的EMAIL
    [email protected]