複数ページのレポート全体が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; } |
|