水晶报表是没有什么属性可以直接对其背景图片进行设置的,更别说对其动态改变了,下午受一同事启发,我们可以通过更新数据源的方式来间接的对水晶报表背景图片进行动态设置。
还是采用PUSH模式(这种情况估计也只能采用该模式),我们在数据集DataSet1里特别加了一个BackImgTable,里面只放一个字段img(byte[]类型),如图示:
BackImgTable仅仅用于存放报表的背景图片信息。
接下来我们在设计模板里新加一个页眉节,在页眉a节只放置img字段,既然是作为报表的背景图片,所以尽量把该img字段的宽高拉得和纸张一样大(我这边仅仅只是一个样例,故img字段没有拉得如此大),进入节专家设置如下:
最后我们进入关键的代码部分:
最终运行效果如下:
ADD @2010-12-2
可在工具栏再新增一按钮,该按钮可控制报表背景图片的显示或隐藏,参考:
其中布尔型参数showBackImg是用来控制背景图片所在节(我这里是 页眉a节)的显示与否,而IsShowReportBackImg则是全局布尔型变量,用来指示当前报表是否显示背景图片(默认是true---显示背景图片)