使用 MDX 将多个值传递给 SSRS
Passing multiple values to SSRS using MDX
我是运行获取多值报告的以下命令
StrToSet
("[Dim Branch].[HierarchyB-T-C].[Trading Code].&[" +
Replace(
Join(
Parameters!TradingName.Value,"],"
) +"]",",",",[Dim Branch].[HierarchyB-T-C].[Trading Code].&["),",")
但是我遇到了一个错误
'The Syntax for 'Join' is incorrect'.
我不知道我做错了什么。有人可以纠正我吗?
如果我将其更改为 StrToSet(@TradingName, Constrained)
它适用于单个值,但我想传递多个值。
需要花括号组吗?我在下面的开头添加了一个......有点不确定你的字符串的结尾在哪里 - 它是否像这样结束 .&["
?!
StrToSet(
"{[Dim Branch].[HierarchyB-T-C].[Trading Code].&["
+
Replace(
Join(Parameters!TradingName.Value,"],") + "]"
, ","
, ",[Dim Branch].[HierarchyB-T-C].[Trading Code].&["
)
,","
)
如果 Parameters!TradingName.Value
等于这种格式的字符串 MEC,RSA
那么可能不需要 join
:
StrToSet(
"{"
+
Replace(
"[Dim Branch].[HierarchyB-T-C].[Trading Code].&["
+
Parameters!TradingName.Value
, ","
,"],[Dim Branch].[HierarchyB-T-C].[Trading Code].&["
)
+
"]}"
,constrained)
要从参数传递多个值,我只是按照以下步骤操作
1 添加参数并命名为
- 在数据集属性(以及共享数据集属性)下,参数选项卡这样写一个表达式
=Split(参数!TradingName.Value,",")
- 在共享数据集中,使用 WHERE (StrToSet(@TradingName))
写入 MDX
SELECT
{[Total]} ON COLUMNS
,
{
[Dim Account].[Account Type].&[Income]
}
*
STRTOMEMBER("[Dim Fiscal Year].[HierarchyFiscal].[E Month].&[" + @FiscalYear +"]&[" + FORMAT(Now(),"MMMM") +"].PREVMEMBER")
*
ORDER
(
{
[Dim Branch].[Branch Name].[Branch Name]
},[Total], BDESC
)
ON ROWS
from [CubeProfitLoss]
WHERE (StrToSet(@TradingName))
- 当您想预览多个值时,请确保您同样使用 , 来分隔交易名称
我是运行获取多值报告的以下命令
StrToSet
("[Dim Branch].[HierarchyB-T-C].[Trading Code].&[" +
Replace(
Join(
Parameters!TradingName.Value,"],"
) +"]",",",",[Dim Branch].[HierarchyB-T-C].[Trading Code].&["),",")
但是我遇到了一个错误
'The Syntax for 'Join' is incorrect'.
我不知道我做错了什么。有人可以纠正我吗?
如果我将其更改为 StrToSet(@TradingName, Constrained)
它适用于单个值,但我想传递多个值。
需要花括号组吗?我在下面的开头添加了一个......有点不确定你的字符串的结尾在哪里 - 它是否像这样结束 .&["
?!
StrToSet(
"{[Dim Branch].[HierarchyB-T-C].[Trading Code].&["
+
Replace(
Join(Parameters!TradingName.Value,"],") + "]"
, ","
, ",[Dim Branch].[HierarchyB-T-C].[Trading Code].&["
)
,","
)
如果 Parameters!TradingName.Value
等于这种格式的字符串 MEC,RSA
那么可能不需要 join
:
StrToSet(
"{"
+
Replace(
"[Dim Branch].[HierarchyB-T-C].[Trading Code].&["
+
Parameters!TradingName.Value
, ","
,"],[Dim Branch].[HierarchyB-T-C].[Trading Code].&["
)
+
"]}"
,constrained)
要从参数传递多个值,我只是按照以下步骤操作
1 添加参数并命名为
- 在数据集属性(以及共享数据集属性)下,参数选项卡这样写一个表达式
=Split(参数!TradingName.Value,",")
- 在共享数据集中,使用 WHERE (StrToSet(@TradingName)) 写入 MDX
SELECT
{[Total]} ON COLUMNS
,
{
[Dim Account].[Account Type].&[Income]
}
*
STRTOMEMBER("[Dim Fiscal Year].[HierarchyFiscal].[E Month].&[" + @FiscalYear +"]&[" + FORMAT(Now(),"MMMM") +"].PREVMEMBER")
*
ORDER
(
{
[Dim Branch].[Branch Name].[Branch Name]
},[Total], BDESC
)
ON ROWS
from [CubeProfitLoss]
WHERE (StrToSet(@TradingName))
- 当您想预览多个值时,请确保您同样使用 , 来分隔交易名称