提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:我只采一朵|2017-12-08 13:29:06.000|阅读 718 次
概述:FastReport.Net中的Web报表发展迅猛,它广受欢迎,并且很符合现在开发潮流和趋势。而最近它有了一个新的功能——标签,即允许你在网页报表工具栏上创建标签。
#慧都22周年庆大促·界面/图表报表/文档/IDE/IOT/测试等千款热门软控件火热促销中>>
相关链接:
FastReport.Net中的Web报表发展迅猛,它广受欢迎,并且很符合现在开发潮流和趋势。而最近它有了一个新的功能——标签,即允许你在网页报表工具栏上创建标签。这些标签允许你在同一个窗口中打开其他报表。这样的解决方案可以方便地输出一系列相似主题或相关背景的报表。它看起来长这样:

标签呈现为按钮样式。当选择标签时,我们可以在同一个窗口中运行报表。也就是说,现在不需要每个报表都单独显示在不同的WebReport对象中。这将有助于节省页面空间,并避免网站拥堵。
我们来看一个这个如何实现该功能的例子。我使用的是MVC web项目。
我们将FastReport库添加到项目中:
· FastReport.dll;
· FastReport.Web.dll。
你可以在FastReport.Net应用程序的文件夹中找到它们。
在控制器中主页创建:报表对象、数据源和标签的实例。总而言之,这里所有的逻辑。
然后对库作出声明:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using FastReport.Web; using System.Web.UI.WebControls;
对于Index方法,编写下面的代码:
public ActionResult Index()
{
string report_path = "C:\\Program Files (x86)\\FastReports\\FastReport.Net\\Demos\\Reports\\"; //Report path
System.Data.DataSet dataSet = new System.Data.DataSet(); //Create DataSet instance
dataSet.ReadXml(report_path + "nwind.xml"); //Read XML databse
WebReport webReport = new WebReport(); //Create webReport instance
webReport.Width = Unit.Percentage(100); //Set the webReport object width 100%
webReport.Height = Unit.Percentage(100); //Set the webReport object heigh 100%
webReport.SinglePage = true; //Enable SinglePage mode
webReport.Report.RegisterData(dataSet, "NorthWind"); //Register data source in the webReport object
webReport.Report.Load(report_path + "Simple List.frx"); //Load a report into the webReport object
webReport.CurrentTab.Name = "Simple List"; //Set the current tab name
Report report2 = new Report(); //Create a Report instance which will be displayed in the second tab
report2.RegisterData(dataSet, "NorthWind"); //Register data source in the report object
report2.Load(report_path + "Labels.frx"); //Load a report into the report object
webReport.AddTab(report2, "Labels").Properties.SinglePage=true; //Add web tab in the webReport object. Pass as parameters report object and tab name. Enable SinglePage mode for the tab.
Report report3 = new Report(); //Create a Report instance which will be displayed in the third tab
report3.RegisterData(dataSet, "NorthWind");//Register data source in the report object
report3.Load(report_path + "Master-Detail.frx");//Load a report into the report object
webReport.AddTab(report3, "Master-Detail");//Add web tab in the webReport object. Pass as parameters report object and tab name.
webReport.TabPosition = TabPosition.InsideToolbar;//Set the property TabPosition
ViewBag.WebReport = webReport; //Set the ViewBag as webReport
return View();
}
还有一个有意思的属性:
webReport.ShowTabCloseButton
如果将其设置为true,则标签上将会显示一个“X”,可以用来删除标签。
这个标签在交互式报表中非常有用,标签将被动态创建并包含详细的报表。如果不需要某个报表,你就可以关闭它的标签。然后,如有必要,你可以再次生成标签。
上面我们讲解了如何创建标签,向他们发送报表。我们使用的方法是:
public ReportTab AddTab(Report report, string name);
我们将报表对象和标签的名称作为多个参数传递。然而,你也可以使用一个参数搞定:
public ReportTab AddTab(Report report);
我们只传递报表对象。标签名称将自动生成。这将会作为标签编号。
你还可以将已建好的报表发送到web报表的标签中:
public ReportTab AddTab(Report report, string name, bool reportDone);
在这里,我们提交一个报表、一个标签名称和一个属性,指出报表是否应该预先建立。你可以将已经构建好的报表文件上传到报表对象中,并将最后一个参数设置为true。然后报表将从指定的fpx文件中加载。
看起来差不多会是这个样子:
Report report2 = new Report(); //Create a Report instance which will be displayed in the second tab
report2.RegisterData(dataSet, "NorthWind"); //Register data source in the report object
report2.Load(report_path + "Labels.frx"); //Load a report into the report object
report2.Prepare();//Prepare the report
string s = this.Server.MapPath("~/App_Data/Prepared.fpx");//Set the location to save prepared report
report2.SavePrepared(s);//Save prepared report
Report firstReport = new Report();//Create instance of Report object
firstReport.LoadPrepared(s);//Upload prepared report to the Report object
webReport.AddTab(firstReport, "First tab", true);//Add the tab to the WebReport toolbar
我展示了如何将准备好的报表保存到文件中,然后加载它并在“Web报表”标签中使用它。
我们切换到视图。在Views-> Home文件夹中,打开Index.cshtml文件。
所有的页面代码由以下四行组成:
@{
ViewBag.Title = "Home Page";
}
@ViewBag.WebReport.GetHtml()
最后一行是报表输出。主控制器会向页面发送一个报表。
在视图_Layout.cshtml(在Views - >Shared文件夹中)的初始化中为Web报表添加脚本:
<head> … @WebReportGlobals.Scripts() @WebReportGlobals.Styles() … </head>
编辑位于Views文件夹中的Web.config,添加命名空间:
<namespaces> … <add namespace="FastReport" /> <add namespace="FastReport.Web" /> </namespaces>
编辑位于项目根目录中的Web.config,添加处理程序:
<handlers> … <add name="FastReportHandler" path="FastReport.Export.axd" verb="*" type="FastReport.Web.Handlers.WebExport"/> </handlers>

毫无疑问,在Web报表中添加标签的新功能是非常实用的,并且是符合用户需求的。Web报表的功能正在逐渐增加。在不久的将来,Web报表将变得丝毫不逊色于桌面(desktop)报表。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@hmdbvip.cn



在嵌入式软件测试领域,对交叉编译代码进行单元测试是一大挑战。Parasoft C/C++test作为专业的C/C++测试工具,能够与劳特巴赫Trace32调试器深度集成。下面会详细介绍如何在C++test中配置Trace32调试器,实现对PowerPC架构程序的单元测试,涵盖环境设置、项目导入到测试执行的全过程。
本文将为大家介绍如何使用DevExpress WinForms数据网格控件实现摘要文本的格式化,欢迎下载最新版组件体验!
Parasoft C/C++test作为一款功能强大的自动化测试工具,为嵌入式开发提供了全面的测试解决方案。特别是在CCS开发环境中,C++test能够无缝集成,为F2812等DSP项目提供专业的单元测试支持。下面将介绍如何在CCS3环境下配置和使用C++test进行F2812项目的单元测试。
在嵌入式开发中,尤其是基于ARM架构的安全关键领域,单元测试是验证代码在目标硬件上运行时行为正确性的关键环节,对于保障最终产品的可靠性至关重要。下面将介绍如何利用Parasoft C/C++test开展单元测试,包括配置、执行及解决可能遇到的许可证问题,完成从静态检查到动态运行的完整测试闭环。
相关产品
用于快速高效地生成报表的附加组件
FastScriptFastScript是一个跨平台的多语言脚本引擎,帮助开发者在他们的应用程序中增加脚本功能。
FastCube VCLFASTCUBE VCL是一款有效的数据分析工具
FastReport .Net一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案。
FastQueryBuilderFastQueryBuilder是一款简单实用的可视SQL请求软件开发包。它与本地CS数据库兼容。
最新文章 MORE
永利最大(官方)网站相关的文章 MORE
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@hmdbvip.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
永利最大(官方)网站 