SSRS违反了STRTOSET功能中CONSTRAINED标志所施加的限制

时间:2016-02-08 16:04:15

标签: reporting-services multivalue

我在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 <> 0Parameter.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

(对不起我的英文)

不要犹豫提问!

感谢您的帮助! :)

0 个答案:

没有答案