2009-12-01 52 views
8

私は別のSSRS質問に戻ります:-)SSRS行グループ+列グループ=行番号問題

私は調査データを扱っています。私は質問ごとに組織の回答件数を返す手続きを持っています。だから、私のレポートは、行のための組織と列の回答のグループについてのグループとして定義されています。組織と回答の数は変わります。それは期待どおりに機能しています。私はランクを表示することができるように、組織の隣にRowCountを追加しようとしましたが、各組織が1つの質問ごとに1つの行を持つということは、1つの組織あたり8つの行が得られることを意味します。ここで

は例です:ここでは
Chart

は私のレポート定義である:
Chart
ランク式は現在、次のとおりです。=RowNumber(Nothing)

理想的には、ランクが1、2、3、4になります私は行グループ、列グループ、そして何もスコープを試しました。助け無し。

ご協力いただければ幸いです!

答えて

1

私は解決策を見つけたようですが、ハックのように感じます...他の誰かがより良い解決策を提供できるかどうかを知るために未回答のままにしておきます。

マイランク式は以下のようになります。
=RowNumber(Nothing)/Count(Fields!AnswerText.Value)

すべてがOKのようです。私は式IIf(カウントすべきである... = 0を、次にRowNumber関数、他の私が持っているもの...

+0

他に何も表示されず、このアプローチはハックのように見えますが動作しています。私には、集計されたデータが表示されている場合は、RowNumberは集計で生データではなく... –

+0

注:このソリューションは、各グループに同じ数の詳細レコードが含まれている場合にのみ機能します。 – Dan

0

ここで行うための最善のこと、=行カウントにランク列が等しくなるさ()/ 8

ご確認各可視の行が8行の合計を含んでいるので、これは正常に動作する必要があります。

+0

ジョン、返信に感謝を。問題は、答えの数が可変であると言及することを忘れていたことです...私はそれを言及することを怠りました... –

0

既存のランク列の隣に別のランク列を追加し、その値にrank(rowcount?)の値をとり、それを8で割り算した別の式を挿入し、古いランク列を非表示にします。

0

あなたはRowNumber("NameOfOrganizationGroup")を使用して動作しないことが絶対一定のか?

クリック行列に、仮定します左上隅の選択ボックスをクリックして全体を選択し、選択枠を右クリックしてプロパティを取得します。グループタブに切り替えて、行のグループ名を確認してください。セクションRowNumber()関数のスコープ

あなたがすでにこのことを知っていて、それを試してみたら、私の謝罪 - あなたが知らなかったとは思わなかったのです。これは解決策ではないと考えています。

2

を使用してみてください:

runningvalue(Fields!AnswerText.Value,CountDistinct,"NameOfOrganizationGroup") 

その行列場合、マトリックススコープに行範囲からスコープの名前を変更します。

24

同じ不満足な問題があった。多くの時間が無駄になった。ここ

=RunningValue(CountDistinct("YourTableName"),Count,"YourTableName") 

トリックは、テーブル/マトリックス内にグループの名前を使用するのではなく、テーブル自体の名前:最終的には、この解決策も助けました。もちろん、関数RowNumberのスコープにテーブル名を使用すると機能するはずですが、そうではないと考えられます。

+0

ありがとう、これは数日間ナットをやっている問題を分類しました。 –

+0

+1これは驚異を助けました!!私のテーブル名はDataSetの名前です – Irfan

+0

'' YourTableName "'の代わりにDataSetNameを入力する必要があると思います - '= RunningValue(CountDistinct(" YourTableName ")、Count、" YourDataSetName ")' – pedram

2

カスタムコードを使用します。

は、レポートの設定上のコードセクションにこれを追加します。

Dim private count as integer = 0 
Dim private iniRow as integer = 0 
Public function nroFila(Byval rowNum as integer) as integer 
    if iniRow = 0 then 
     iniRow = rowNum 
    end if 

    if rowNum = iniRow then 
     count = 0 
    end if 

    count = count + 1 
    Return count 
End function 

その後、グループ内のセルに関数を呼び出す:

=Code.nroFila(RowNumber(Nothing)) 
関連する問題