C# 在运行时隐藏crystal报表中的列?

C# 在运行时隐藏crystal报表中的列?,c#,asp.net,sql-server-2005,crystal-reports,C#,Asp.net,Sql Server 2005,Crystal Reports,如何在运行时隐藏crystal报表中的列? 感谢您的建议。您可以使用参数(可以在运行时设置这些值)并在对象的抑制公式中使用它们。选项1:使用条件抑制逻辑隐藏/显示冗余字段 使用参数字段驱动所需字段的抑制公式 如果要消除字段之间的空格,则需要将字段堆叠在彼此的顶部,并适当地抑制它们。在您的示例中,列2将包含字段2和字段3(均被抑制),列3将包含字段2和字段3(均被抑制)。在您的示例中,抑制逻辑将继续抑制第2列中的两个字段,但将在第2列中显示字段3(第2列中的字段2仍将被抑制) 选项2:使用“占位符

如何在运行时隐藏crystal报表中的列?
感谢您的建议。

您可以使用参数(可以在运行时设置这些值)并在对象的抑制公式中使用它们。

选项1:使用条件抑制逻辑隐藏/显示冗余字段

使用参数字段驱动所需字段的抑制公式

如果要消除字段之间的空格,则需要将字段堆叠在彼此的顶部,并适当地抑制它们。在您的示例中,列2将包含字段2和字段3(均被抑制),列3将包含字段2和字段3(均被抑制)。在您的示例中,抑制逻辑将继续抑制第2列中的两个字段,但将在第2列中显示字段3(第2列中的字段2仍将被抑制)

选项2:使用“占位符”公式字段

可以抑制的每一列数据都是一个公式字段。每个公式字段将使用选择案例逻辑来选择要显示的所需字段。“隐藏”字段只返回空值。您的选择案例逻辑将被写入,以确保从左到右填充值。格式化需要在公式中进行,而不是在公式字段本身上进行

选项3:使用SDK动态更改报告

使用CR.Net SDK或旧的CRAXDRT API动态修改列的可见性和位置


但是,如果您使用此选项,您的部署选项将受到更多限制。

仅为了分享,我在

使用crystal report中的参数将数据库中的数据动态加载到crystal report中,并根据用户的选择指定应在报告中显示哪些字段(特定表的列)


Dani.

好的,Jojo,如果我有3列,我想隐藏第二列,这样做没有空格吗。非常感谢你。+1作为CR专家,我会这么做。越简单越好,保持简单!因此,更简单的方法是在抑制条件下进行。你也可以压制空白部分。谢谢克雷格的回答,那么,你说的“占位符”是什么意思?正如威尔·马库勒所说,我怎样才能压制空白部分?非常感谢你抽出时间。另一个问题是,是否有动态报告允许最终用户选择显示\隐藏列?谢谢你的威尔Marcouiller@DaniAM:在此上下文中,“占位符”是一个公式字段,其值是动态计算的。“Suppress Blank Section”是该节的一个属性——如果该行中的所有字段都为空,它将隐藏整行。根据你的描述,我认为这不是你想要的。Crystal Reports本身没有“动态”报告。你可以尝试交叉结算,但这可能无法满足你的需要。您可以尝试使用我提到的任一SDK动态创建报告,但这更复杂。好的,我正在研究第一个选项,对于动态报告,如果我想在不使用SDK的情况下生成动态报告,sql报告是一个不错的选择。谢谢你的回答。@Dani AM:你说的“sql报告”是什么意思?微软SSRS?