来自水晶的SSRS中的自定义If语句

时间:2014-08-11 14:28:10

标签: reporting-services crystal-reports

我正在尝试将以下代码从水晶报表自定义代码转换为在SSRS中工作。 如何在自定义代码/ IIF表达式中实现此功能以在SSRS中工作?

if {rptSurveyDetail;1.QT1} = 0 then
    if {rptSurveyDetail;1.Question1} = 0 then "No" 
        else if {rptSurveyDetail;1.Question1} = 1 then "Yes" else ""
else if {rptSurveyDetail;1.QT1} = 1 or {rptSurveyDetail;1.QT1} = 7 then
    ToText({rptSurveyDetail;1.Question1},0,"") 
else if {rptSurveyDetail;1.QT1} = 2 then
    ToText({rptSurveyDetail;1.Question1},{rptSurveyDetail;1.QP1},"")
else ""

这是目前失败的IIF声明......它只显示了1,2和3的QT1值......

=IIF(Fields!QT1.Value = 0, IIF(Fields!Question1.Value = 0, "No", IIF(Fields!Question1.Value = 1, "Yes", "")), IIF(Fields!QT1.Value = 1 or Fields!QT1.Value = 7, Fields!Question1.Value, IIF(Fields!QT1.Value = 2, Fields!Question1.Value & "," & Fields!QP1.Value, "")))

我使用的自定义代码出现了语法错误,因此IIF自定义代码的解决方案就可以了!

2 个答案:

答案 0 :(得分:1)

我使用参数进行测试,您需要更改数据集中的字段。

=IIf(Parameters!QT1.Value=0 And Parameters!Question1.Value=0, "No", IIf(Parameters!QT1.Value=0 And Parameters!Question1.Value=1, "Yes", IIf(Parameters!QT1.Value=1 Or Parameters!QT1.Value=7, CStr(Parameters!Question1.Value), IIf(Parameters!QT1.Value=2,CStr(Parameters!Question1.Value) & "," & CStr(Parameters!QP1.Value),"")))  )

答案 1 :(得分:0)

上面的公式中没有参数。所有字段都来自存储过程。

您可以检查转化中的错误部分。在Crystal中,可以省略错误部分,但在SSRS中,任何条件都必须包含true部分和false部分。

大多数Crystal Reports都可以通过自动转换完美转换。您可以查看Crystal Migration Services。