2

5つの列、列6、7、10、20、さらには100のデータセットがあります。少なくとも2つは静的で、残りは動的です(データベースに存在するテーブルに従ってスケールを作成しています)。

これをReportingServicesに実装するにはどうすればよいですか?

値が動的であるTablixのフィールドを指定するにはどうすればよいですか?

最終結果は次のようになります。

|   TITLE | ENUNCIATION | GOOD | VERY GOOD | BAD | VERY BAD |
-------------------------------------------------------------
| title 1 |  question 1 |    5 |         3 |   1 |        0 |
| title 2 |  question 2 |    1 |         0 |   3 |        0 |
| title 3 |  question 3 |    0 |         0 |   1 |        0 |

|   TITLE | ENUNCIATION |   1  |     2     |  3  |     4    |
-------------------------------------------------------------
| title 1 |  question 1 |    5 |         3 |   1 |        0 |
| title 2 |  question 2 |    1 |         0 |   3 |        0 |
| title 3 |  question 3 |    0 |         0 |   1 |        0 |

:最初の2つは静的で、残りは動的です。

編集:

私はこのテーブルを持っています:

|   ID_SCALE  | ID_SCALE_ENTRY   | NAME          |
--------------------------------------------------
|      1       |        1        |    GOOD       |    
|      1       |        2        |    VERY GOOD  |   
|      1       |        3        |    BAD        |   
|      1       |        4        |    VERY BAD   |    
|      2       |        1        |       1       |    
|      2       |        2        |       2       |
|      2       |        3        |       3       |
|      2       |        4        |       4       |
|      2       |        5        |       5       |
|      2       |        6        |       6       |
|      2       |        7        |       7       |    

編集+注: 最初の表に示されているとおりに正確に表示したいと思います。問題は、(Good、Very Good、Bad、Very Bad、1、2、3、4)フィールドが動的に作成され、タブリックスでこれを指定できないことです。

例:データセットのフィールド値が必要な場合は、この式Fields!Good.valueを入力しますが、「Good」ではなく「1」フィールドであると想像してください。Good.valueはもう存在しません。結論は、動的列を持つデータセットです。

4

2 に答える 2

7

まず、そのためにMatrixを使用する必要があります。

2番目-目的を達成するには、データを返すメソッドで、少なくとも3つのデータフィールドを返す必要があります。

元:

ColDescription - Column description
StaticRowDescription - Row description / static column value
Value - The real value for that column/row combination.

とった?

マトリックスは次のようになります。

| Any Text               | [ColDescription] |
| [StaticRowDescription] | [Value]          |

編集

この例では、任意のテキストが私の静的列であることを忘れてしまいました。必要に応じてさらに追加できます。

-------------------------------------------------- -------------

あなたのコメントによる例。

これは、returnメソッドに実装する方法です。

1つの静的列Descriptionと他の列(n)があるとします。

public IEnumerable<YourReturnClass> GetData(int param) 
{
    List<YourReturnClass> returnList = new List<YourReturnClass>();
    foreach (var row in allYourRows())
    {
        foreach (var col in row.getColumns())
        {
            returnList.add(new YourReturnClass(){
                StaticRowDescription = row.Description,
                ColDescription = col.Description,
                Value = myValueAccordingToCurrentColumnXRow()
            });
        }
    }

    return returnList;
}

そしてこれをあなたのマトリックスとして:

| Description            | [ColDescription] |
| [StaticRowDescription] | [Value]          |

そうすればallYourRows()、「Expenses」という説明のある1つの行と、「Gas」および「Electricity」という名前の2つの列がある場合、マトリックスの結果として次のようになります。

| Description | Gas | Electricity |
-----------------------------------
| Expenses    | 25  | 150         |

より良い?

これは、マトリックスがどのように機能するかを説明するためのものであり、データを取得する方法は、ポートレートされたものとは異なる場合があります。

レポート(RDL)は同じですが、唯一の変更点はデータの取得方法です。このようなテーブルがある場合:( これはデータベース(データを保存した場所)のテーブルになります)

| RowDescription | DynamicColumnHeader | Value |
------------------------------------------------
| Year 2013      | January             | 500   |
| Year 2013      | February            | 850   |
| Year 2013      | March               | 265   |
| Year 2014      | February            | 965   |

その場合、レポートは次のようになります。

| Description | January | February | March|
-------------------------------------------
| Year 2013   | 500     | 850      | 265  |
| Year 2014   |         | 965      |      |

アイデアが浮かんだ?

レポートがどのように表示されるかを示す画像を添付しました。

画像

新しい編集:

|   TITLE | ENUNCIATION    | [NAME]                          |
-------------------------------------------------------------
| [title] |  [enunciation] |  [ID_SCALE] OR [ID_SCALE_ENTRY] |

*または乗算、合計など...

最後のコメントに基づいて編集:

|   TITLE | ENUNCIATION    | [NAME]                          |
-------------------------------------------------------------
| [title] |  [enunciation] | [Count(NAME)]                   |

それですか?

于 2013-01-10T15:51:57.973 に答える
0

あなたがしたいのはピボットグリッドとして知られています、これはデータを要約するために作られています、それは行領域(タイトルと発音フィールドが行くところ)、列領域(Q_Nameフィールドが行くところ)とあなたのデータのための領域を含みます要約したい(あなたの場合、私が信じている何かの数)。

DBxtraのピボットグリッド

もちろん、これは純粋なSQLで実行できますが、列の数が固定されている場合でも、実行して維持するのは悪夢です。このアプローチにもっと興味がある場合は、ここで私の答えを見ることができます:Acess2010の毎月のケースの種類の数でレポートを作成する方法

免責事項:スクリーンショットで紹介されているツールは、レポートとビジネスインテリジェンスのために私が宣伝しているツールであるDBxtraです。

于 2013-01-11T16:49:44.603 に答える