做东西时遇到的:打印两个报表,数据结构相同,所以用一个已经做好的报表就行,但是报表上用Text对象设定的一些文本需要改变。为了这点改变,完全没必要把整个报表再复制一个用,可以用下面的方法在运行时改变:
Dim oPrt As New rptPositionTag
CType(oPrt.ReportDefinition.ReportObjects("Text2"), CrystalDecisions.CrystalReports.Engine.TextObject).Text = "(单位代码:"
也就是根据控件名找到控件,然后设定其内容。
用这种方法能使报表灵活到什么程度还没仔细想过,有没有可能实现动态报表?我想即使能实现也是相当麻烦的事吧,毕竟基本上要靠代码来画表格了。