彩票走势图

界面开发套包WebUI 2013 R1预览之ClientUI报表控件

原创|行业资讯|编辑:郝浩|2013-07-15 14:59:59.000|阅读 369 次

概述:WebUI 2013 R1中将发布ClientUI的独立报表开发工具,这款报表控件将完全使用XAML报表引擎,还包括一个强大的C#脚步以适应最复杂最严苛的报表开发需求。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

  InterSoft把WebUI Studio Premier中Silverlight和WPF的相关控件统称为ClientUI,表明其主要用于客户端界面的开发。而在InterSoft年初发布的技术路线图中,已经明确了将在WebUI 2013 R1中发布ClientUI的独立报表开发工具,这款报表控件将完全使用XAML报表引擎,还包括一个强大的C#脚步以适应最复杂最严苛的报表开发需求。一年已经过半,我们今天就来看看这个报表控件的相关内容。

  就现在慧都独家获得的资料来看,这款报表控件很明显瞄准的是高级报表开发的市场,充分运用WebUI在Grid网格操作上的优势,具有强大的灵活性。同时WebUI一直追求的高效率也将体现在报表超快的渲染性和出色的用户体验上,相信这款报表控件将会非常实用。

基于XAML的报表引擎

  Silverlight和WPF的开发者来使用这款新的报表控件,可以说是完全不需要花精力去学习,因为它是完全使用类似XAML的报表元数据去定义的。由于这个报表控件的XAML符合Visual Studio规范,所以它也拥有VS的智能提示,属性值自动完成等功能。

  下面就是一个XAML报表文档的例子:

<ReportDocument Name="Report1" xmlns="//intersoft.reporting.com/schemas" ReportUnit="Centimeters">
	<ReportDocument.DataDefinitions>
        ...
	</ReportDocument.DataDefinitions>	
	<ReportDocument.Pages>	
		<ReportPage Name="Page1" PageHeight="29.7" PageWidth="21" Margin="1,1,1,1">
			<ReportPage.Components>				
				<HeaderBand Name="InvoiceHeader" LayoutBox="0,7.4,19,0.8">
					<HeaderBand.Components>
						<TextBlock LayoutBox="0,0,2.2,0.8" Text="Product ID" TextAlignment="Center"/>
					</HeaderBand.Components>
				</HeaderBand>

				<DataBand Name="InvoiceData" LayoutBox="0,9,19,0.8" ObjectDataSourceGuid="ab5ee58b31fd440aa34aaec8735abf29">
				...
				</DataBand>

				<FooterBand Name="InvoiceFooter" LayoutBox="0,10.6,19,0.8">
				...
				</FooterBand>			
			<ReportPage.Components>		
		</ReportPage>
	</ReportDocument.Pages>
	<ReportDocument.Styles>
        ...
	</ReportDocument.Styles>   
</ReportDocument>

  举一个简单的例子,XAML报表文件的引入让报表树中的子元素能够从特定父元素中获取值,这一功能,让能够报表更加简洁且开发效率更高。

完全客户端渲染

  数据源支持一直都是报表开发者关心的重点,InterSoft透露,这款即将发布的报表控件,从数据源的入口到像素化的报表生存渲染,都将完全运行在客户端。这意味着,它将对数据源完全没有限制,适用于任何数据源,所以无论domain service,Web服务,WCF服务,或其他任何类型的对象,都可以作为数据源连接到报表控件中。

  而且服务的独立性让报表引擎可以在客户端同时运行多个任务,这让这款控件的客户端用户体验更快,反应更迅速。更重要的是,这让部署报表变得非常简单,因为开发的报表最终就是一个XAML文件,只要将该报表上次至网站就完成了部署。

C#脚本引擎

  这款报表控件的主要特点之一就是功能强大的脚本引擎,而为了减少学习脚本语言的学习时间,确保该脚本引擎既直观又能适用于复杂的报表开发,InterSoft独创了一个适用于报表的脚本引擎,他的编写风格类似C#,支持复杂的C#风格的语句和语法,还能够访问完整的.NET库和类。不仅仅支持单行表达式,更能够实现多行语法。通过该脚本能够获取或设置对象属于,还能够创建新对象。由于脚本引擎中的完整DLR集成和表达式绑定,让脚本运行速度与编译执行速度几乎一样快。

  下面就是一个脚本用法的例子:

<TextBlock Text="@[Invoice.ShipPostalCode + ' ' + Invoice.ShipCity + ' ' + Invoice.ShipCountry]"/>
<TextBlock Text="@[string.Format('{0:C2}', (Invoice.UnitPrice * Invoice.Quantity * (1-Invoice.Discount)))]"/>

  此外,报表引擎还支持在报表事件中直接编辑脚本,这就无需编写代码,实现了动态报表。下面的例子就是在Printing事件中的脚本引擎。

// 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 > [Customer.CreditLimit])
{
	e.Text = "Over limit";
	sender.Foreground = Colors.Red;
}
else
{
	e.Text = "Good";
	sender.Foreground = Colors.Black;
}

企业级报表查看器

  这个独立的报表控件当然也会附带一个报表查看器,这款报表查看器的最大特点就是在处理大体积报表文档时完全没有性能瓶颈。由于InterSoft采用了裸机虚拟化和最先进的渲染技术,杜绝了很多其他报表开发工具在生成大量报表页时会出现程序假死的情况。

  市面上大多数报表渲染都是通过LoadingMode属性,默认情况下报表在加载的瞬间将渲染所有报表页,高级一点的报表控件会在这个时候显示LOADING状态来阻止用户的其他操作,用以防止报表浏览器和应用程序的假死状态。如下图所示。

界面开发套包WebUI 2013 R1预览之ClientUI报表控件

  但是如果渲染大量报表页的时候,还是采用这个方法的话,会造成LOADING时间也就是冻结浏览器的时间过长,这可能长达几分钟,造成非常糟糕的用户体验。

  WebUI这次将发布的报表控件就彻底解决了这一问题,创造性的发明了非常复杂的技术,允许在后台完成报表生成,在不牺牲性能的前提下,更新用户界面。这种向下滚动后实时呈现的响应方式在最近非常流行,用户体验非常优秀。如下图所示。

界面开发套包WebUI 2013 R1预览之ClientUI报表控件

  即将发布的报表浏览器还可以实时的显示用户在运行时输入的数据。它提供一个生成和显示参数对话框的机制,来实现这一需求。

界面开发套包WebUI 2013 R1预览之ClientUI报表控件

  在上图中,你还可以发现这个报表浏览器中,还包括了一些ClientUI文件浏览器的功能,如打印,精确文本选择,缩放、搜索、缩略图等。

界面开发套包WebUI 2013 R1预览之ClientUI报表控件

模块化和可扩展的架构

  这款即将推出的报表引擎将内置多款报表控件,但是由于它的模块化的设计,开发者也可以选择其中所需的部分来实现轻量化的报表开发。他强大的可扩展能力,让添加自定义的报表控件成为可能。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP