如果要作成的报表不多,你可以先采用制作出所有的报表,在水晶报表中要做出动态的报表你要面对的困难就要大多的。
看了你上面的三个报表都可以通过SQL语句来实现
select class as 班级号,average(math.num) as 数学平均分,average(english.num) as 英语平均分 ,
(average(math.num) + average(english.num)) as (数学+英语)平均分 from stu,english,math where stu.stu_no = math.stu_no and stu.stu_no = english.stu_no group by stu.class另外:
1.Crystal Report使用ADO.NET对象时,必须首先定义类型化的DataSet。在DataSet,你必须定义好报表中使用的DataTable结构。 
这样你就可以在报表设计器中拖动字段了。2.在程序运行中,你必须用类型化后的DataSet生成实例,然后向实例中的DataTable填充内容。3.生成报表对象,打印。

解决方案 »

  1.   

    TO danfree(可可) ;
    想要什么详细点的?一般的你在论坛上搜索下就行了。
      

  2.   

    to danfree(可可)
    用crystal report 作出随意由客户决定显示那些列,基本是不可那的.不要费力了.
    比较笨的方式就是将可能出现的列按排列组合生成相应数量的报表.(这是不可能完成的任务)现在可以用xml技术实现报表的自定义(任意的).但在开发web方式的客户端时.要安装.net框架.(唯一的缺点)具体的方法http://www.microsoft.com/China/Community/TechZone/TechArticle/TechDoc/xmlwebreport.asphttp://www.microsoft.com/China/Community/TechZone/TechArticle/TechDoc/xmlwebprint.asp
      

  3.   

    crystal report 做成动态的是很难的,最好不要费力了
      

  4.   

    不过,MS应该是可以做的更好的,期待ing...
      

  5.   

    以前vb6.0时不是可以的吗,好象。net中反而不行
      

  6.   

    to 楼上
    vb6.0中用的是fastreport 怎么可以实现报表列的客户自定义呢?
    fastreport 怎么可以和crystalreport 比呢(虽然crystalreport也是实现不了)