複数ページのレポート全体が1つのページに表示され、テキストが重なってしまう場合があります。PDF ファイルにエクスポートすると、レポートは正しく表示されますが、C1ReportViewer の表示が不正になります。この問題を解決するには、MakeReport() メソッドを編集して、ドキュメントの代わりにレポートを返す必要があります。
最初、MakeReport() メソッドは次の例のようになっています。
Visual Basic |
コードのコピー
|
---|---|
Public Function MakeReport() As C1.C1Preview.C1PrintDocument |
C# |
コードのコピー
|
---|---|
public C1.C1Preview.C1PrintDocument MakeReport()
|
次の例のように、MakeReport() メソッドを編集する必要があります。
Visual Basic |
コードのコピー
|
---|---|
Public Function MakeReport() As C1.C1Report.C1Report |
C# |
コードのコピー
|
---|---|
public C1.C1Report.C1Report MakeReport()
|
MakeReport() メソッドを編集したら、ドキュメントではなくレポートを返す必要があります。次のコードを使用して、レポートを返すことができます。
Visual Basic |
コードのコピー
|
---|---|
Return rpt |
C# |
コードのコピー
|
---|---|
return rpt;
|
MakeReport() メソッドでレポートを返すコード全体については、次のサンプルを参照してください。
Visual Basic |
コードのコピー
|
---|---|
Public Function MakeReport() As C1.C1Report.C1Report ' ダミーデータテーブル Dim dr As DataRow Dim dt As New DataTable dt.Columns.Add("Row") For i As Integer = 0 To 100 dr = dt.NewRow dr("Row") = "This is row " & i dt.Rows.Add(dr) Next ' レポートを連結します Dim rpt As New C1.C1Report.C1Report() rpt.Load(Server.MapPath("RptTest.xml"), "Test") rpt.DataSource.Recordset = dt Return rpt End Function |
C# |
コードのコピー
|
---|---|
public C1.C1Report.C1Report MakeReport() { // ダミーデータテーブル DataRow dr = null; DataTable dt = new DataTable(); dt.Columns.Add("Row"); for (int i = 0; i <= 100; i++) { dr = dt.NewRow(); dr["Row"] = "This is row " + i; dt.Rows.Add(dr); } // レポートを連結します C1.C1Report.C1Report rpt = new C1.C1Report.C1Report(); rpt.Load(Server.MapPath("RptTest.xml"), "Test"); rpt.DataSource.Recordset = dt; return rpt; } |