【发布时间】:2013-08-16 15:48:11
【问题描述】:
我正在 VS 2012(ASP.net,C#)中制作 RDLC 报告并尝试显示是/否字段。我们的测试数据在该字段中有空值,我想将其显示为否。根据我发现的所有研究(包括 SO),此代码是:
=iif( IsNothing(Fields!prior_supplier.Value), "No", iif(Fields!prior_supplier.Value = "Y", "Yes", "No"))
(这将在报告中显示为:“我们以前使用过这个供应商吗?没有”。)
但是,IsNothing() 调用的内容不断出错。我在表达式生成器中有“编译失败”指示符,报告中的结果是#Error。
如何修复 IsNothing() 表达式?我误会了什么?
ETA:也许这与表达式在 VB 中运行并且不会短路有关?
ETA2:我将字段prior_supplier 放到一个文本框中只是为了确保。结果表达式=Fields!prior_dod_supplier.Value 也无法编译。 :困惑:
【问题讨论】:
-
您是否要在同一个文件中混合使用 VB.NET 和 C#?
-
我不知道。此表达式位于 RDLC 文件中。
-
以前没有使用过 SSRS,但是 RDLC 文件的其余部分使用什么语言? C# 中的上述内容相当于
=Fields!prior_supplier.Value == null ? "No" : Fields!prior_supplier.Value == "Y" ? "Yes" : "No"; -
如果您使用的是 2010 或更高版本,您还可以使用 VB If operator,它确实提供短路功能 - 类似于:
=If(IsNothing(Fields!prior_supplier.Value), "No", If(Fields!prior_supplier.Value = "Y", "Yes", "No"))跨度> -
您是否使用向导获取报表数据?您是否使用查询、表或过程来获取填充 tablix 的“数据”?
标签: c# asp.net sql reporting-services rdlc