如果用fastreport可以解决这样的问题.quickreport解决方法:写SQL语句关联A.B.C三表,不使用外联.缺点:不能显示B.C无记录时A的内容.使用外联:在needdata事件中作数据处理.

解决方案 »

  1.   

    把a表的字段名称放到一个表里,把其他字段的名称放到另外一个表中
    用第二个表的数据与第一个表比较生成sql条件语句取数便可以了
      

  2.   

    这种应该属于交叉报表的范畴,其实可以通过写存储过程来实现报表内容,然后在Delphi中将他显示出来就OK。(关键是如何实现存储过程!)
      

  3.   

    假设id char(10),name char(20),value1,value2,value3为double
    A(id,name)
    B(id,value1)
    C(id,value2)
    D(id,value3)select id as order1,id,0 as order2,name,null as value from A
    union
    select a.id as order1,"" as id,1 as order2,"" as name,value1 as value from A,B where A.id=B.id
    union
    select a.id as order1,"" as id,2 as order2,"" as name,value2 as value from A,B where A.id=C.id
    union
    select a.id as order1,"" as id,3 as order2,"" as name,value3 as value from A,B where A.id=D.id
    order by order1,order2
      

  4.   

    或者直接建一个临时表,把ABC表的数据都加入,然后选择用ORDER BY