ここで説明されているように、LocalReport.Render 手法を使用して Windows フォーム アプリケーションからレポートを印刷しています。
動作しますが、最初のページのみが印刷されます。レポート ページではヘッダーやフッターを使用せず、本文のみを使用しています。子関係もサブレポートもありません。データ オブジェクトの非常に単純なリストです。
データソースをレポートにロードするために、次のようなことをしています。
List<mysimpledataobject> MyData = new List<mysimpledataobject>();
... add 10 items to the list ...
report.DataSources.Add(new ReportDataSource("Sales", MyData));
最初のページのみがレンダリングされます。すべてのページがストリームのリストにレンダリングされていて、最初のページだけが実際にプリンターに送信されているのではないかと思いましたが、デバッグしてストリームのリストを見ると、1 つの項目しか表示されません。ストリームには、各ページのストリームのリストに 1 つの項目が含まれている必要があります。
レンダリング コードの一部は次のようになります。
report.Render("Image", deviceInfo, CreateStream, out warnings);
foreach (Stream stream in m_streams)
stream.Position = 0;
m_streams リストには項目が 1 つしかないため、その 1 ページだけが印刷されます。
また、ビジネス オブジェクトの DataTable と Array をデータ ソースとして渡そうとしましたが、どちらも機能しません。
どんなアイデアでも大歓迎です。ありがとう。