2017-04-14 66 views
1

我试图修改报表生成器报表(Visual Studio 2013),它不显示四个表达式。下面的字段是这样编码的,工作起来很棒!报表生成器未显示IIF结果

=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”。这里是RB snipit其中PASS表达的伟大工程:

enter image description here

下面是从这份报告我PDF的一部分:

enter image description here

下面是数据看起来像这些问题与我有问题(不要担心拼写错误,EXCEPTIONAL拼写错误,这不是问题):

enter image description here

这里是用来填充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布局:

enter image description here

我知道这不是一件容易的事,以弄清楚什么是错误的,但是看我提供给报告的数据看起来很好。如果没有人有任何想法,那么我想我将不得不在Crystal Reports中重写这个东西,并从那里(?)进行。

+0

就像一个淘汰过程一样,您是否尝试过仅仅倾销字段值而不是使用表达式,只是为了确保传递给报告的数据正是您期望的那样? –

+0

我尝试了下面这样的事情,那是什么意思? = First(Fields!ISEXEPTIONAL.Value,“DataSet1”) – Craig

+0

这就是我的意思。你有没有得到预期的“n”或“y”? –

回答

0

就像消除过程一样,您是否尝试过仅仅倾销字段值而不是使用表达式,以确保传递到报告的数据正是您期望的那样?

它看起来像是你的数据集是问题。尝试创建一个表,并将数据集中的所有字段拖到它们上面。然后,您应该能够确切地看到来自数据的内容。