我正在尝试将以下代码从水晶报表自定义代码转换为在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自定义代码的解决方案就可以了!
答案 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。