Slash

习惯在追逐的过程中不断去完善自己;当你不再去追逐,你自我完善的脚步也就停滞下来了。

导航

CrystalReports相关概念

       ReportDocument在名字空间CrystalDecisions.CrystalReports.Engine中,同时ReportDocument即表示一个报表,并且含有定义、格式化、加载、导出和打印该报表的属性和方法。
如下声明定义方式:
CrystalDecisions.CrystalReports.Engine.ReportDocument report=new CrystalDecisions.CrystalReports.Engine.ReportDocument();
           report=new CrystalReport1();
        ReportDocument用于通过报表对象绑定,其对应方法Load()为加载相应的报表文件(外部)
若将要使用的报表文件.rpt文件已经添加进工程中,则该报表已经自动生成为一个类,此时可以通过使用这个(报表)类,而不需要将报表绑定至报表浏览器。
如代码:
this.crystalReportViewer1.ReportSource=new CrystalReport1();
    子报表的使用   使用于来自多个数据源的特定的报表,即一个报表中包含显示来自不同多个数据源,可以考虑使用子报表或通过编写视图,存储过程的方式实现。
    对于目录与内容表(主从表)的关系,这里选择子报表作为解决方案,在数据源中添加多个数据表,建立连接关系。同时使用CryStal Reports引擎CrystalReports.Engine 实现复杂的打印操作,直接使用DataSet尚不能解决该问题,可以考虑使用子报表,各报表分别为单独设计的报表文件。
    使用主从表,通过程序控制运行时传递对应的单据ID(目录表)实现动态获取数据填充至对应的DataSet数据集,然后在报表浏览器中设计报表显示样式。
主从表和子报表的区别
已解决:
    主从表的不能关联问题:估计是由于数据集架构文件(xsd)中不支持uniqueidentifier类型,故不能建立相关的relation.可以考虑在建立数据集时使用djh字段作为关联字段即可。
对于主从表的Relation编辑问题,作为主表的主键必须在Relation都有所体现,同时对于不同数据类型的字段可能也会有所区别。对于主从表中各个表中连接关系设置问题:目前尚未找到uniqueidentifier的不支持问题,同时在报表文件rpt和数据集架构文件xsd中的连接为不同含义,此时在设计报表显示数据格式时只需要在报表文件设计器中的执行如下操作:右键-〉数据库->可视链接专家,然后执行相关设置即可完成。此时若选择的链接字段类型为uniqueidentifier时则会出现问题而不能提取任何数据。
    同时CrystalReportView支持的组功能可以实现只打印部分内容,双击对应的组名即新增Tab窗体,以显示所选定的组内容。
深入理解报表中各部分节的含义
报表页眉
页眉
详细资料节
报表页脚
页脚
    同时各部分的默认显示方式也有所不同,如报表页眉为默认不显示(抑制显示),而报表页脚为默认显示(不抑制显示)。

posted on 2007-09-16 15:35  Slash  阅读(406)  评论(0编辑  收藏  举报