In some cases, a multi-page report will display all on one page with overlapping text. When exported to a PDF file, the report will display properly, but the C1ReportViewer display is incorrect. To handle this issue, you need to edit the MakeReport() method and to return a report instead of a document.
Edit the MakeReport() Method:
To write code in Visual Basic
| Visual Basic |
Copy Code
|
|---|---|
Public Function MakeReport() As C1.C1Preview.C1PrintDocument |
|
To write code in C#
| C# |
Copy Code
|
|---|---|
public C1.C1Preview.C1PrintDocument MakeReport() |
|
Initially, your MakeReport() method may look like one of the following samples:
To write code in Visual Basic
| Visual Basic |
Copy Code
|
|---|---|
Public Function MakeReport() As C1.C1Report.C1Report |
|
To write code in C#
| C# |
Copy Code
|
|---|---|
public C1.C1Report.C1Report MakeReport() |
|
You need to edit the MakeReport() method to reflect one of the following samples:
Return a Report:
Once you've edited your MakeReport() method, you need to make sure you're returning a report instead of a document. You can use the following code to return a report:
To write code in Visual Basic
| Visual Basic |
Copy Code
|
|---|---|
Return rpt |
|
To write code in C#
| C# |
Copy Code
|
|---|---|
Return rpt; |
|
For a complete example of the MakeReport() method and returning a report, see the following samples:
To write code in Visual Basic
| Visual Basic |
Copy Code
|
|---|---|
Public Function MakeReport() As C1.C1Report.C1Report
' Dummy datatable
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
' Bind report
Dim rpt As New C1.C1Report.C1Report()
rpt.Load(Server.MapPath("RptTest.xml"), "Test")
rpt.DataSource.Recordset = dt
Return rpt
End Function
|
|
To write code in C#
| C# |
Copy Code
|
|---|---|
public C1.C1Report.C1Report MakeReport()
{
// Dummy datatable
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);
}
// Bind report
C1.C1Report.C1Report rpt = new C1.C1Report.C1Report();
rpt.Load(Server.MapPath("RptTest.xml"), "Test");
rpt.DataSource.Recordset = dt;
return rpt;
}
|
|