【发布时间】:2017-04-14 18:22:09
【问题描述】:
我正在尝试修改报表生成器报表 (Visual Studio 2013),但它没有显示四个表达式。以下字段是这样编码的,效果很好!
=First(Microsoft.VisualBasic.Interaction.IIF(Fields!ISPASS.Value = "Y", "YES", "NO"), "DataSet1")
但是,我有 4 个其他字段以完全相同的方式编码,但具有不同的字段值,如下所示:
=First(Microsoft.VisualBasic.Interaction.IIF(Fields!ISSUCCESSFUL.Value = "Y", "YES", "NO"), "DataSet1")
不显示“YES”或“NO”。在这个特定领域,我为它提供了一个“N”。这是 PASS 表达式效果很好的 RB 片段:
这是我的这份报告中的 PDF 的一部分:
以下是我遇到问题的那些字段的数据(不用担心 EXCEPTIONAL 上的拼写错误,它到处都是拼写错误,这不是问题):
这是用于填充 XSD 文件的 C# 代码:
if (result.Any()) {
foreach (var item in result) {
dtResult.Rows.Add(new object[] {
item.FULLNAME.ToUpper(), item.STORENUM, item.SSID, item.EVALDATE,
item.EVALYEAR, item.ISEXEPTIONAL, item.ISHIGHSUCCESS,
item.ISSUCCESSFUL, item.ISUNSUCCESS, item.ISPASS,
item.JUSTIFICATION, item.OVERALPERFORMANCE,item.SUPERCOMMENT,
item.curManager.ToUpper(), item.empType, item.questionNo,
item.questionDescript, item.questionShortTitle, item.questionPass,
item.questionComment
});
}
}
这是我的 XSD 布局:
我知道要找出问题所在并不容易,但是查看我提供给报告的数据看起来还不错。如果没有人有任何想法,那么我想我将不得不在 Crystal Reports 中重写这个东西并从那里开始(??)。
【问题讨论】:
-
作为一个消除过程,您是否尝试过仅转储字段值而不是使用表达式,以确保传递给报告的数据与您期望的完全一致?
-
我尝试了以下类似的方法,这是您的意思吗? =First(Fields!ISEXEPTIONAL.Value, "DataSet1")
-
这就是我的意思。你得到了预期的“n”还是“y”?
-
不,只是空白。
-
所以看起来问题出在您的数据集上。尝试创建一个表格并添加数据集中的所有字段,只需将它们拖到表格上即可。然后,您应该能够准确地看到来自 dataest 的内容。
标签: c# reporting-services reportbuilder3.0 ssrs-expression