1

レポートビルダーを使用して文字を生成しています。私がやろうとしているのは、値の列が1つあることですが、ページの最後に到達すると、新しいページを作成する代わりに、最初の列の右側にある新しい列にオーバーフローさせたいと思います。または、新しい行を作成する前に複数の列にデータを入力すると機能します。

これは可能ですか?

4

2 に答える 2

1

私は回避策に行きます:基本的に解決策は、データを列に表示するクエリを定義することです(たとえば、列A - 値1〜60、列B - 値61〜120 ...)。

次に、各列を異なるデータセットとして定義できます。

SSRS では、テーブルの数を定義し (各テーブルには 1 つの列のみが含まれます)、それらを隣り合わせに配置できます。(テーブルの可視性を使用してテーブルを非表示にしますnull)

始めましょう:

最初に、1 ページに収まる行数を知る必要があります (この例では 60 とします)。

次に、設定できる最大値を知る必要があります (この例では 180 とします)。

次のようにクエリを定義します。

WITH NumberedMyTable AS
(
    SELECT
        Id,
        Value,
        ROW_NUMBER() OVER (ORDER BY Id) AS RowNumber
    FROM
        MyTable
)
SELECT
    Id,
    Value
FROM
    NumberedMyTable
WHERE
    RowNumber BETWEEN @From AND @To

すべての列に対してこのクエリを繰り返します (この例では、このクエリを 3 回定義する必要があります)。

次に、3 つのテーブル (それぞれ 1 列) を定義し、それに応じて各データセットを値として定義します。

Tablix 可視性式を次のように定義します。 =IIf(CountRows("MyDataset") = 0,false,true)

そのこと!

于 2013-02-05T19:52:52.780 に答える
1

SSRS の Tablix は取得したデータセットに基づいており、これはレポート ビルダーの機能または回避策ではないため、SQL ストアド プロシージャ領域から回避策を見つける必要があります。

セット数または列に対してこの操作を行うストアド プロシージャを作成し、セット数の行に対してこれをテストすることをお勧めします。これは、SQL プラットフォームに合わせて調整する必要があります。

頑張ってくださいあなたの要件と質問が大好きです!

于 2013-02-04T11:34:23.153 に答える