提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:杨鹏连|2021-04-01 11:39:23.180|阅读 147 次
概述:有时需要在另一个报告中使用一部分报告。在简单的情况下,您可以使用报表继承来执行此操作。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
FastReport .Net是适用于Windows Forms,ASP.NET,MVC和.NET Core的全功能解决方案。它可以在Microsoft Visual Studio 2005-2019中使用。支持.Net Framework 2.0-4.x,.NET Core 3.0及以上版本。
在FastReport .NET 2021.1的新版本中,我们实现了对.NET 5的支持。添加了新条形码-Deutsce Post Leitcode。将RTF转换为报告对象的算法已得到显着改进。并且还添加了用于转换数字的新功能。欢迎下载体验。(点击下方按钮下载)
立即点击下载FastReport.NET v2021.1最新版
Fastreport.NET在线购买价更低,专享85折起!赶紧加入购物清单吧!
有时需要在另一个报告中使用一部分报告。在简单的情况下,您可以使用报表继承来执行此操作。
例如,在某些情况下,所有报告都有共同的元素(公司徽标,签名等)。然后,可以将这些对象移至父报表,并在创建子报表时将其自动复制。因此,您无需每次都手动复制它们,从而大大简化并加速了新报告的创建。此外,如果您更改了父报表中的某些内容,这些更改也将反映在所有子报表中。
但是,报告继承有许多限制。在某些情况下,一个报告只有一个“父”报告,而使一个“父”报告成为完全不同的报告变得很有必要。似乎可以更改BaseReport属性,但不幸的是,它无法解决。
但是,可以通过一种奇妙的方式解决此问题-通过将一个报告代码中的带替换为另一个报告中的带。
假设有一个基准报告(base.frx),并且需要将其范围复制到子报告(child.frx)。您需要用“ Data1”名称替换PageHeader,PageFooter和DataBand。以下代码示例假定两个报告都位于C驱动器的根文件夹中。
首先,您需要下载两个报告:
Report base = new Report(); base.Load(@"C:\base.frx"); Report child = new Report(); child.Load(@"C:\child.frx");下一步是从两个报告中获取页面。知道页面名称很重要。下面的示例假定两个报告中的页面名称均为“ Page1”:
ReportPage basePage = base.FindObject("Page1") as ReportPage; ReportPage childPage = child.FindObject("Page1") as ReportPage;如果您不知道页面名称,则可以从索引中获取它们。例如,进一步,我们可以访问两个报告的第一页:
ReportPage basePage = baseReport.Pages[0] as ReportPage; ReportPage childPage = childReport.Pages[0] as ReportPage;这两个选项都是合适的,并且会导致相同的结果。
现在,您可以替换PageHeader和 PageFooter。很简单:
childPage.PageHeader = basePage.PageHeader; childPage.PageFooter = basePage.PageFooter;这些行复制具有所有属性和设置的两个波段。此外,位于它们上面的所有对象都将被复制,并且属性不会丢失。
接下来,将DataBand替换为“ Data1”名称:
DataBand baseBand = basePage.FindObject("Data1") as DataBand; DataBand childBand = childPage.FindObject("Data1") as DataBand; // необходимо получить индекс Data1 в дочернем отчете int childBandIndex = childPage.Bands.IndexOf(childBand); // теперь его можно удалить childPage.Bands.Remove(childBand); // и вставить на его место бэнд из базового отчета childPage.Bands.Insert(bandIndex, baseBand);最后,将复制具有所有属性和子对象的波段,并传输与负责DataSource属性的数据源的绑定。没有此绑定,波段将无法正常工作,也不会从数据库输出数据。
我们只需要复制数据源。可以使用以下代码段完成此操作:
for (int i = 0; i < baseReport.Dictionary.DataSources.Count; i++) { childReport.Dictionary.DataSources.Add(baseReport.Dictionary.DataSources[i]); }因此,所有数据源均已复制。如果没有必要,则只能克隆所需的克隆。
而已。几十行代码行使将带和对象从一个报告复制到另一个报告成为可能。如果乐队中有很多对象,那么与设计师复制它们会很漫长而乏味,并且从头开始创建它们会花费更长的时间。
当然,如果在此示例中基线报告仅复制了条带,则可以通过简单地复制和粘贴报告文件来更轻松地执行此任务。撇开笑话,您可以在不需要新报告中所有波段的情况下,使用此方法从一个集合中复制一个或多个波段。或者,您可以从一个报表中获取页眉,从另一个报表中获取数据带,并从第三个报表中获取页脚。
还想要更多吗?您可以点击阅读【FastReport 报表2020最新资源盘点】,查找需要的教程资源。让人兴奋的是FastReport .NET正在慧都网火热销售中!低至3701元起!>>查看价格详情
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢