我使用的是D6+sql2k,在设计统计报表时,由于有34个字段需要统计,再加上设计数据库时,为了避免数据冗余不好维护,需要统计的数据表,还需要关联其他表,结果造成SQL Server报告:使用的统计查询SQL语句超过了256个对象。我只好将原来34个字段拆成两个查询语句Query1,Query2,要生成的报表格式为:
---------------------------------------------------------------------|
      col1    col2    col3   col4   ......col15   col6   col7        |
---------------------------------------------------------------------|
A     stat11  stat12  stat13 stat14   ......stat115 stat116 stat117  |
B     stat218 stat219 stat220 stat221 ......stat232 stat233 stat234  |
---------------------------------------------------------------------|
      stat11  stat12  stat13 stat14   ......stat115 stat116 stat117  |
      stat218 stat219 stat220 stat221 ......stat232 stat233 stat234  |
---------------------------------------------------------------------|
其中A行来自于Query1,B行来自于Query2.但如何在一个QuickRporter报表中生成这种报表呢?各位大虾帮帮我,谢谢!

解决方案 »

  1.   

    你可以用QREXPRE,其DATAFIELD设置为相应的QUERY即可。
      

  2.   

    要实现这样一个问题可以用到用到Quickreport控件的Onneeddata事件啊!
    第一步你要保证Quickreport控件的dateset属性为空.并且每一个QRlabel和Qrdbtext的dataset属性也办空.
    然后在设个全属变量以便控制query的选择.quickreport 的onneeddata事件中手动给各个QRlabel值就行了.
      

  3.   

    我用ONNEEDDATA怎么总是不起作用呀?
    我做了一个最简单的实验:
    在FORM1上放了一个quickrep1,在quickrep1上放一个detail,在此detail上放一个qrlabel1,然后在quickrep1的onneeddata事件中写如下代码:
    qrlabel1.caption:='abcde';
    moredata:=true;
    但预览时总是显示label1的原值:label1,为什么不是'abcde'呢,难道还需要设置别的地方吗?去掉moredata:=true也是一样的结果,moredata:=false还是,好象onneeddata事件根本就没执行,这是怎么回事呀?
      

  4.   

    我不是很明白,是否再说的清楚点。而且使用onNeedData事件,我也出现与楼上相同的结果,该事件不响应,当时我是想实现打印报表没有记录后,继续在该页面打印空表格行的问题,到目前为止仍没有解决,有谁也一并将该问题回答了吧,谢谢。
      

  5.   

    ONNEEDDATA事件不响应是因为我们在平时做报表的时候都将QRREPORT的数据源连接到了指定的查询控件中,将他去掉就可以了。ONNEEDDATA的触发条件必须是QRREPORT不与任何数据源连接。打印空行同样解决。利用临时表。向临时表中加空行就可以了。
      

  6.   

    先把两个结果集合并(select .... union select .....)然后在做报表
      

  7.   

    我看你上面写的,要求显示那么多字段, 是不是每个都是显示,打印出来。你可以通过sql语句统计,统计完后再输出到报表。字段不就减少了。
      

  8.   

    是的,全部需要打印和显示的字段有34个,我是准备用一条SQL语句进行统计,然后再输出到报表的.可是由于当时设计库结构时考虑不周到,结果该语句执行时报告,查询语句超过了256个对象的限制,我不得不分成两条语句进行统计,请再次帮我想一下该问题,最好时具体点.谢谢!
      

  9.   

    我看即然两个query已经查出数据了,就放两个dbtext在detail里,上下放着,上边的dbtext连query1下边的连query2也许能出来,也不用什么连接查询,自身查询什么的,不过报表的dataset一定为空,要不然显示不全,、
      

  10.   

    受人滴水之恩,当涌泉相报。当我问题解决后,有强烈的愿望要与大家共享,请看FAQ.