关于报表的问题,怎么实现3个ADOQUERY的并排打印?就是这样的打印效果:       商品1                商品2                   商品3
商品名称 数量 单价      商品名称 数量 单价       商品名称 数量 单价 
aa       1    4          

解决方案 »

  1.   

    但我的QUERY查询出来的不是单一的一个记录,而是数据集啊
      

  2.   

    如果你使用的是delphi7的话建议试一下rave,rave可以实现你所说的功能。
      

  3.   

    真是CSDN的耻辱,这个问题就是没人能解答,放了3天了
      

  4.   

    1、建一个临时表,把三个查询合并到一个表中。
    2、用FastReport可以实现。
      

  5.   

    三个query中的数据记录数是不是可以不同,你可以如楼上所说用临时表来搞定
      

  6.   

    将三个ADOQUERY的数据合并到一个ClientDataSet。即三个ADOQUERY各取一条记录合并为一条,然后存入ClientDataSet。—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————
      

  7.   

    每个ADOQUERY查询的记录条数都不一样啊,to: lxpbuaa(桂枝香在故国晚秋) :即三个ADOQUERY各取一条记录合并为一条,然后存入ClientDataSet,这个怎么实现
      

  8.   

    假设ADOQUERY1、ADOQUERY2、ADOQUERY3各有n1、n2、n3个字段,那么首先在ClientDataSet中创建n1+n2+n3个字段(可都为字符串类型)。然后:ADOQUERY1.First;
    ADOQUERY2.First;
    ADOQUERY3.First;
    while not ADOQUERYn.Eof do //自己想办法判断哪个ADOQUERY记录最多
    begin
      ClientDataSet.Append;
      if not ADOQUER1.Eof then for I := 0 to n1-1 do
        ClientDataSet.Fields[I].AsString := ADOQUER1.Fields[I].AsString;
      if not ADOQUER2.Eof then for I := 0 to n2-1 do
        ClientDataSet.Fields[n1+I].AsString := ADOQUER2.Fields[I].AsString;
      if not ADOQUER3.Eof then for I := 0 to n3-1 do
        ClientDataSet.Fields[n1+n2+I].AsString := ADOQUER3.Fields[I].AsString;
      ClientDataSet.Post;
      ADOQUER1.Next;
      ADOQUER2.Next;
      ADOQUER3.Next;
    end;
     最后用ClientDataSet作报表。—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————
      

  9.   

    最简单的你就在Qreport的OnneedData事件里面写,该事件触发于每个detail Band读取数据的时候,并且控制该Band的项目,由MoreData := true/false 标志控制是否打印下一个Band.
      

  10.   

    唉,忘记了一个更简单和高灵活性的方法:把数据导出到Excel中,这样你想怎么打就怎么打,怎么加工就怎么加工。前提就是计算机要装有Excel。详细情况请在google中敲入“导出 Excel”之类的字眼。
      

  11.   

    lxpbuaa(桂枝香在故国晚秋) 我服了你,你给了条思路我正在研究怎么做你就把答案给贴出来了。
      

  12.   

    老兄,CSDN 上还是有些人才的吧,呵呵
      

  13.   

    TO xpbuaa(桂枝香在故国晚秋) :是不是每次打印到存到ClientDataSet里,但是客户每次都会添加和删除商品的,也就是说,商品是动态的。而且哪个多,也是不定的。这次打印完了,下次还是同一个客户的商品,但是数量价格,商品条数也变了。是不是打印完了,我就给删掉,下次打在存