ClientUI Reporting is a full-fledged XAML reporting engine that offers sophisticated viewing experiences, powerful C# style scripting support, and blazing-fast rendering performance to display advanced business reports without performance bottleneck. The built-in report designer enables you to create a stunning report in significantly shorter time with less effort, thanks to the modern WYSIWYG designer surface and comprehensive design tools.

Live Demo Gallery Watch Video

Enterprise Reporting Solutions

ClientUI Reporting is the ultimate reporting solution for mission-critical business applications. Built with the latest technology and design pattern from the ground up, ClientUI Reporting lets you create beautiful, professional-looking business reports quickly and easily. You can author any type of business reports whether it is a simple list, an advanced tax form, or even a complex profit-and-loss report that requires dynamic data calculation during report processing phases – thanks to the rock-solid reporting engine with full support for C# scripting.


Simple report is a report with simple listing of records which is retrieved from a data source. For example, products report, purchase invoice that lists customer details, invoice details as well as product description.

Master Detail

ClientUI Reporting has a capability to display data in a master-detail format. The provided data must be from a hierarchical data source which has a master-detail relationship. In fact, ClientUI Reporting supports unlimited number of detail reports in a single report document. For example, a product category report which displays product list based on its category.

Form and Label

When creating form report such as employee tax payment form, it's pretty troublesome to hardcore everything inside a report. Form report allows data to be displayed based on user input by using a report parameter. The same thing goes to label report. Instead of using tabular format, you can easily create label report such as product labels, name card, employee badges using label format introduced in ClientUI Reporting.

Side-by-side Report

ClientUI Reporting allows you to display multiple sub-reports side by side within a report document. This report type is usually used for comparison purpose. For example, in sales comparison scenario, you can compare the sales between two territories side by side.

Complex Table

Creating complex table to display a list of data in tabular format is often a strict business requirement. With complex table report type, you can easily use built-in table control to achieve the scenario as well as the capability to merge the table cells either horizontally or vertically. In addition to text, you can also display an image and a checkmark.

Hierarchical Report

In addition to master-detail report, ClientUI Reporting also supports displaying data in a hierarchical tree-style structure. HierarchicalBand will be used to achieve this scenario. In fact, each column will be automatically indented indicating the data is nested, even though it still can be customized to meet the user requirements.

Back to top

Powerful Reporting Engine

At the heart of ClientUI Reporting is a powerful, blazing-fast reporting engine that is capable to process report document in the most efficient way possible. The reporting engine ships with full scripting support, enabling you to write C# style scripting in your report. In fact, you can even access many of the classes and functionality available in .NET Framework through the C# scripting – making it possible for you to author dynamic business reports with complex requirements.

  • Say good bye to sluggish, traditional server-side report engine. Designed entirely for client-side rendering, ClientUI Reporting will never compromise with performance, thanks to its efficient data retrieval process. The report engine downloads the raw data from the server which is at least 4 times smaller than typical server-side rendered report. Combined with the ultra-efficient rendering pass built into the engine, your report size is no longer a concern.

  • Built for ultimate flexibility, ClientUI Reporting lets you connect to any datasource as long as they are reachable – from web services, Web API, WCF RIA Services, DevForce, to virtually any objects that can be serialized over the wire. Forget the tedious database-specific configuration, all you need in ClientUI Reporting is simply defining the data definitions.

  • Featuring a rock-solid scripting engine, you can now write C# code and access to full .NET library from within your reports. It allows you to get or set a property of an object, or even create new objects. And the best of all, the script engine performs nearly as fast as the compiled runtime execution. It also supports scripting in the report events which can be authored directly in the report document – allowing you to create dynamic report without requiring recompilation.

  • ClientUI Reporting is equipped with a vast array of built-in report components optimized for line-of-business scenarios, including text box, image, various shapes, and over 200+ bar code types. It also supports more advanced report components such as multi page support, nested data bands, table, and sub report – all comes with fully customization settings and behaviors.

Back to top

Versatile Report Viewer

Packed along with an intuitive viewer control, ClientUI Reporting offers sophisticated viewing experiences and blazing-fast rendering to display compelling business reports without performance bottleneck. It employs the most advanced rendering technique that loads pages seamlessly in the background which dramatically increase the overall application's responsiveness. It delivers sophisticated features that users will definitely love to see such as searching a text in the document, precise text selection, copy to clipboard, zooming, printing, as well as exporting support to many popular format.

  • ClientUI Reporting runs fully on the client-side, starting from the data source population and data shaping to the pixel-identical report generation and rendering. Every single detail is thoughtfully designed so you can easily deliver the most compelling reports to users. It automatically handle common layout issues such as line overlapping, border intersection, double line removal – which ultimately delivers the best viewing experiences.

  • With the new smart background loading feature in ClientUI Reporting, size doesn't matter anymore – so you don't have to worry on the report performance when it produces large number of pages. Unlike the traditional reporting solutions which require all pages to be processed and rendered beforehand, ClientUI Reporting employs an innovative report processing algorithm that allows pages to be rendered at background and asynchronously updated to the screen as the rendering is in progress. The result is obvious – improved responsiveness and awesome user experiences.

  • Designed with single logical report container concept, a report document can be independently deployed without dependencies on certain backend or a specific component. Building on this principle, the ClientUI Report Viewer allows users to edit the report right from within the application interface. With the simplicity of a property set, you can give users the capability to modify, preview and save the reports back to the report server.

  • Users can easily export the current report document to one of the supported popular document format. ClientUI Reporting supports exporting to PDF, HTML, Excel as well as images format like JPEG, PNG, TIFF. Building on the advanced rendering technique, users can expect fast export throughput. The export result is near-identical with the document viewer result while the quality may vary based on the specified settings of the format.

Back to top

Dynamic Report Creation

ClientUI Reporting is built with rock-solid architecture that allows great extensibility. In addition to displaying saved reports, you can also create a report dynamically at runtime through the provided rich API and object model. With this feature, you can display complex dynamic business report based on certain conditions specified by the requirements.

Back to top

Server Data Operation

ClientUI Reporting has the capability to perform data operations such as sorting and filtering through server-side. This method is preferable when retrieving data from relatively large database since filtering will perform faster as data sent to client is minimal.

  • ClientUI Reporting features a rich data filter functionality allowing users to perform complex data filtering in server-side. For example, you have a product list report that needs to be filtered by a number of fields at once, then you can use composite filtering. Additionally, you can also perform filtering to determine whether the product is already discontinued.

  • It is very common to initially sort data before it is displayed to the user. With ClientUI Reporting, you can easily sort data against a single or multiple data fields as it allows server-side data operation to perform data sorting.

Back to top

Client Data Operation

ClientUI Reporting fully supports client-side data operations such as sorting, grouping and filtering.

  • Complex data filtering can also be applied in client-side. For example, you have a product list report that needs to be filtered by several criteria, you can use composite filtering. Additionally, you can also perform filtering to determine whether the product is already discontinued.

  • In addition to server-side sorting, ClientUI Reporting can perform data sorting in client-side. You can sort data against a single or multiple data fields, the same data operation as in server-side.

  • ClientUI Reporting can perform data grouping through client-side as it allows data to be splitted into several groups based on identical values in data fields.

  • Besides simple grouping, complex data operations such as nested grouping is also well support. Generally, a report page may contain unlimited number of nested groups. For example: when you have a product order list report that needs to be grouped by OrderID and then grouped by discount value.

  • Instead of using data fields, data grouping can be performed by using certain conditions which will require to use scripting. For example: you can group customer list report into alphabetical range.

Back to top

Flexible Report Bands

Report band, known as a report section, represents a specific area on a report page, used to define how to render report components that belong to it. All of report bands is a container and may contain other components. There are many report band types introduced in ClientUI Reporting. Each type of report band has its own unique capabilities.

  • Header Band is rendered before the data is being rendered. By default, header band will be rendered on all pages. You can customize the behavior to render only on the first page, odd or even pages. Note that, the header band is bound to a databand, so it can't exist without a databand.

  • Group Header Band is rendered at the beginning of each group in a report. Note that, the group header band is bound to a databand, so it can't exist without a databand.

  • Data Band is the main band component in ClientUI Reporting which renders each row available in the data source according to the specified sort and filter conditions.

  • FooterBand is rendered right after all data is being rendered. You can customize it to appear only at the bottom of last page. In such case, it will make a free space between the data and footer band. Note that, the footer band is bound to a data band, so it can't exist without a databand.

  • FillBand is used to fill free space on the bottom of a page with additional empty data rows formatted to match the displayed data. Note that, the fill band is bound to a databand, so it can't exist without a databand.

Back to top

Rich Report Components

Report component is an element that is used to display specific information in a report, such as text, image, checkmark, panel, shape, barcode, etc. There are many report components included in ClientUI Reporting. Each type of report component has its own unique functionalities.

  • TextBlock

    TextBlock is a basic report components which is used to render text in a report.

  • Image

    Image is a report component which is used to render image in a report. Common image formats are supported such as PNG and JPG.

  • Shapes

    ClientUI Reporting introduces various shape types which can be used in a report, such as line, arrow, rectangle, oval, and etc. It is used to display simple graphics in a report.

  • Barcode

    Barcode is an optical machine-readable representation of data typically made up of parallel bars, varying in width, spacing, or height. In some cases, a line of digits can be placed under a barcode, which represent in a human readable form of the data contained in the barcode. It can be customized easily through simple property sets.

  • Table

    Table is used to display data in a tabular form. With this component, you can create complex table such as merging table cells vertically or horizontally as well as displaying image or checkmark in addition to text.

  • Sub Report

    Sub Report is used to embed one or more reports into a single report document. This can be useful when there is a particular report structure which have a consistent appearance and functionality that needs to be included many times in a report. In addition, you can also use it to easily create side-by-side reports.

Back to top

Comprehensive Report Parameters

Report parameter enables report to be rendered based on the user input. A parameter panel will be automatically displayed with the respective parameters defined in the report document. A different input control will be used to match the defined parameter type.

  • In general, report parameter supports several data type to be used such as char, string, boolean, numeric, datetime, timespan and expression.

  • Range report parameter editor supports DateTime and Numeric range value from user. If you have order list report, you can filter the order date by setting IsRange property to True. The same goes to Numeric range, where you can filter stock range by setting the same property.

  • For advanced scenario, ClientUI Reporting also introduces linked parameter feature, allowing predefined values to be retrieved based on the other parameter value. Let's say you want to link two combo box editor in your report. When the first combo box selection is changed, the second combo box's items will be invalidated based on the selection. You can apply this linked parameter when you want to display product name items based on the selected category from other combo box.

  • While working with large data scenario, you may want to enable searching feature to improve its performance. You can enable this feature by setting IsSearchable property of report parameter to True.

  • In some scenarios, you may need to allow users to perform multiple selection instead of single selection. Basically, multiple selection can be used in non-editable and editable mode. In non-editable mode, users can select multiple items through the checkbox control available in the first column of each item. Multiple selection parameter supports searchable multiple selection and linked multiple selection. In searchable multiple selection which is editable mode, it provides a more elegant way to perform multiple selection. Users can update the selection directly through the text input element. In linked multiple selection, user can combine the feature in linked parameter with multiple selection. Unlike the standard linked combo-box, the second combo-box allows you to perform multiple selection.

Back to top

Pre-built Conditional Formatting

Conditional formatting is the capability to change the appearance of report component depending on certain conditions. ClientUI Reporting supports several conditional formatting which can be used in a report document.

  • Easily define style formatting for each reporting components depending on certain conditions.

  • Visualize percentage values of data fields using a data bar. This condition can only be applied on TextBlock components.

  • Visualize percentage values of data fields using a color scale. This condition can only be applied on TextBlock components.

  • Visualize values of data fields using an icon depending on the defined value range. Note that, it only can be applied on TextBlock components.

Back to top

Best-in-Class Report Designer

ClientUI Reporting includes a full-featured report designer which is built from the ground up with modern design workspace that emphasize on true WYSIWYG authoring experience. The comprehensive designer tools let you leverage all the powerful features available in the ClientUI Reporting such as drag-drop support to interact with report components, smart tag to quickly set common properties, wizards to easily configure data shaping, and expression editor to write your own C# scripts. Everything is thoughtfully considered and ensured to deliver the most intuitive designer experiences – so that both you and end-users can author stunning business reports in significantly shorter time with less effort.

Modern Design Workspace

Unlike traditional report designers, ClientUI Report Designer features clutter-less surface that allows you to work with the report elements as if they were in an actual page. Featuring true WYSIWYG experience, you can easily author gorgeous business reports through the guided task workflow in the ribbon. You can easily add a data band or report section from the ribbon gallery, set common properties in smart tag, copy and paste objects through context menu or keyboard shortcuts, and customize every aspect of the report component and layout – all from within the single report designer interface.

Robust Drag-Drop Support

One of the key features in the ClientUI Report Designer is its robust drag and drop support which allows you to perform most design tasks in elegant way. Say goodbye to tedious tasks commonly found in report authoring such as object positioning and resizing, object creation, data field sorting, and more. In addition, you can also perform drag-drop on multiple objects, or drag-hold on empty surface to quickly select multiple nearby objects.

Smart Grid Snapping

Aligning labels and fields can be a daunting task in generic report designer without design visual aid support. That's not something to worry in ClientUI Report Designer – thanks to its design ruler and smart snap-to-grid designer features. Simply drag an object to move or resize it around, the Report Designer automatically snaps to the spot you desire – making it easy for you to create beautiful report with neat, properly-aligned layout.

Comprehensive Object Editor

ClientUI Report Designer does not only offer great surface-level design tools, it also comes with hundreds of editors specifically designed to handle each report component – from the color editor supporting solid and gradient brushes, border editor, styles editor, data band editor, data definition editor, parameter editor, to expression editor and conditional formatting and much more. You can also customize many aspects of the report document through editors such as the page size setup, watermark, and globalization.

Real-time Report Preview

Save your precious time and reduce the effort to create professional-looking business reports. With real-time report preview, you no longer have to perform a series of tedious tasks – saving the report, switch to the running apps, refresh the viewer – just to see how your design looks like in the actual report. Simply click on the Preview button and let ClientUI Report Designer auto generates the sample data and render the report for you. When you are happy with the result, just save your report with a simple button click – and your report is ready to be accessed by users. It's that easy!

Back to top

Advanced Globalization Support

ClientUI Reporting allows you to create reports which runs in multiple culture. Report globalization supports static globalization and globalization provider.

Support resource-based globalization for application-wide scenario

Globalization provider allows you to localize text dynamically. You can supply the localized text from external resources or even programmatically through code. With this capability, it's possible to retrieve it from the existing application resources.

Support report-level globalization

Static globalization allows you to localize text in a static way. It can be achieved easily by defining the localized text for several language inside the report document.

Back to top

Close window
back back back forwardforwardforward