ActiveReports 18 .NET Edition
Developers / Create Designer and Viewer Applications / ASP.NET WebViewer Application
In This Topic
    ASP.NET WebViewer Application
    In This Topic

    You can use the ASP.NET WebForms Viewer control with .NET Framework 4.6.2 - 4.8.1. only.

    The WebViewer control allows you to quickly display reports in Web applications. Once you drop the control onto a Web Form, you can look in the Visual Studio Properties grid and select the ViewerType that you want to use.

    The WebViewer control supports the following types:

    In a WebViewer, an RDLX report can be rendered in two modes - Paginated and Galley. Using galley mode, you can view the contents of the RDLX report in a single and scrollable page. You can set Galley mode through UI of the WebViewer or through code by setting RenderMode property to Galley.

    You should use the ReportName property to specify a report for the viewer to display. Also, you must add the api/reporting/* HTTP handler to your 'web.config' file and corresponding UseReporting call to 'Global.asax' for this ViewerType to work properly.

    Note: The WebViewer and JSViewer are supported only in the Integrated pipeline mode. You will get PlatformNotSupportedException on using these Viewers in Classic pipeline mode.

    Use the WebViewer control

    1. In Visual Studio, create a new ASP.NET Web Forms Application.
    2. Go to Tools > NuGet Package Manager > Manage NuGet Packages for Solution..., browse the following packages, and click Install:
      • MESCIUS.ActiveReports.Web
      • MESCIUS.ActiveReports.Web.Design/MESCIUS.ActiveReports.Web.Design.VS2022 (corresponding to the Visual Studio version you are using)
    3. In Solution Explorer, right-click the project and select Add > New Item.
    4. Select WebForm and click Add.
    5. Go to the Design tab of the newly added WebForm and drag and drop the WebViewer control to the WebForm designer.
      Note: If you get an error on adding the WebViewer control, you should install or upgrade the Microsoft.CodeDom.Providers.DotNetCompilerPlatform NuGet package. See Troubleshooting for details.

    Preview Code-Based Section Reports in WebViewer control

    You need to update the Global.asax file as follows, assuming that you have added 'SectionReport1.cs' in the project's root:

    Global.asax.cs
    Copy Code
    public class Global : System.Web.HttpApplication
        {
            protected void Application_Start(object sender, EventArgs e)
            {
                this.UseReporting(settings =>
                {
                    settings.UseFileStore(new DirectoryInfo(Server.MapPath("~")));
                    settings.UseCompression = true;
                    settings.UseCustomStore(GetReport);
                });
            }
            public object GetReport(string reportName = "SectionReport")
            {
                SectionReport1 rpt = new SectionReport1();
                return rpt;
            }
        }
    
    Global.asax.vb
    Copy Code
    Public Class _Global
        Inherits System.Web.HttpApplication
        Protected Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
            Me.UseReporting(Sub(settings)
                                settings.UseFileStore(New DirectoryInfo(Server.MapPath("~")))
                                settings.UseCompression = True
                                settings.UseCustomStore(AddressOf GetReport)
                            End Sub)
        End Sub
        Public Function GetReport(ByVal Optional reportName As String = "SectionReport") As Object
            Dim rpt As SectionReport1 = New SectionReport1()
            Return rpt
        End Function
    End Class
    

    Note: Instead of ‘UseEmbeddedTemplates',  you can use either 'UseFileStore' or 'UseCustomStore’ method calls.
    • 'UseEmbeddedTemplates' stores reports as resources in dlls. 
    • 'UseFileStore' stores reports in the file system.
    • 'UseCustomStore’ allows you to store reports in any user-defined location, like a custom database or any other type of location.
    See Also