仅当水晶报告包含详细信息时,才会加载徽标

本文关键字:加载 水晶 报告 包含 详细信息 | 更新日期: 2023-09-27 18:37:18

我正在尝试在水晶报告中加载公司的徽标。为了做到这一点,我在我的数据集中创建了另一个DataTable(除了包含所有详细信息的DataTable,我称之为ReportData),名为ReportSetup,它只有一个名为LogoData的列,类型为System.Byte[]。然后,我将 LogoData 字段拖放到报表中,并期望它在我运行报表后显示我的图像。

但是,尽管徽标实际出现在报表中,但仅当其他数据表 (ReportDate) 具有条目时,徽标才会显示。如果我的报告中没有任何详细信息,则不会显示徽标。当我调试时,我可以看到加载我的数据表的代码正在执行,因此正确的数据被放入ReportSetup数据表中,只是没有显示。知道为什么吗?

仅当水晶报告包含详细信息时,才会加载徽标

我认为您需要使用子报表。如果数据源中有多个不相关(未联接)的表,CR 将向您发出警告。问题是 CR 不知道从哪个表开始。

我认为您可以在代码中更改图像源,以便您可以按照@HardCode的建议将占位符徽标添加为图像,然后在运行时替换它。

如果徽标数量"过多",您可以将每个图像嵌入到其自己的部分中,然后添加一个条件抑制公式来对参数做出反应。

//add a conditional-suppression formula for each section that contains a logo
//change name to match logo
Local Stringvar companyName:="Acme";
{?CompanyName}<>companyName;