6

行数が Excel 2003 の制限である 65536 を超えると、Excel へのエクスポートに失敗する SSRS レポートがあります。

レポートには、グループ フッターを含むグループ化レベルが既にあります。

式に改ページを追加してグループ化レベルを追加しようとしました

=ceiling(rownumber(nothing)/65536)

ただし、これは詳細行をカウントしますが、グループ フッターは考慮しません。そのため、実際の行数は 65536 を超えていますが、行番号は 53000 と評価されます。

次の式

=ceiling(RunningValue(Fields!myfirstgroup.Value, CountDistinct, Nothing) + rownumber(nothing) / 65536 )

グループフッターを含む実際の行数が表示されますが、SSRS は実行中の値式でのグループを許可しません。

Excel へのエクスポートを可能にするために、65536 行の後に強制的に改ページするにはどうすればよいですか? レポート定義でこれを達成し、クエリに計算されたページ番号を追加しないようにしたいと考えていました。

どんな助けでも大歓迎です

* UPDATE - サンプルデータ *

ItemDescription , Location , Quantity

Red lorry , M25 , 5

Red lorry , M6 , 2

Yellow lorry , M1 , 3

レポートには、そのアイテムの合計を含む ItemDescription のグループがあるため、表示されます

ItemDescription , Location , Quantity

    Red lorry , M25 , 5

    Red lorry , M6 , 2

      Total for Red Lorry,7

    Yellow lorry , M1 , 3

      Total for Yellow Lorry,3

これは、3 行のデータから、詳細行とフッター行を含む 5 行のレポートがあることを意味します。SSRS はデータセット内の詳細行の数を知ることができますが、改ページのためにフッターを考慮する必要があります。

4

2 に答える 2

4

こんにちは、このリンクが役立つかもしれません。数年前、私は同様の問題を抱えていました。

行番号を使用した Tablix での SSRS 改ページ、1 つの行グループのみ、既定でグループ式が指定されていない

=Floor((RowNumber(Nothing)-1)/2000)

提案された答えでした

于 2014-08-01T11:13:04.700 に答える
2

次の式でグループを作成します: =CInt(Ceiling(RowNumber(nothing)/65000))

65000 を使用すると、ヘッダーまたはフッター用に少し余裕ができます。次に、このグループで「グループの各インスタンス間」および「グループの最後でも」改ページを行うと、Excel ファイルの制限の問題をうまく解決できます。

これは、問題なく通常使用するものです。特に 65,536 行すべてを使用しなければ、誰も気付かないと思います。

于 2013-10-15T14:14:00.847 に答える