SQL SWITCH 内的 Report Builder IIF 表达式
SQL Report Builder IIF Expression inside SWITCH
我正在尝试编辑我们使用的现有表单上的表达式。有问题的字段目前只有一个简单的 =SWITCH 表达式。我想添加一个嵌套在 SWITCH 中或以任何其他方式嵌套的附加表达式,这将检查来自同一 DataSet1 的附加字段值,并根据现有文本下方的商品打印出附加的 T.O.S 信息。目前,表达式如下所示:
=SWITCH(First(Fields!Origin_country, "DataSet1") = "USA",
"***PRINTS US VERSION OF TERMS OF SERVICE AGREEMENT***"
& vbCrLf &
"More text goes here...",
--Need to add nested expression to check a different field value from dataset 1.
First(Fields!Origin_Country, "DataSet1") = "CAN",
"***PRINTS CDN VERSION OF T.O.S***"
& vbCrLf &
"More text goes here..."
--Need to add nested expression to check a different field value from dataset 1.
) -- Closing bracket from =SWITCH
我尝试在现有 =Switch 中添加额外的字段值,但出现错误:
"Paragraphs[0].TextRuns[0]’ contains an error: [BC30201] Expression expected."
尝试在 =SWITCH 中添加一个 IIF 语句,但我得到了这个错误:
"The Value expression for the text box ‘textbox28’ refers directly to the field ‘cmd_code’ without specifying a dataset aggregate. When the report contains multiple datasets, field references outside of a data region must be contained within aggregate functions which specify a dataset scope. "
我要查看的字段值包括9个商品代码,我可以将其减少为2个,如LIKE "PRO*"和LIKE "SEAFOO*"
(农产品和海鲜)。它们都属于农产品商品,因此它们都将在现有 T.O.S 下方打印出相同的 True 结果; 1 与美国 T.O.S 和其他加拿大...
谢谢!
从 This 我可以看出你的代码有一个太多的逗号。
=SWITCH(First(Fields!Origin_country, "DataSet1") = "USA",
"***PRINTS US VERSION OF TERMS OF SERVICE AGREEMENT***",
& vbCrLf &
"More text goes here...",
它应该在哪里
=SWITCH(First(Fields!Origin_country, "DataSet1") = "USA",
"***PRINTS US VERSION OF TERMS OF SERVICE AGREEMENT***" (take this comma off)
& vbCrLf &
"More text goes here...",
First(Fields!Origin_Country, "DataSet1") = "CAN",
"***PRINTS CDN VERSION OF T.O.S***" (Take Comma Off)
& vbCrLf &
"More text goes here..."
另一种选择是设置字符串以在 sql 查询中打印服务条款并将其拉入数据集,这样您就可以说
IIF First(Fields!Origin_Country, "DataSet1") = "CAN", Fields!USATOS.Value...
所以我并没有那么远,newGuy 指出它可能只是一个错位的逗号,它是(在 IIF 语句之前有一个逗号)
表达式现在看起来像这样并且有效。文本字段位置有一个小问题,但我通过将边距移动几个像素来解决这个问题。
=SWITCH(First(Fields!Origin_country, "DataSet1") like "USA",
"***USA Version of TOS****"
& vbCrLf & "More text Here"
&vbCrLf & /*Had a comma on this line i had to remove... */
IIF(First(Fields!cmd_code.value, "DataSet1") like "PRO*", "USA PRODUCE TEXT",
IIF(First(Fields!cmd_code.value, "DataSet1") like "SEAFOO*", "USA PRODUCE TEXT", " " )
),
First(Fields!Origin_country, "DataSet1") like "CAN",
"***CANADIAN Version of TOS****"
& vbCrLf & "More text Here"
&vbCrLf &
IIF(First(Fields!cmd_code.value, "DataSet1") like "PRO*", "CDN PRODUCE TEXT",
IIF(First(Fields!cmd_code.value, "DataSet1") like "SEAFOO*", "CDN PRODUCE TEXT", " " )
)
)
我正在尝试编辑我们使用的现有表单上的表达式。有问题的字段目前只有一个简单的 =SWITCH 表达式。我想添加一个嵌套在 SWITCH 中或以任何其他方式嵌套的附加表达式,这将检查来自同一 DataSet1 的附加字段值,并根据现有文本下方的商品打印出附加的 T.O.S 信息。目前,表达式如下所示:
=SWITCH(First(Fields!Origin_country, "DataSet1") = "USA",
"***PRINTS US VERSION OF TERMS OF SERVICE AGREEMENT***"
& vbCrLf &
"More text goes here...",
--Need to add nested expression to check a different field value from dataset 1.
First(Fields!Origin_Country, "DataSet1") = "CAN",
"***PRINTS CDN VERSION OF T.O.S***"
& vbCrLf &
"More text goes here..."
--Need to add nested expression to check a different field value from dataset 1.
) -- Closing bracket from =SWITCH
我尝试在现有 =Switch 中添加额外的字段值,但出现错误: "Paragraphs[0].TextRuns[0]’ contains an error: [BC30201] Expression expected." 尝试在 =SWITCH 中添加一个 IIF 语句,但我得到了这个错误: "The Value expression for the text box ‘textbox28’ refers directly to the field ‘cmd_code’ without specifying a dataset aggregate. When the report contains multiple datasets, field references outside of a data region must be contained within aggregate functions which specify a dataset scope. "
我要查看的字段值包括9个商品代码,我可以将其减少为2个,如LIKE "PRO*"和LIKE "SEAFOO*" (农产品和海鲜)。它们都属于农产品商品,因此它们都将在现有 T.O.S 下方打印出相同的 True 结果; 1 与美国 T.O.S 和其他加拿大...
谢谢!
从 This 我可以看出你的代码有一个太多的逗号。
=SWITCH(First(Fields!Origin_country, "DataSet1") = "USA",
"***PRINTS US VERSION OF TERMS OF SERVICE AGREEMENT***",
& vbCrLf &
"More text goes here...",
它应该在哪里
=SWITCH(First(Fields!Origin_country, "DataSet1") = "USA",
"***PRINTS US VERSION OF TERMS OF SERVICE AGREEMENT***" (take this comma off)
& vbCrLf &
"More text goes here...",
First(Fields!Origin_Country, "DataSet1") = "CAN",
"***PRINTS CDN VERSION OF T.O.S***" (Take Comma Off)
& vbCrLf &
"More text goes here..."
另一种选择是设置字符串以在 sql 查询中打印服务条款并将其拉入数据集,这样您就可以说
IIF First(Fields!Origin_Country, "DataSet1") = "CAN", Fields!USATOS.Value...
所以我并没有那么远,newGuy 指出它可能只是一个错位的逗号,它是(在 IIF 语句之前有一个逗号)
表达式现在看起来像这样并且有效。文本字段位置有一个小问题,但我通过将边距移动几个像素来解决这个问题。
=SWITCH(First(Fields!Origin_country, "DataSet1") like "USA",
"***USA Version of TOS****"
& vbCrLf & "More text Here"
&vbCrLf & /*Had a comma on this line i had to remove... */
IIF(First(Fields!cmd_code.value, "DataSet1") like "PRO*", "USA PRODUCE TEXT",
IIF(First(Fields!cmd_code.value, "DataSet1") like "SEAFOO*", "USA PRODUCE TEXT", " " )
),
First(Fields!Origin_country, "DataSet1") like "CAN",
"***CANADIAN Version of TOS****"
& vbCrLf & "More text Here"
&vbCrLf &
IIF(First(Fields!cmd_code.value, "DataSet1") like "PRO*", "CDN PRODUCE TEXT",
IIF(First(Fields!cmd_code.value, "DataSet1") like "SEAFOO*", "CDN PRODUCE TEXT", " " )
)
)