ComponentOne ReportViewer for ASP.NET Web Forms
The C1ReportViewer Control / Viewing a Multi-Page Report
In This Topic
    Viewing a Multi-Page Report
    In This Topic

    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;
    
            }