我有一个VB.NET应用程序需要生成包含可选图像的报告(发票)。图像将被加载到报告中的6个位置中的1个位置,但将驻留在客户端PC上(与应用程序一起部署)。我一直在尝试访问ICROleObject对象,这是放在报表上的对象,但我甚至无法在对象浏览器中找到此接口。由于这是对象的界面,我认为只要我可以投射它就可以访问它:
CType(r.ReportDefinition.ReportObjects("picTL"), ICROleObject)我会发现这个想法,或者我是否正确接近这个想法? 我已尝试按照 http://www.idautomation.com/crystal/streaming_crystal.html上的说明进行操作,这对于嵌入在.NET 2008中的Crystal版本无效。在 {{ {3}},虽然那个看起来更有前途,但是我试图建模的那个 如果我必须使用数据集&一系列子报告,我想可以......但是这种方法看起来并不像这个那么简单。
答案 0 :(得分:1)
您应该将其转换为PictureObject。 “PictureObject”类型位于 CrystalDecisions.CrystalReports.Engine 命名空间中。
例如:
Dim pic = CType(rapportCourant.ReportDefinition.ReportObjects(“Picture1”), PictureObject ) pic.ObjectFormat.EnableSuppress = True
然后,您可以根据需要禁止启用图片对象。
答案 1 :(得分:1)
我的方法是设置Crystal Reports 参数来定义哪个图像应该是可见的,然后使用此参数自定义抑制公式。 我在导出报告时遇到了一个水晶报告异常,这是因为操作报表外部的报表对象引起的,即使打印预览工作正常。