combit List & Label 30 - .NET Help
Programming Introduction / Tutorial / Web Reporting Overview / Use of the Web Designer
Use of the Web Designer

The Web Designer is a special browser-independent version of the Designer which can be used to design reports on a web server. It is installed as a regular Windows program on the client. In this way, the Web Designer does not appear as a part of the website, but instead as an independent desktop program which is launched from your website.

If you need to use a Designer without a local Windows installation, which is used completely in the browser, you can use the Web Report Designer.

Basic Concepts/Requirements

Integration

To integrate the Web Designer into your application, proceed as follows. For more details, please refer to the application examples provided for ASP.NET.

 Step 1: Add Web Designer to Application

Copy the setup file of the Web Designer ("LL30WebDesignerSetup.exe") to any one of the web application's folders so that clients are able to download it from there. The setup file is located in the List & Label installation folder under "Redistribution".

When switching to a new List & Label version (also for service packs), the setup file for the Web Designer on the server will need to be updated. The clients will then automatically prompt the user to perform an update the next time the application is launched.

Finally, add a reference to the assembly combit.Reporting.Web. How the Web Designer call is inserted differs according to the web framework used. You will find the necessary code in the programming examples in the List & Label installation folder under ".\Samples\Microsoft .NET\.NET Framework 4\ASP.NET\":

…\C#\Web Reporting Sample\Default.aspx
       
 Step 2: Configure Data Provider for Real-Time Data Preview

Assign your data provider to the ListLabel object and/or the DataSource property of the WindowsClientWebDesignerOptions object as usual. No direct connection is created between the Web Designer and the data source; the Web Designer communicates with your web application exclusively via HTTP(S), wherein a server-side module of the Web Designer forwards the data from your data source to the Web Designer. Hence, no additional adjustments are necessary on the data source side (or for your database server), such as having to enable connections in your firewall.

 Step 3: Expand the Application Configuration

The new Web Designer always uses ASP.NET MVC for the internal processing of HTTP requests. Hence, the necessary routes will need to be registered in the Application_Start() function of your application (Global.asax file), even if your application is not based on ASP.NET MVC. Add the following lines:

WindowsClientWebDesignerConfig.RegisterRoutes(RouteTable.Routes);
WindowsClientWebDesignerConfig.WindowsClientWebDesignerSetupFile = Server.MapPath("~/Webdesigner/LL30WebDesignerSetup.exe");
WindowsClientWebDesignerConfig.LicensingInfo = "<ToDo: insert your license here>";

Important: If you are also using MVC/Web API, the WindowsClientWebDesignerConfig.RegisterRoutes function must be registered before your own routes.               

The second instruction specifies the local data path of the Web Designer setup which is downloaded if the client has not yet installed it. Distribute the Web Designer setup together with your web application and modify this link accordingly.

Additionally the List & Label license key (see also LicensingInfo) must be specified.        

 Step 4 (Recommended): Enable Drilldown, Table of Contents etc.

By default, all features of the (Desktop) Designer requiring additional files (apart from the main project) are disabled in the Web Designer. This is done because it cannot be guaranteed that the selected local data paths will be valid both on the client and on the server. For example, this applies to drilldown projects, project includes, pictures and PDF files that are not embedded etc.


These limitations do not apply when the repository mode of List & Label is used, with which the files from one or more reports are managed by a simple, virtual file system - the repository. How to use the List & Label repository mode is described in namespace combit.Reporting.Repository. Using List & Label to retroactively convert a web application to repository mode can be rather time-consuming and complicated. Therefore, it is recommended that repository mode be used with new web applications from the very beginning despite the higher level of complexity - even if the features available without a repository initially satisfy your requirements. Hence, the included ASP.NET examples all use the repository. A exemplary manual could be found at Using the Repository-Mode.

 Limitations and Troubleshooting

General limitations in the Web Designer as compared to the normal Designer:

  • no interactive formula functions (AskString$, AskStringChoice$, LibraryPath$, ProjectPath$, ApplicationPath$)
  • no possibility to use local file paths or formulas as source for HTML objects
  • no OLE objects
  • no fax/mail features
  • no custom DesignerActions
  • no custom-added variables that change their value for each page
  • no objects drawn using callback

There are also additional restrictions in the Web Designer if the Repository-Mode is not used:

  • no drilldown
  • no project includes
  • no report sections (*.toc, *.gtc, *.idx) and sub-reports
  • pictures and PDF files must be embedded in the project file
  • no external shapefiles

Older versions of IIS may not work properly with the MVC framework. If this happens, try adding the following entries to the web.config file under system.webServer\handlers::

...
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*."
verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
modules="IsapiModule"
scriptProcessor="windir\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll"
preCondition="classicMode,runtimeVersionv4.0,bitness32"
responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*."
verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
modules="IsapiModule"
scriptProcessor="windir\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll"
preCondition="classicMode,runtimeVersionv4.0,bitness64"
responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*."
verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
...