我在SSRS中使用多值参数时遇到了问题。
我使用此MDX查询获得了一个DataSet:
SELECT NON EMPTY {[Measures]。[气温输出 - 事实萌发 继续]} ON COLUMNS,NON EMPTY {([81萌芽继续]。[批处理 [编号]。[批号] .ALLMEMBERS * [80发芽一般]。[植物 名称]。[植物名称] .ALLMEMBERS * [80发芽一般]。[生产 单位]。[生产单位] .ALLMEMBERS * [81发芽 继续]。[特征日期]。[特征日期] .ALLMEMBERS * [80 萌发一般]。[开始日期卸载]。[开始日期 卸载] .ALLMEMBERS * [80萌发一般]。[开始日期]。[开始 日期] .ALLMEMBERS * [80发芽一般]。[结束日期]。[结束 日期] .ALLMEMBERS)}维度属性MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON行(来自(选择) STRTOSET(@GerminationGeneralProductionUnit,CONSTRAINED))在列上 FROM(选择(STRTOSET(@GerminationGeneralPlantName,CONSTRAINED)) ON COLUMNS FROM(SELECT(STRTOSET)(@ GerinationContinueBatchNumber, 受约束的))来自[监督]的栏目)))细胞属性值, BACK_COLOR,FORE_COLOR,FORMATTED_VALUE,FORMAT_STRING,FONT_NAME, FONT_SIZE,FONT_FLAGS
运行报告时,出现错误:
STRTROSET标志在STRTOSET中施加的限制 功能受到了侵犯。
从我的研究中,这意味着我必须将全名放在DataSet的参数中。事情是,我认为我做到了,即使它与我所看到的有点不同,因为数据集的构建。例如,对于Germinaction Continue Batch Number,我的参数值为:
=Split(Replace(Join(Parameters!BatchNumbers.Value, ","), "[70 Steeping General]", "[81 Germination Continue]"), ",")
你可以猜到,我的数据来自尺寸" [70 Steeping General]",我试图将其放入尺寸" [81萌芽继续]",两个维度的值相同([81 Germination Continue]。[批号]。[批号]和[70 Steeping General]。[批号]。[批号]
问题是否来自它是一个看起来像这样的多值参数? :
[81 Germination Continue].[Batch Number].[1234567890],
[81 Germination Continue].[Batch Number].[1234567891],
[81 Germination Continue].[Batch Number].[1234567892]
编辑:
报告的参数:
FromSteepingStartDate ToSteepingStartDate
两者都是日期/时间参数,并且可用值设置为无,默认值为DateAdd("m", -1, Today())
和DateAdd("d", -2, Today())
它们用于DataSet DataSteeping,参数的值为
=" [70 Steeping General]。[开始日]。& [" + CStr(格式(CDate(参数!FromSteepingGeneralStartDay.Value), " yyyy-MM-dd"))+" T00:00:00]"
SteepingGeneralPlantName
此参数是一个多值参数,最初来自我的数据集DataSteeping,因此创建了一个自动生成的数据集,其中包含以下查询:
WITH MEMBER [Measures]。[ParameterCaption] AS [70 Steeping 一般]。[工厂名称] .CURRENTMEMBER.MEMBER_CAPTION会员 [测量]。[ParameterValue] AS [70 Steeping General]。[Plant 姓名] .CURRENTMEMBER.UNIQUENAME会员[Measures]。[ParameterLevel] AS [70 Steeping General]。[Plant Name] .CURRENTMEMBER.LEVEL.ORDINAL SELECT {[Measures]。[ParameterCaption],[Measures]。[ParameterValue], [测量]。[ParameterLevel]} ON COLUMNS,[70 Steeping 一般]。[工厂名称]。来自[监督]的行人
数据集经过过滤,如Parameter.Level <> 0
和Parameter.Caption <> "Unknown"
此参数在每个其他DataSet中使用,但它们并非都来自同一维度,因此其他数据集属性中的参数值如下所示:
=Split(Replace(Join(Parameters!SteepingGeneralPlantName.Value, ","), "[70 Steeping General]", "[80 Germination General]"), ",")
SteepingGeneralProductionUnit
这个参数也是一个多值参数,最初来自我的数据集DataSteeping,因此创建了一个自动生成的数据集,但是我改变了它,所以现在它并没有来自我的维度[70 SteepingGeneral] ,但是来自[04 Productions Unit],它包含所有制作单元,并且与所有其他维度兼容,因此在其他数据集中加载更容易,MDX查询是:
WITH MEMBER [Measures]。[ParameterCaption] AS [04 Production 单位]。[生产单位] .CURRENTMEMBER.MEMBER_CAPTION会员 [测量]。[ParameterValue] AS [04生产单位]。[生产 单位] .CURRENTMEMBER.UNIQUENAME成员[测量]。[ParameterLevel] AS [04生产单位]。[生产单位] .CURRENTMEMBER.LEVEL.ORDINAL SELECT {[Measures]。[ParameterCaption],[Measures]。[ParameterValue], [测量]。[ParameterLevel]} ON COLUMNS,[04生产 单位]。[生产单位]。来自的行(SELECT(( STROTOSET(@PlantsPlant,CONSTRAINED))来自[监督]栏目
数据集的过滤方式与Parameter.Level <> 0
此参数在每个其他DataSet中使用,只有我的数据集DataGermination需要此参数的表达式,因为它来自另一个维度:
=Split(Replace(Join(Parameters!SteepingGeneralProductionUnit.Value, ","), "[04 Production Units]", "[80 Germination General]"), ",")
TempSteepingLimit
此参数对于问题并不重要,它只是温度限制,我需要显示温度高于此限值的持续时间。它是我转换为float的文本参数(使用替换,因此用户可以键入&#34;,&#34;或&#34;。&#34;)。它没有数据集,只在文本框表达式中用于任何人。
BatchNumbers
此隐藏参数由DataSet填充,该DataSet返回与其他参数(从/到浸渍开始日期,工厂名称和生产单位)匹配的所有批次编号。 它们用于2 DataSet(DataGermination和DataBatchProcessData),因为我无法在这些数据集中添加Steeping Start Date。
在DataGermination中,BatchNumber的值为:
=Split(Replace(Join(Parameters!BatchNumbers.Value, ","), "[70 Steeping General]", "[81 Germination Continue]"), ",")
填充此参数的数据集不会自动生成,我只是使用此查询添加它:
SELECT NON EMPTY {[Measures]。[Barley Volume]} ON COLUMNS,NON EMPTY {([70 Steeping General]。[批号]。[批号] .ALLMEMBERS * [70 Steeping General]。[工厂名称]。[工厂名称] .ALLMEMBERS * [70 [生产单位]。[生产单位] .ALLMEMBERS * [65 批处理数据]。[Steeping Start Date]。[Steeping Start 日期] .ALLMEMBERS)}维度属性MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON行(来自(选择) STRTOMEMBER(@FromSteepingGeneralStartDay,CONSTRAINED): STRTOMEMBER(@ToSteepingGeneralStartDay,CONSTRAINED))关于COLUMNS FROM (SELECT(STRTOSET(@SteepingGeneralProductionUnit,CONSTRAINED))ON COLUMNS FROM(选择(STRTOSET)(@SteepingGeneralPlantName, 受约束的))来自[监督]的栏目)))细胞属性值, BACK_COLOR,FORE_COLOR,FORMATTED_VALUE,FORMAT_STRING,FONT_NAME, FONT_SIZE,FONT_FLAGS
(对不起我的英文)
不要犹豫提问!
感谢您的帮助! :)