2016-05-08 21 views
1

SSRS配信ノートレポートを作成しようとしています。詳細は顧客ごとにグループ化し、顧客アドレスをレポートヘッダーとして使用する必要があります。 1つのデータセットには複数の顧客が含まれ、各顧客には10以上の明細詳細があります。 納品書用紙があらかじめ印刷されているため、詳細行は各ページで10個に制限されています。SSRSレポートグループで1回のページあたりの行数が1回正しく表示されない

顧客情報ですべての詳細をグループ化するので、顧客情報(ヘッダー)と明細詳細情報(詳細)の両方を表示するために、より小さいマトリックスで大きなマトリックスネストを使用します。

ページあたりの詳細行を制限するために、私はグループで '= Ceiling(RowNumber(Nothing)/ 10)'コマンドを使用します。

しかし、私はこれをした後に大きな副作用に気付きました。例えば、顧客Aが15個の明細行を有し、顧客Bは、8本の詳細線を有し、期待される結果は次のとおり

  • ページ1:顧客住所& 10項目の詳細
  • ページ2:顧客住所& 5項目の詳細
  • ページ3:顧客Bの住所& 8項目の詳細

しかし、実際の結果は次のとおりです。

  • ページ1:顧客住所& 10項目の詳細
  • ページ2:顧客住所& 5項目の詳細
  • ページ3:顧客Bアドレス& 5項目の詳細
  • ページ4:顧客Bアドレス& 3品目の詳細

これは、顧客Bの詳細のRowNumberが16から始まるため、予期しない最初の顧客Bページに5行しか表示されないためです。予想される結果を達成するための方法はありますか?

Pic:Big matrix nest with small matrix

Pic:limit rows per page

答えて

0

問題はグループ化であなたの第二の条件である:関係なく、その顧客の、

=Ceiling(Rownumber(Nothing)/10) 

このグループので、すべての10行目に改ページをトリガ行はのためです。あなたの例では、顧客Cは最初のページに7行しかありません。これまでに合計23が印刷されていました.Aは15、Bは8です。

あなたのデータセットはSqlに基づいています今あなたは自分の第二のグループを持っている、これはページあたり10項目の最大数を持つグループページ数を計算

SELECT Floor((Row_Number() OVER(partition by CustomerName ORDER BY CustomerName, ItemNumber)-1)/10) AS GroupPageNumber, 
    CustomerName, ItemNumber 
FROM Items 
ORDER BY CustomerName, ItemNumber 

:いくつかのビルトインを使用してクエリ結果内のページ数がRow_NumberOver、およびPartitionています単純に=Fields!GroupPageNumber.Valueと表現してください。

+0

このソリューションを使用していただきありがとうございます。しかし、私はまだレイアウト(ページあたり10行)は、SQLクエリではなくレポートで管理する必要があると思います。 SSRS構成でこれを行う方法はありますか? – invicil

+0

ページあたりの最大行数のプロパティはありません。ボトムマージンの設定を使用してレポートを実行しようとすると、対話の高さがルールよりも似ているWebビューアに問題が発生し、ブラウザに多かれ少なかれ行が表示されることがあります。プレビューが重要ではない場合は、おそらくそれをそのように動作させることができます。 –

+0

前のページの高さを使用しようとしましたが、1人の顧客の場合10行以上の場合、2ページ目の詳細はグループヘッダーを再び表示しませんでした。グループヘッダーデータは動的なので、「各ページで繰り返し」をtrueに設定することはできません。私はまた、グループ基準として報告書でrowcountではなく変数を使用しようとしましたが、SSRSはグループ基準として変数を受け入れることができませんでした。SSRSでこれを行う方法がないかどうか疑問です... – invicil

関連する問題