<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Intersoft Solutions Corporate Blog &#187; Reporting</title>
	<atom:link href="http://blog.intersoftsolutions.com/tag/reporting/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.intersoftsolutions.com</link>
	<description>All about development productivity – ASP.NET, Silverlight, WPF, iOS, Android, Windows Phone, Windows 8</description>
	<lastBuildDate>Sat, 21 Apr 2018 06:57:13 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.33</generator>
	<item>
		<title>Video Tutorial: Creating Your First Crosslight App</title>
		<link>http://blog.intersoftsolutions.com/2014/08/video-tutorial-creating-your-first-crosslight-app/</link>
		<comments>http://blog.intersoftsolutions.com/2014/08/video-tutorial-creating-your-first-crosslight-app/#comments</comments>
		<pubDate>Tue, 05 Aug 2014 13:56:53 +0000</pubDate>
		<dc:creator><![CDATA[Nicholas Lie]]></dc:creator>
				<category><![CDATA[2014 R1]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[ClientUI]]></category>
		<category><![CDATA[Crosslight]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[MVVM]]></category>
		<category><![CDATA[Reporting]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=3832</guid>
		<description><![CDATA[For those of you new to cross-platform development, fear not. Crosslight is here to the rescue. Building cross-platform apps has never been easier using Crosslight. Crosslight is a cross-platform toolset that helps you to create cross-platform apps using C#, leveraging the MVVM pattern. If you [...]]]></description>
				<content:encoded><![CDATA[<img width="436" height="250" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/08/2-crosslight.png" class="attachment-post-thumbnail wp-post-image" alt="2-crosslight" style="float:right; margin:0 0 10px 10px;" /><p>For those of you new to cross-platform development, fear not. Crosslight is here to the rescue. Building cross-platform apps has never been easier using Crosslight. Crosslight is a cross-platform toolset that helps you to create cross-platform apps using C#, leveraging the MVVM pattern. If you haven&#8217;t got a copy of Crosslight, grab one <a href="http://www.intersoftpt.com/RequestTrial" target="_blank">here</a>!</p>
<p>To help you get started, we have just released a new video tutorial that will help you to create your first Crosslight app using the Crosslight Project Wizard and run the project on all four platforms: iOS, Android, Windows Phone and Windows Store.</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='604' height='370' src='http://www.youtube.com/embed/kSktcy1ws-c?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span></p>
<p>Find out more about Crosslight at our <a href="http://developer.intersoftpt.com/display/crosslight/Home" target="_blank">Developer Center</a>. Also checkout <a href="http://developer.intersoftpt.com/display/crosslight/Crosslight+Starter+Guide" target="_blank">our newbie-proof Crosslight tutorial</a>. If you have any questions, feel free to post it in our <a href="http://intersoftpt.com/community/crosslight" target="_blank">community forum</a>, or <a href="mailto:technical@intersoftpt.com" target="_blank">drop us a mail</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2014/08/video-tutorial-creating-your-first-crosslight-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video Tutorial: Getting Started with Crosslight Reporting Service</title>
		<link>http://blog.intersoftsolutions.com/2014/06/video-tutorial-getting-started-with-crosslight-reporting-service/</link>
		<comments>http://blog.intersoftsolutions.com/2014/06/video-tutorial-getting-started-with-crosslight-reporting-service/#comments</comments>
		<pubDate>Wed, 18 Jun 2014 16:24:20 +0000</pubDate>
		<dc:creator><![CDATA[Nicholas Lie]]></dc:creator>
				<category><![CDATA[2014 R1]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[ClientUI]]></category>
		<category><![CDATA[Crosslight]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[MVVM]]></category>
		<category><![CDATA[Reporting]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=3788</guid>
		<description><![CDATA[Crosslight 2 provides a capability to view enterprise reports across multiple platforms including iOS, Android, Windows Phone and Windows 8. The reporting services is built upon the company&#8217;s flagship reporting, ClientUI Reporting, to produce identical reports across multiple platforms. You can quickly add reporting feature [...]]]></description>
				<content:encoded><![CDATA[<img width="436" height="250" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/08/5-reporting.png" class="attachment-post-thumbnail wp-post-image" alt="5-reporting" style="float:right; margin:0 0 10px 10px;" /><p>Crosslight 2 provides a capability to view enterprise reports across multiple platforms including iOS, Android, Windows Phone and Windows 8. The reporting services is built upon the company&#8217;s flagship reporting, ClientUI Reporting, to produce identical reports across multiple platforms. You can quickly add reporting feature to your apps since Crosslight has encapsulated all of the functionality required to display the reports on multiple platforms natively. Check out the following video to learn how to configure the report server and display the report on Crosslight apps, which runs on four major platforms: iOS, Android, Windows Phone 8 and Windows Store.</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='604' height='370' src='http://www.youtube.com/embed/_9Nfn18foIM?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span>
<p>You can also get the source code for this video from our new Git server: <a href="http://git.intersoftpt.com/projects/CROS-SUPP/repos/simple-reporting/browse">http://git.intersoftpt.com/projects/CROS-SUPP/repos/simple-reporting/browse</a>. To learn more about Crosslight reporting service and how it works, see <a href="http://developer.intersoftpt.com/display/crosslight/Viewing+Enterprise+Reports" target="_blank">Viewing Enterprise Reports</a>. If you have any questions, feel free to post it in our <a href="http://intersoftpt.com/community/crosslight" target="_blank">community forum</a>, or <a href="mailto:technical@intersoftpt.com" target="_blank">drop us a mail</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2014/06/video-tutorial-getting-started-with-crosslight-reporting-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coming in 2014 R1: ClientUI Reporting 2.0</title>
		<link>http://blog.intersoftsolutions.com/2013/11/coming-in-2013-r2-clientui-reporting-2-0/</link>
		<comments>http://blog.intersoftsolutions.com/2013/11/coming-in-2013-r2-clientui-reporting-2-0/#comments</comments>
		<pubDate>Wed, 20 Nov 2013 12:41:53 +0000</pubDate>
		<dc:creator><![CDATA[jackysite]]></dc:creator>
				<category><![CDATA[2013 R2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[ClientUI]]></category>
		<category><![CDATA[Report Designer]]></category>
		<category><![CDATA[Reporting]]></category>

		<guid isPermaLink="false">https://intersoftpt.wordpress.com/?p=3589</guid>
		<description><![CDATA[Ever since we released the first version of ClientUI Reporting in 2013 R1, we continuously shaped up the entire reporting lineup with significant enhancements and new exciting features. With our fast-pacing sprint-based development process, we are very excited to announce that the next major release, [...]]]></description>
				<content:encoded><![CDATA[<img width="466" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/subreport1-604x350.png" class="attachment-post-thumbnail wp-post-image" alt="Sub-Report is Available in 2013 R2" style="float:right; margin:0 0 10px 10px;" /><p>Ever since we released the first version of ClientUI Reporting in 2013 R1, we continuously shaped up the entire reporting lineup with significant enhancements and new exciting features. With our fast-pacing sprint-based development process, we are very excited to announce that the next major release, ClientUI Reporting 2.0, will be available in 2013 R2. We will ship it along with a host of professionally-designed business report samples as well as comprehensive documentation.</p>
<p>In this blog post, I will share some interesting features that will be available in the upcoming release.</p>
<h2>Sub Report</h2>
<p>We have received tremendous requests asking whether sub report will be supported in ClientUI Reporting. Today I&#8217;m pleased to announce that sub report will be included as built-in report components in 2013 R2.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/11/subreport.png"><img style="background-image:none;padding-top:0;padding-left:0;display:inline;padding-right:0;border-width:0;" title="Sub-Report is Available in 2013 R2" alt="Sub-Report is Available in 2013 R2" src="http://intersoftpt.files.wordpress.com/2013/11/subreport.png" width="642" height="366" border="0" /></a></p>
<p>As one of the most anticipated features, sub report allows you 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 similar to the screenshot below.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/11/sidebyside.png"><img style="background-image:none;padding-top:0;padding-left:0;display:inline;padding-right:0;border-width:0;" title="Create Side by Side Report using Sub-Report" alt="Create Side by Side Report using Sub-Report" src="http://intersoftpt.files.wordpress.com/2013/11/sidebyside.png" width="642" height="366" border="0" /></a></p>
<h2>Entity Definitions</h2>
<p>I expect, at a glance you must be wondering what Entity Definitions is? What is it for? Is it related to the data definitions in a Report Document? Yes, it’s close enough. But before discussing furthermore, I will give some flashback on how do we define data definitions in a report previously.</p>
<p>Suppose you need to display sales in 2012 and sales in 2013 separately inside a report. The generated report XAML will look like the following.</p><pre class="crayon-plain-tag">&lt;DataDefinitions&gt;
    &lt;DataDefinitions.ObjectDataSources&gt;

        &lt;ObjectDataSource Name="Sales2012" Guid="ab5ee58b31fd440aa34aaec8735abf29"&gt;
            &lt;ObjectDataSource.PropertyDefinitions&gt;
                &lt;PropertyDefinition Name="OrderID" Type="System.Int32"/&gt;
                &lt;PropertyDefinition Name="ShippedDate" Type="System.DateTime"/&gt;
                &lt;PropertyDefinition Name="Sales" Type="System.Decimal"/&gt;
            &lt;/ObjectDataSource.PropertyDefinitions&gt;
            &lt;ObjectDataSource.MemberParameters&gt;
                &lt;MemberParameter Name="Year" Type="System.Int32" Value="2012"/&gt;
            &lt;/ObjectDataSource.MemberParameters&gt;
        &lt;/ObjectDataSource&gt;

        &lt;ObjectDataSource Name="Sales2013" Guid="a8a466e9180a4aa88bd0d37567e58783"&gt;
            &lt;ObjectDataSource.PropertyDefinitions&gt;
                &lt;PropertyDefinition Name="OrderID" Type="System.Int32"/&gt;
                &lt;PropertyDefinition Name="ShippedDate" Type="System.DateTime"/&gt;
                &lt;PropertyDefinition Name="Sales" Type="System.Decimal"/&gt;
            &lt;/ObjectDataSource.PropertyDefinitions&gt;
            &lt;ObjectDataSource.MemberParameters&gt;
                &lt;MemberParameter Name="Year" Type="System.Int32" Value="2013"/&gt;
            &lt;/ObjectDataSource.MemberParameters&gt;
        &lt;/ObjectDataSource&gt;

    &lt;/DataDefinitions.ObjectDataSources&gt;
&lt;/DataDefinitions&gt;</pre><p>If you look into the above code, you can notice definition redundancy in the data sources. In the next version, we’ve greatly improved our reporting architecture in our mission to reduce report size and increase overall performance. Thanks to the new Entity Definitions, the data sources definition look much cleaner. And the good thing is, it’s highly reusable. See the following code.</p><pre class="crayon-plain-tag">&lt;DataDefinitions&gt;
    &lt;DataDefinitions.EntityDefinitions&gt;
        &lt;EntityDefinition Guid="e68bf3c60eb74f019a5f7b3e5c5fbb44"&gt;
            &lt;EntityDefinition.PropertyDefinitions&gt;
                &lt;PropertyDefinition Name="OrderID" Type="System.Int32"/&gt;
                &lt;PropertyDefinition Name="ShippedDate" Type="System.DateTime"/&gt;
                &lt;PropertyDefinition Name="Sales" Type="System.Decimal"/&gt;
            &lt;/EntityDefinition.PropertyDefinitions&gt;
        &lt;/EntityDefinition&gt;
    &lt;/DataDefinitions.EntityDefinitions&gt;

    &lt;DataDefinitions.ObjectDataSources&gt;

        &lt;ObjectDataSource Name="Sales2012" Guid="ab5ee58b31fd440aa34aaec8735abf29" EntityGuid="e68bf3c60eb74f019a5f7b3e5c5fbb44"&gt;
            &lt;ObjectDataSource.MemberParameters&gt;
                &lt;MemberParameter Name="Year" Type="System.Int32" Value="2012"/&gt;
            &lt;/ObjectDataSource.MemberParameters&gt;
        &lt;/ObjectDataSource&gt;

        &lt;ObjectDataSource Name="Sales2013" Guid="a8a466e9180a4aa88bd0d37567e58783" EntityGuid="e68bf3c60eb74f019a5f7b3e5c5fbb44"&gt;
            &lt;ObjectDataSource.MemberParameters&gt;
                &lt;MemberParameter Name="Year" Type="System.Int32" Value="2013"/&gt;
            &lt;/ObjectDataSource.MemberParameters&gt;
        &lt;/ObjectDataSource&gt;

    &lt;/DataDefinitions.ObjectDataSources&gt;
&lt;/DataDefinitions&gt;</pre><p>With this improved architecture and design, it will effectively suppress the size of report document thus enhancing overall user experience.</p>
<h2>Enhanced Table Cell</h2>
<p>We have been intensively working to bring some great enhancements to the table component. You would love to see that our table now supports cell merging. As seen in the following screenshot, the table cells can be merged either horizontally or vertically. Furthermore, some new commands have been added to ribbon bar, allowing you to easily merge and split the cells.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/11/tabledesigner.png"><img style="background-image:none;padding-top:0;padding-left:0;display:inline;padding-right:0;border-width:0;" title="Table Cell Merging" alt="Table Cell Merging" src="http://intersoftpt.files.wordpress.com/2013/11/tabledesigner.png" width="642" height="366" border="0" /></a></p>
<p>In addition, our table component also supports image and checkmark, allowing you to create truly appealing business reports. Definitely, you can easily customize it from the ribbon bar.</p>
<h2>Designer Lock</h2>
<p>Another interesting feature not to be missed is the ability to prevent end-user from editing the report document at runtime. It will ensure there is no changes can be made to report document at runtime. As can be seen in the screenshot below, all of editing commands is disabled while this feature is turned on.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/11/reportlock1.png"><img style="background-image:none;padding-top:0;padding-left:0;display:inline;padding-right:0;border-width:0;" title="Runtime Designer Lock" alt="Runtime Designer Lock" src="http://intersoftpt.files.wordpress.com/2013/11/reportlock1.png" width="642" height="366" border="0" /></a></p>
<p>Not only for an entire report document, the designer lock can also be applied on specific pages, or on specific report components.</p>
<h2>Custom Report Templates</h2>
<p>While working with reports, sometimes you need to ensure consistency between each reports. In this case, it&#8217;s necessary to use report template to provide standard layout pattern. Some repetitive tasks while creating a new report can be skipped, so you can focus on the specific requirements of the new report. These tasks may include customizing page layout, defining data definitions, headers, footers, and also styling.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/11/reporttemplate.png"><img style="background-image:none;padding-top:0;padding-left:0;display:inline;padding-right:0;border-width:0;" title="Custom Report Template" alt="Custom Report Template" src="http://intersoftpt.files.wordpress.com/2013/11/reporttemplate_thumb.png" width="642" height="366" border="0" /></a></p>
<p>It&#8217;s easy to create a report template, you only need to create a new report which contains customized page layout, data definitions, headers, footers, and styles, then store it as a resources in your application.</p>
<p>That’s all for now. I hope you liked these enhancements and new features. As usual, feedback and comments are warmly welcomed.</p>
<p>Warm Regards,<br />
Jack</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2013/11/coming-in-2013-r2-clientui-reporting-2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create a Simple Report with Intersoft ClientUI Reporting</title>
		<link>http://blog.intersoftsolutions.com/2013/09/create-a-simple-report-with-intersoft-clientui-reporting/</link>
		<comments>http://blog.intersoftsolutions.com/2013/09/create-a-simple-report-with-intersoft-clientui-reporting/#comments</comments>
		<pubDate>Wed, 11 Sep 2013 10:38:17 +0000</pubDate>
		<dc:creator><![CDATA[jackysite]]></dc:creator>
				<category><![CDATA[2013 R1]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[ClientUI]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">https://intersoftpt.wordpress.com/?p=3397</guid>
		<description><![CDATA[In the previous posts, I’ve wrote about the overview and features of our new ClientUI reporting lineup. Now that we’ve released the Reporting lineup, you can download a copy of the new 2013 release here and test drive the much anticipated Reporting for yourself. In [...]]]></description>
				<content:encoded><![CDATA[<img width="466" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/blankreportdocument_thumb1-604x350.png" class="attachment-post-thumbnail wp-post-image" alt="Report Designer" style="float:right; margin:0 0 10px 10px;" /><p>In the previous <a href="http://intersoftpt.wordpress.com/2013/08/01/clientui-reporting-is-coming-in-2013-r1-part-2/">posts</a>, I’ve wrote about the overview and features of our new ClientUI reporting lineup. Now that we’ve released the Reporting lineup, you can download a copy of the new 2013 release <a href="http://www.intersoftpt.com/RequestTrial">here</a> and test drive the much anticipated Reporting for yourself.</p>
<p>In this blog post, I will explain how to create a simple report using Intersoft Reporting. To get started, run the standalone Report Designer application which can be found in the Intersoft Premier Studio 2013 program group. The complete shortcut path can be found below.</p>
<p></p><pre class="crayon-plain-tag">C:ProgramDataMicrosoftWindowsStart MenuProgramsIntersoft Premier Studio 2013 R1WebUI Studio for Silverlight 5Reporting</pre><p></p>
<p>Once launched, you will see the Report Designer running in the browser that looks like the following:</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/09/blankreportdocument.png"><img title="Report Designer" style="display:inline;border-width:0;" border="0" alt="Report Designer" src="http://intersoftpt.files.wordpress.com/2013/09/blankreportdocument_thumb.png" width="642" height="364"></a></p>
<p>Reporting is all about presenting data from a specific datasource. So before we started designing a report, let’s define the data source and related data definitions first.</p>
<h2>Defining Data Definitions</h2>
<p>Before performing data definitions tasks, it’s important to understand the ClientUI reporting data management concept. At the heart of the ClientUI reporting is the entity-based data source, which can be any objects – a simple POCO object or a complex domain model object. This means that it doesn’t coupled to any specific data providers. You can simply get the data the way you want and throw in into the report’s data source. The report viewer will take care the rest.</p>
<p>Back to the report designer. You can easily define data source by simply navigating to the Report Explorer tab, then click the AddDataSource button. This will launch a dialog to add a new data source. See the following illustration.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/09/datadefinition.png"><img title="Define Data Definition" style="display:inline;border-width:0;" border="0" alt="Define Data Definition" src="http://intersoftpt.files.wordpress.com/2013/09/datadefinition_thumb.png" width="642" height="365"></a></p>
<p>You need to specify the name and type of your data source. Actually there are 3 data source types you can use here, such as Entity (table), Method (Stored Procedure), or View. In this scenario, an Entity will be provided as a data source. Also don’t forget, you need to specify the properties owned by your data source, including it’s name and type.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/09/adddatasource.png"><img title="Add Data Source" style="display:inline;border-width:0;" border="0" alt="Add Data Source" src="http://intersoftpt.files.wordpress.com/2013/09/adddatasource_thumb.png" width="593" height="482"></a></p>
<p>After added, now your Report Explorer tab will look like the following:</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/09/adddatasourceafter.png"><img title="After Add Data Source" style="display:inline;border-width:0;" border="0" alt="After Add Data Source" src="http://intersoftpt.files.wordpress.com/2013/09/adddatasourceafter_thumb.png" width="642" height="364"></a></p>
<h2>Designing the Report</h2>
<p>Most functionalities you need to design a report can be easily accessed from the ribbon. From the ribbon, you can easily insert a title, logo, watermark, band, or report component into the design surface.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/09/ribbondesign.png"><img title="Design Ribbon Tab" style="display:inline;border-width:0;" border="0" alt="Design Ribbon Tab" src="http://intersoftpt.files.wordpress.com/2013/09/ribbondesign_thumb.png" width="642" height="364"></a></p>
<p>First, let’s insert a ReportHeaderBand into the design surface. A report header will be printed once in a report, so it’s the best place for the report’s title or logo. You will notice that a visual adorner is attached to the left side of the band. The adorner allow you to re-positioning the band by using drag-drop. Besides that, you will also find a resize grip at the bottom side of the visual adorner. See the following screenshot.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/09/reportheaderband.png"><img title="Insert ReportHeaderBand" style="display:inline;border-width:0;" border="0" alt="Insert ReportHeaderBand" src="http://intersoftpt.files.wordpress.com/2013/09/reportheaderband_thumb.png" width="642" height="364"></a></p>
<p>Next, insert the logo. Simply click the ‘Logo’ button and a file dialog will be appeared which require you to specify an image file. Then click the ‘Title’ and ‘Date &amp; Time’ button to insert the report’s title and date. Suppose you need to customize it, you can done these easily from the property grid.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/09/inserttitle.png"><img title="Insert Title" style="display:inline;border-width:0;" border="0" alt="Insert Title" src="http://intersoftpt.files.wordpress.com/2013/09/inserttitle_thumb.png" width="642" height="363"></a></p>
<p>The next step is to display data in a report. Drag the data source which has been created before and drop it into the design surface. See the illustration below.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/09/createdataband.png"><img title="Drag Data Source" style="display:inline;border-width:0;" border="0" alt="Drag Data Source" src="http://intersoftpt.files.wordpress.com/2013/09/createdataband_thumb.png" width="642" height="364"></a></p>
<p>A dialog will be appeared, require you to specify which columns will be displayed in the report. Also you can define filter, sort, or group definitions in there by using drag-drop. See the following screenshot.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/09/createdataband1.png"><img title="Create Data Band" style="display:inline;border-width:0;" border="0" alt="Create Data Band" src="http://intersoftpt.files.wordpress.com/2013/09/createdataband_thumb1.png" width="642" height="404"></a></p>
<p>Once the dialog is committed, a DataBand and it’s related band, such as HeaderBand, FooterBand, GroupHeaderBand, and GroupFooterBand, will be inserted automatically.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/09/databandinsertionresult.png"><img title="Auto Generated DataBand" style="display:inline;border-width:0;" border="0" alt="Auto Generated DataBand" src="http://intersoftpt.files.wordpress.com/2013/09/databandinsertionresult_thumb.png" width="642" height="364"></a></p>
<p>Last, we will printed an image at the bottom of every report pages. In this scenario, a PageFooterBand will be used because page footer will be printed at the bottom of every pages.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/09/pagefooterband.png"><img title="Insert PageFooterBand" style="display:inline;border-width:0;" border="0" alt="Insert PageFooterBand" src="http://intersoftpt.files.wordpress.com/2013/09/pagefooterband_thumb.png" width="642" height="363"></a></p>
<p>Insert an Image to the PageFooterBand, like the screenshot below.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/09/image.png"><img title="Insert Image" style="display:inline;border-width:0;" border="0" alt="Insert Image" src="http://intersoftpt.files.wordpress.com/2013/09/image_thumb.png" width="642" height="363"></a></p>
<p>Double click on the Image, then a dialog will be appeared and you need to provide the image source. See screenshot below.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/09/loadimage.png"><img title="Provide Image Source" style="display:inline;border-width:0;" border="0" alt="Provide Image Source" src="http://intersoftpt.files.wordpress.com/2013/09/loadimage_thumb.png" width="642" height="402"></a></p>
<p>After following those steps, your final report document will actually look like the following screenshot. Try to preview the report or open it using Intersoft ReportViewer, and don’t forget to save the report document for further usage.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/09/result.png"><img title="Report Document" style="display:inline;border-width:0;" border="0" alt="Report Document" src="http://intersoftpt.files.wordpress.com/2013/09/result_thumb.png" width="407" height="482"></a></p>
<h2>Displaying Report with Intersoft Report Viewer</h2>
<p>In this section, we will open the saved report document using Intersoft Report Viewer. First, you need to create a simple Silverlight application. Then define the ReportViewer in your View like the following code:</p>
<p></p><pre class="crayon-plain-tag">&lt;Intersoft:ReportViewer x:Name="ReportViewer"
                        ReportUri="{Binding ReportUri}"
                        ReportDefinition="{Binding ReportDefinition, Mode=TwoWay}"
                        ReportDataProvider="{Binding ReportDataProvider}"/&gt;</pre><p></p>
<p>Then provide the ViewModel. See the following code:</p>
<p></p><pre class="crayon-plain-tag">public class MainPageViewModel
{
   private Uri _reportUri;
   private ReportDefinition _reportDefinition;
   private ReportDataProvider _reportDataProvider;

   public Uri ReportUri
   {
      get { return _reportUri; }
      set
      {
         if (_reportUri!= value)
         {
            _reportUri= value;
            this.OnPropertyChanged("ReportUri");
         }
      }
   }

   public ReportDefinition ReportDefinition
   {
      get { return _reportDefinition; }
      set
      {
         if (_reportDefinition != value)
         {
            _reportDefinition = value;
            this.OnPropertyChanged("ReportDefinition");
         }
      }
   }&nbsp; public ReportDataProvider ReportDataProvider
   {
      get { return _reportDataProvider; }
      set
      {
         if (_reportDataProvider != value)
         {
            _reportDataProvider = value;
            this.OnPropertyChanged("ReportDataProvider");
         }
      }
   }&nbsp; public MainPageViewModel()
   {
      this.ReportUri = new Uri("Reports/SimpleReport.xaml", UriKind.Relative);
      this.ReportDataProvider = new NorthwindDataProvider();
   }
}</pre><p></p>
<p>And don’t forget to define the report data provider. You need to derive it from ReportDataProvider class, and implement the ProvideData method. Make sure the provided data reflect the one which have been defined in your report document.</p>
<p>In this sample, we create a NorthwindDataProvider class which derives from the ReportDataProvider. The following code is provided for the sake of simplicity, you can obviously refactor it into a generic class and easily define the logic to get the data source using the preferred data service, i.e., WCF RIA Service or DevForce Service.</p>
<p></p><pre class="crayon-plain-tag">public class NorthwindDataProvider : ReportDataProvider
{
   List&lt;Func&lt;INotifyCompleted&gt;&gt; operations = new List&lt;Func&lt;INotifyCompleted&gt;&gt;();

   foreach (ObjectDataSource objectDataSource in reportDefinition.DataDefinitions.ObjectDataSources)
   {
      if (objectDataSource.IsRequired &amp;&amp; !objectDataSource.IsLoaded)
      {
         Func&lt;INotifyCompleted&gt; op = this.GetQuery(reportDefinition, objectDataSource);
         if (op != null)
            operations.Add(op);
      }
   }

   Coroutine.StartParallel(operations, (op) =&gt; { this.MarkAsCompleted(); });
}

private Func&lt;INotifyCompleted&gt; GetQuery(ReportDefinition reportDefinition, ObjectDataSource objectDataSource, QueryDescriptor queryDescriptor = null)
{
   if (queryDescriptor == null)
      queryDescriptor = new QueryDescriptor();

   queryDescriptor.SuspendQueryChanged = true;

   if (objectDataSource.ParsedFilterDescriptors.Count &gt; 0)
      queryDescriptor.FilterDescriptors.Add(objectDataSource.ParsedFilterDescriptors);

   queryDescriptor.SuspendQueryChanged = false;

   if (queryDescriptor.FilterDescriptors.Count &gt; 0)
   {
      CompositeFilterDescriptorCollection collection = queryDescriptor.FilterDescriptors.OfType&lt;CompositeFilterDescriptorCollection&gt;().FirstOrDefault();
      List&lt;FilterDescriptor&gt; sorts = collection.OfType&lt;FilterDescriptor&gt;().Where(o =&gt; o.PropertyName == "SortBy").ToList();
      if (sorts != null &amp;&amp; sorts.Count &gt; 0)
      {
         foreach (FilterDescriptor sort in sorts)
         {
            queryDescriptor.SortDescriptors.Add(new SortDescriptor() { PropertyName = sort.Value.ToString() });&nbsp;&nbsp;&nbsp;&nbsp; }

         queryDescriptor.FilterDescriptors.Remove(collection);
      }
   }

   Action&lt;IEnumerable&gt; initializeData = this.InitializeData(reportDefinition, objectDataSource.Name);

   switch (objectDataSource.Name)
   {
      case "Customer":
         queryDescriptor.SortDescriptors.Add(new SortDescriptor() { PropertyName = "CustomerID" });
         return () =&gt; this.DataManager.Customers.ExecuteAsync(queryDescriptor, initializeData);
   }

   return null;
}

private void AddDataSource(ReportDefinition reportDefinition, string objectDataSourceName, IEnumerable dataSource)
{
   if (!reportDefinition.DataSources.ContainsKey(objectDataSourceName))
      reportDefinition.DataSources.Add(objectDataSourceName, dataSource);
   else
      reportDefinition.DataSources[objectDataSourceName] = dataSource;
}

private Action&lt;IEnumerable&gt; InitializeData(ReportDefinition reportDefinition, string dataSourceName)
{
   Action&lt;IEnumerable&gt; action = (results) =&gt;
   {
      this.AddDataSource(reportDefinition, dataSourceName, results);
   };

   return action;
}</pre><p></p>
<p>Run the ReportViewer, and the result will look like the following screenshot.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/09/sample.png"><img title="Simple Report" border="0" alt="Simple Report" src="http://intersoftpt.files.wordpress.com/2013/09/sample_thumb.png" width="642" height="364"></a></p>
<h2>Conclusion</h2>
<p>In this post, I have explained how to create a simple report using Intersoft Report Designer and open it using Intersoft Report Viewer. Once you have the provider and ViewModel ready, you can rapidly create reports and present them in your application. Now feel free to try and make your own report. Should you find any difficulties or have any feedback, feel free to drop us a line in the comment box.</p>
<p>Warm Regards,<br />Jack</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2013/09/create-a-simple-report-with-intersoft-clientui-reporting/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ClientUI Reporting is Coming in 2013 R1 &#8211; Part 2</title>
		<link>http://blog.intersoftsolutions.com/2013/08/clientui-reporting-is-coming-in-2013-r1-part-2/</link>
		<comments>http://blog.intersoftsolutions.com/2013/08/clientui-reporting-is-coming-in-2013-r1-part-2/#comments</comments>
		<pubDate>Thu, 01 Aug 2013 01:56:28 +0000</pubDate>
		<dc:creator><![CDATA[jackysite]]></dc:creator>
				<category><![CDATA[2013 R1]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[ClientUI]]></category>
		<category><![CDATA[Report Designer]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">https://intersoftpt.wordpress.com/?p=3264</guid>
		<description><![CDATA[As we are heading toward R1 release, you may expect to hear more about ClientUI Reporting. Continued from my previous post, I will expose some interesting features in our Report Designer which will ship along with the report viewer. With the built-in design tool, definitely [...]]]></description>
				<content:encoded><![CDATA[<img width="521" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/reportexplorer_thumb21-604x313.png" class="attachment-post-thumbnail wp-post-image" alt="The industry" style="float:right; margin:0 0 10px 10px;" /><p>As we are heading toward R1 release, you may expect to hear more about ClientUI Reporting. Continued from my previous <a href="http://intersoftpt.wordpress.com/2013/05/21/clientui-reporting-is-coming-in-2013-r1/">post</a>, I will expose some interesting features in our Report Designer which will ship along with the report viewer. With the built-in design tool, definitely you can create a stunning report in a short time without spend too much hard work. Our engineering team also have put so much thoughts on these, so that it has great usability and superior user experiences. Featuring industrial-standards user interface, definitely you will be more convenient with such a powerful and visually attractive design workspace.</p>
<h2>Introducing Industry’s Most Advanced Report Designer</h2>
<p>ClientUI Report Designer is built from the ground up with modern design workspace that emphasize on true WYSIWYG experience. Unlike traditional 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. This means that you will not see any designer-related visual adorners getting in the way on the designer surface. Instead, we created gorgeous visual adorners on the left side of the report with distinguished colors allowing you easily recognize each report section defined in the page.</p>
<p>We streamlined the overall report authoring process by arranging most frequently accessed commands in three major workflows represented in the ribbon tab group: Design, Format and Arrange. The Design tab lets you easily insert new report elements, while the Format and Arrange tabs let you quickly beautify the report elements. Everything is thoughtfully designed so both end users and developers will find the report designer very intuitive and pleasant to be used. See the following screenshot for the visual details.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/08/reportexplorer2.png"><img title="The industry's most intuitive report designer" style="border-top:0;border-right:0;border-bottom:0;border-left:0;display:inline;" border="0" alt="The industry's most intuitive report designer" src="http://intersoftpt.files.wordpress.com/2013/08/reportexplorer_thumb2.png" width="642" height="313"></a> </p>
<p>As seen in the above image, the Report Explorer tab on the right will show the report’s hierarchy. Inside there, you can see the already defined data sources and parameters. All report components also will be listed here. In addition, you can also perform various operations, such as add, edit, or delete, for each data source or parameter.</p>
<h2>Advanced Property Editing</h2>
<p>Handling vary types of object with it’s specific editor is not an easy task. A report component has a lot of properties which is difference from each others. In this scenario, performance issue need to be considered. To overcome it without performance degradation, Report Designer employs the most advanced property editing control, UXPropertyGrid. The property grid features high-performance UI virtualization that allows blazing-fast properties listing and rendering when you select an object. See the following screenshot.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/08/design1.png"><img title="Advance Property Editing" style="border-top:0;border-right:0;border-bottom:0;border-left:0;display:inline;" border="0" alt="Advance Property Editing" src="http://intersoftpt.files.wordpress.com/2013/08/design_thumb1.png" width="642" height="317"></a> </p>
<h2>Independent Data Source Provider</h2>
<p>Discussing about a report, you must be aware about the data source. As stated before, there are literally no constraints about the data source you should use, so you can utilize any kinds of data. All you need here is only to define the data definitions. You can define it manually like the following illustration.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/08/manual.png"><img title="Add Data Source Manually" style="display:inline;border-width:0;" border="0" alt="Add Data Source Manually" src="http://intersoftpt.files.wordpress.com/2013/08/manual_thumb.png" width="642" height="326"></a></p>
<p>But it would be very inconvenient if you need to specify a lot of data definitions manually. Actually you can import the definitions from a generated WCF RIA or DevForce assembly, without specifying it one by one. See the following illustration.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/08/assembly.png"><img title="Add Data Source from Assembly" style="display:inline;border-width:0;" border="0" alt="Add Data Source from Assembly" src="http://intersoftpt.files.wordpress.com/2013/08/assembly_thumb.png" width="524" height="482"></a></p>
<h2>Powerful Design Tool with Drag-Drop Functionality</h2>
<p>Drag and drop is one of the key feature in report designer. Report designing task will become more easy and simple with this functionality introduced. Various complex actions, such as object positioning, object creation, data field sorting, and much more, which usually need 3 or more actions to perform it, can be achieved elegantly by using drag-drop. Thanks to ClientUI’s robust Drag-Drop Framework, so our teams can quickly provide fluid drag-drop capabilities for the Report Designer.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/08/positioning1.png"><img title="Drag-Drop Functionality" style="border-top:0;border-right:0;border-bottom:0;border-left:0;display:inline;" border="0" alt="Drag-Drop Functionality" src="http://intersoftpt.files.wordpress.com/2013/08/positioning_thumb1.png" width="642" height="333"></a> </p>
<h2>Precise Layouting with Guidance Ruler and Snap to Grid Feature</h2>
<p>Layouting is the most important step while creating a report, which will affects the final result. For some scenario, guidance ruler will be very helpful, especially for object positioning. As you can see on the below screenshot, those rulers are placed on top and left side of the design surface. Besides that, you can also enable Snap-to-Grid feature, which allowed you to precisely resize or move objects to a specific location.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/08/grid1.png"><img title="Precise Layouting with Ruler and Snap-to-Grid Feature" style="border-top:0;border-right:0;border-bottom:0;border-left:0;display:inline;" border="0" alt="Precise Layouting with Ruler and Snap-to-Grid Feature" src="http://intersoftpt.files.wordpress.com/2013/08/grid_thumb1.png" width="642" height="317"></a> </p>
<h2>Create Report Efficiently using Smart Tag</h2>
<p>To create a report fast and more efficiently, you can take advantage of using the smart tag. Actually the smart tag has been designed to display some actions which is basically needed in most business scenario. It can save your time a lot rather than browse it from the property list.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/08/smarttag1.png"><img title="Work Efficiently Using Smart Tag" style="border-top:0;border-right:0;border-bottom:0;border-left:0;display:inline;" border="0" alt="Work Efficiently Using Smart Tag" src="http://intersoftpt.files.wordpress.com/2013/08/smarttag_thumb1.png" width="642" height="329"></a> </p>
<h2>Undo/Redo Capability</h2>
<p>Undo/Redo is a very useful feature in Report Designer. As the name explains, it allows you to undo/redo a number of recent actions. Suppose you accidentally delete an object or something else, these actions still can be reverted easily.</p>
<h2>Preview Report at Design Time</h2>
<p>Another important feature not to be missed is the ability to preview a report at design time, because the iterative process of perfecting a report is accomplished by moving back and forth between the Preview and Design section. Of course, the preview section will show the result exactly the same as when it is printed. See the screenshot below.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/08/preview1.png"><img title="Report Preview in Design Time" style="border-top:0;border-right:0;border-bottom:0;border-left:0;display:inline;" border="0" alt="Report Preview in Design Time" src="http://intersoftpt.files.wordpress.com/2013/08/preview_thumb1.png" width="642" height="317"></a> </p>
<p>Okay, I think it’s enough although there are still so much exciting stuff about the Report Designer. I’d love to hear if you have any comments, questions or feedback about our Report Designer. Thank you for reading and stay tuned for the next update.</p>
<p>Warm Regards,<br />Jack</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2013/08/clientui-reporting-is-coming-in-2013-r1-part-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ClientUI Reporting is Coming in 2013 R1</title>
		<link>http://blog.intersoftsolutions.com/2013/05/clientui-reporting-is-coming-in-2013-r1/</link>
		<comments>http://blog.intersoftsolutions.com/2013/05/clientui-reporting-is-coming-in-2013-r1/#comments</comments>
		<pubDate>Tue, 21 May 2013 05:04:55 +0000</pubDate>
		<dc:creator><![CDATA[jackysite]]></dc:creator>
				<category><![CDATA[2013 R1]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[ClientUI]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WebUI Studio]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">https://intersoftpt.wordpress.com/?p=3211</guid>
		<description><![CDATA[As announced in our roadmap here, we’re going to introduce new major lineup for Silverlight and WPF in the coming release. A standalone reporting product is something that we’ve been working intensively since the past year.  Designed from the ground-up, ClientUI reporting is a full-fledged [...]]]></description>
				<content:encoded><![CDATA[<img width="514" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/all_thumb11-604x317.png" class="attachment-post-thumbnail wp-post-image" alt="Rendering whole report document when report is loaded" style="float:right; margin:0 0 10px 10px;" /><p>As announced in our roadmap <a href="https://intersoftpt.wordpress.com/2013/03/12/announcing-intersoft-2013-product-roadmap/">here</a>, we’re going to introduce new major lineup for Silverlight and WPF in the coming release. A standalone reporting product is something that we’ve been working intensively since the past year.  Designed from the ground-up, ClientUI reporting is a full-fledged XAML reporting engine which includes a powerful C# style scripting support for the most demanding business reports.</p>
<p>Our development team have put so much hard work on the new breed of reporting solution for Silverlight and WPF, so that it has the power and flexibility you need to produce great-looking reports. It will also feature blazing-fast rendering performance, great usability and superior user experiences.</p>
<p>In this blog post, I will share the high level overview of the reporting’s uniqueness and its key features.</p>
<h2>XAML-based Report Engine</h2>
<p>Creating a business report using Intersoft reporting tools is definitely easy. It will be very familiar for Silverlight/WPF developers and won&#8217;t spend too much effort to learn it as it&#8217;s completely defined using a XAML-like report metadata. Since the reporting XAML conforms to the Visual Studio specification, you get all the productivity features you loved, such as Intellisense, property value auto completion and more.</p>
<p>The following example illustrates a XAML report document.</p><pre class="crayon-plain-tag">&lt;ReportDocument Name="Report1" xmlns="http://intersoft.reporting.com/schemas" ReportUnit="Centimeters"&gt;
	&lt;ReportDocument.DataDefinitions&gt;
        ...
	&lt;/ReportDocument.DataDefinitions&gt;	
	&lt;ReportDocument.Pages&gt;	
		&lt;ReportPage Name="Page1" PageHeight="29.7" PageWidth="21" Margin="1,1,1,1"&gt;
			&lt;ReportPage.Components&gt;				
				&lt;HeaderBand Name="InvoiceHeader" LayoutBox="0,7.4,19,0.8"&gt;
					&lt;HeaderBand.Components&gt;
						&lt;TextBlock LayoutBox="0,0,2.2,0.8" Text="Product ID" TextAlignment="Center"/&gt;
					&lt;/HeaderBand.Components&gt;
				&lt;/HeaderBand&gt;

				&lt;DataBand Name="InvoiceData" LayoutBox="0,9,19,0.8" ObjectDataSourceGuid="ab5ee58b31fd440aa34aaec8735abf29"&gt;
				...
				&lt;/DataBand&gt;

				&lt;FooterBand Name="InvoiceFooter" LayoutBox="0,10.6,19,0.8"&gt;
				...
				&lt;/FooterBand&gt;			
			&lt;ReportPage.Components&gt;		
		&lt;/ReportPage&gt;
	&lt;/ReportDocument.Pages&gt;
	&lt;ReportDocument.Styles&gt;
        ...
	&lt;/ReportDocument.Styles&gt;   
&lt;/ReportDocument&gt;</pre><p>The XAML report document introduces numerous great benefits, such as it support property value inheritance, an interesting feature introduced in Silverlight/WPF XAML, which enables child elements in report tree to obtain the value of a particular property from parent elements, inheriting the value as it was set in the nearest parent element. To make the report even more neat and simple, it also support style which can be shared by all of the elements inside the report.</p>
<h2>Full Client Rendering. Datasource Agnostic.</h2>
<p>Talking about a report solution, many developers are concerned about the datasource support. Does it support SQL Server? How about Oracle? And so on. Unlike many reporting solutions which are server-based reporting, it’s important to understand that our reporting solution fully runs on client-side, from the data source population to the pixel-identical report generation and rendering. This means there are literally no constraints on the datasource, so you can retrieve data from domain service, web service, WCF service, or virtually any kind of objects that can be serialized over the wire.</p>
<p>The independence to the server allows our reporting engine to perform many tasks by its own in the client-side. There are numerous great benefits associated to this design, such as faster and more responsive user experience in the client-side. And more importantly, the authored report document is truly self-contained, which means that a single report document is all you need to deploy for user consumption. And since the report is a XAML file, you can quickly deploy a report by uploading the file to the website – it’s that easy.</p>
<h2>C# Style Scripting Engine</h2>
<p>One of the key features of Intersoft report engine is the powerful scripting engine. Scripting is essential to any reporting solution, so we want to make sure that we have the best-of-breed scripting engine that is intuitive to developers and require minimal learning curves. The engine has to be dynamic enough to evaluate complex, multi-line syntax – not only a single line expression – to support the most demanding business report authoring.</p>
<p>I’m pleased to introduce our C# style scripting engine, the industry’s first report scripting engine that supports complex C# style statements and syntaxes. Moreover, you have access to full .NET library and classes, you can get or set a property of an object, or even create new objects – all within the report scripting. And the best of all, our script engine performs nearly as fast as the compiled runtime execution – thanks to the full DLR integration and expression binding implemented in our scripting engine.</p>
<p>The following example demonstrates the basic usage of the scripting.</p><pre class="crayon-plain-tag">&lt;TextBlock Text="@[Invoice.ShipPostalCode + ' ' + Invoice.ShipCity + ' ' + Invoice.ShipCountry]"/&gt;
&lt;TextBlock Text="@[string.Format('{0:C2}', (Invoice.UnitPrice * Invoice.Quantity * (1-Invoice.Discount)))]"/&gt;</pre><p>In addition, the report engine also supports scripting in the report events which can be authored directly in the report document. This allows you to accomplish dynamic report authoring without requiring code compilation. The following example shows what you can do in the Printing event of a TextBlock using our C# style scripting engine.</p><pre class="crayon-plain-tag">// TextBlock_Printing(object sender, EventArgs e)
var totalAmount = Math.Ceiling([Order.Order_Details.Qty] * [Order.Order_Details.UnitPrice]);
var highestAmount = Math.Max(totalAmount, [AllOrderAmount]);

if (highestAmount &gt; [Customer.CreditLimit])
{
	e.Text = "Over limit";
	sender.Foreground = Colors.Red;
}
else
{
	e.Text = "Good";
	sender.Foreground = Colors.Black;
}</pre><p></p>
<h2>Enterprise-Grade Report Viewer</h2>
<p>Of course, the report document is useless without the viewer that can render it. In this release, ClientUI will ships a viewer that can render the report document. What makes it truly set apart is its unique capability in handling large report document without performance bottleneck, thanks to the bare-metal virtualization implementation. It employs the most advanced rendering technique that prevent application from being freezed when rendering a lot of report pages.</p>
<p>In general, report rendering can be done in two ways, which can be set easily through the LoadingMode property. By default, all of pages will be rendered when report is loaded. Then busy indicator will be shown, prevent the report viewer from being accessed, until report is completely rendered. This is the mode that implemented in most reporting solutions in the market.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/05/all1.png"><img style="display:inline;border-width:0;" title="Rendering whole report document when report is loaded" alt="Rendering whole report document when report is loaded" src="http://intersoftpt.files.wordpress.com/2013/05/all_thumb1.png" width="642" height="317" border="0" /></a></p>
<p>Freezing the report viewer while the report is being processed may sound just fine for reports with only a handful of pages. The main problem here is you may not have ideas how many pages that your report may eventually generate. It could be dozens of pages, or hundreds of pages, depending on the business data size. In this case, users will notice the significant slowness of the report generation, and worse, thinking that the application has crashed after waiting for minutes.</p>
<p>This is where our innovative background report generation comes to rescue. We invented very sophisticated techniques that allow the report generation to be done in the background, while updating the user interface without sacrificing performance. This makes the user interface truly responsive and thus translates to great user experiences. With this mode, users can view the report as soon as the first page is rendered, and scroll down as more pages are rendered in real-time. See the screenshot below.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/05/background1.png"><img style="display:inline;border-width:0;" title="Rendering report document on background" alt="Rendering report document on background" src="http://intersoftpt.files.wordpress.com/2013/05/background_thumb1.png" width="642" height="318" border="0" /></a></p>
<p>Not only displaying report from the supplied data, it&#8217;s also possible to display a report based on user input at run-time. Our ReportViewer has provide a mechanism to generate and display the parameter dialog based on the report document. It&#8217;s really not an easy task to create the parameter dialog that handle different parameter type for each report you have manually.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/05/parameter_dialog1.png"><img style="display:inline;border:0;" title="Displaying report document based on user input at run-time" alt="Displaying report document based on user input at run-time" src="http://intersoftpt.files.wordpress.com/2013/05/parameter_dialog_thumb1.png" width="642" height="317" border="0" /></a></p>
<p>As you can see in the figure above, the report viewer also implement the sophisticated viewing features already invented in ClientUI’s document viewer, such as printing, precise text selection, copy to clipboard, zooming, and searching. On the left panel, users can easily preview pages in a thumbnail form and navigate throughout the report pages. Actually the thumbnail will be rendered exactly same with the real page&#8217;s appearance. See the screenshot below.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/05/thumbnail1.png"><img style="display:inline;border-width:0;" title="Preview report pages in a thumbnail form" alt="Preview report pages in a thumbnail form" src="http://intersoftpt.files.wordpress.com/2013/05/thumbnail_thumb1.png" width="642" height="317" border="0" /></a></p>
<p>To navigate through the section in a report, you can browse it using bookmark feature in ReportViewer.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/05/bookmark.png"><img style="display:inline;border-width:0;" title="Navigate through the section in a report using bookmark" alt="Navigate through the section in a report using bookmark" src="http://intersoftpt.files.wordpress.com/2013/05/bookmark_thumb.png" width="642" height="295" border="0" /></a></p>
<p>In addition, our ReportViewer also provides a mechanism to display a report list which can be retrieved through many ways, such as directories lookup, from XML file, and etc. It also can be easily customized to overcome some specific scenario.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2013/05/report_list1.png"><img style="display:inline;border-width:0;" title="Displaying the list of available report document" alt="Displaying the list of available report document" src="http://intersoftpt.files.wordpress.com/2013/05/report_list_thumb1.png" width="642" height="317" border="0" /></a></p>
<h2>Modular and Extensible Architecture</h2>
<p>ClientUI will ship the report engine with various built-in report controls, which generally used in most of line-of-business scenarios. Unlike other reporting solutions, Intersoft reporting engine is designed with highly modular pattern, instead of being bundled in a huge code base. You only need to include what you need, so you can maintain the solutions to be lightweight. Built with extensible capability, it&#8217;s also possible for you to add a custom report control to overcome your business specific scenarios.</p>
<p>That’s all for now. Hopefully this blog post gives you a high level overview of our upcoming reporting. On the next post, I will share more interesting features, the report designer parts, and much more. Thanks for reading, and stay tuned!</p>
<p>Regards,<br />
Jack</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2013/05/clientui-reporting-is-coming-in-2013-r1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
