1

ユーザーがログインし、ストアに基づいて認証されるアプリケーション内で SSRS を使用しています。レポートを生成するときに、ストア名を SSRS に渡して、ストアのレポートを生成します。最初のレポート生成では、すべてが正常に機能します。しかし、ユーザーが別の日付範囲を選択すると、システム内のすべての店舗に関するレポートが取得されます。次のように、MDX を使用して、.rdl 内のストア名の既定の使用可能なパラメーターをフィードします。

SELECT
   NON EMPTY { [Measures].[MTDActiveMembers],
   [Measures].[YTDActiveMembers],
   [Measures].[MTDMembers],
   [Measures].[YTDMembers],
   [Measures].[Members],
   [Measures].[Members - Active] } 
   ON COLUMNS,
   NON EMPTY { ([Store].[Store].[Store].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION,
   MEMBER_UNIQUE_NAME 
   ON ROWS 
FROM
   (
      SELECT
( STRTOSET(@StoreStore, CONSTRAINED) ) 
         ON COLUMNS 
      FROM
         (
            SELECT
( STRTOMEMBER(@FromCalendarDateHierarchy, CONSTRAINED) : STRTOMEMBER(@ToCalendarDateHierarchy, CONSTRAINED) ) 
               ON COLUMNS 
            FROM
               [Members]
         )
   )
   CELL PROPERTIES VALUE,
   BACK_COLOR,
   FORE_COLOR,
   FORMATTED_VALUE,
   FORMAT_STRING,
   FONT_NAME,
   FONT_SIZE,
   FONT_FLAGS

アプリをステップ実行すると、ユーザーが別の日付範囲を選択すると、すべてのパラメーターはそのままで、正しい店舗名が保持されますが、ユーザーが店舗名の「レポートの表示」パラメーターを押すと、ALL に変更されることがわかりました。:w00t: 何が問題なの? アプリに関する限り、「レポートの表示」はブラック ボックスなので、rdl で何を変更すればよいかわかりません :( ご意見をお寄せいただきありがとうございます。

編集済み
申し訳ありませんが、上記で提供したクエリは実際のレポート クエリです。パラメータクエリは次のとおりです。

WITH MEMBER [Measures].[ParameterCaption] AS [Store].[Store].CURRENTMEMBER.MEMBER_CAPTION MEMBER [Measures].[ParameterValue] AS [Store].[Store].CURRENTMEMBER.UNIQUENAME MEMBER [Measures].[ParameterLevel] AS [Store].[Store].CURRENTMEMBER.LEVEL.ORDINAL 
SELECT
   {[Measures].[ParameterCaption],
   [Measures].[ParameterValue],
   [Measures].[ParameterLevel]} 
   ON COLUMNS,
   [Store].[Store].ALLMEMBERS 
   ON ROWS 
FROM
   (
      SELECT
( STRTOMEMBER(@FromCalendarDateHierarchy, CONSTRAINED) : STRTOMEMBER(@ToCalendarDateHierarchy, CONSTRAINED) ) 
         ON COLUMNS 
      FROM
         [Members]
   )
4

2 に答える 2

0

問題は、日付が変更されたときに、これより下のすべてのパラメーターが更新されるときに、が: より下にあるStore parameterかどうかを確認する必要があることです。Date parameterここに画像の説明を入力してください

矢印を使用してStoreパラメータを上に移動しますDate ここに画像の説明を入力してください

これがお役に立てば幸いです

于 2012-11-08T14:54:54.680 に答える
0

こんにちは、実際にすべてのメンバーを返す代わりに、次の行を変更する必要があります:

 NON EMPTY { ([Store].[Store].[Store].ALLMEMBERS ) }

に:

 NON EMPTY { [Store].[Store].[Store] }

値を持つものだけを返します。

于 2012-11-08T13:54:28.187 に答える