提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:杨鹏连|2021-02-22 09:55:58.787|阅读 271 次
概述:在本章中,我们将学习FastReport中使用报表的原则。我们还将仔细介绍配置FastReport.Net对话框。
#慧都22周年庆大促·界面/图表报表/文档/IDE/IOT/测试等千款热门软控件火热促销中>>
相关链接:
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折起!赶紧加入购物清单吧!
替换 "打开 "和 "保存 "对话框
如果您决定将报表存储在数据库中,您可能需要改变设计器,使其能够从/向数据库打开和保存报表。也就是说,你需要用你自己的对话框来代替标准的 "打开 "和 "保存 "对话框。要做到这一点,请使用EnvironmentSettings组件(见上一节)。该组件有以下事件。
CustomOpenDialog
发生在报表设计器即将显示 "打开 "对话框时。在事件处理程序中,您必须显示一个对话框窗口以允许用户选择一个报表文件。如果对话框成功执行,必须返回e.Cancel = false,并将e.FileName设置为所选文件名。
下面的例子演示了如何使用这个事件。
private void CustomOpenDialog_Handler(
Object sender, OpenSaveDialogEventArgs e)
{
using (OpenFileDialog dialog = new OpenFileDialog())
{
dialog.Filter = "Report files (*.frx)|*.frx"。
// 如果对话框中的 "报告文件",则将e.Cancel设置为false
// 已成功执行
e.Cancel = dialog.ShowDialog() != DialogResult.OK。
//将e.FileName设置为选定的文件名。
e.FileName = dialog.FileName。
}
}
自定义保存对话框
发生在报表设计器即将显示 "保存 "对话框时。在事件处理程序中,您必须显示一个对话框窗口以允许用户选择一个报表文件。如果对话框成功执行,必须返回e.Cancel = false,并将e.FileName设置为所选文件名。
下面的例子演示了如何使用这个事件。
private void CustomSaveDialog_Handler(
Object sender, OpenSaveDialogEventArgs e)
{
using (SaveFileDialog dialog = new SaveFileDialog())
{
dialog.Filter = "Report files (*.frx)|*.frx";
//从e.FileName中获取默认文件名。
dialog.FileName = e.FileName;
// 如果 dialog.FileName = e.FileName;
// 如果 dialog.FileName = e.Cancel,则设置 e.Cancel 为 false
e.Cancel = dialog.ShowDialog() != DialogResult.OK;
//将e.FileName设置为选定的文件名。
e.FileName = dialog.FileName;
}
}
自定义打开报告
发生在报表设计器即将加载报表时。在事件处理程序中,您必须从 e.FileName 属性中指定的位置加载 e.Report 属性中指定的报表。后一个属性包含 CustomOpenDialog 事件处理程序返回的名称。它可能是文件名、数据库键值等。
下面的示例演示了如何使用该事件:
private void CustomOpenReport_Handler(
Object sender, OpenSaveReportEventArgs e)
{
//从给定的e.FileName中加载报告。
e.Report.Load(e.FileName);
}
自定义保存报告
发生在报表设计器准备保存报表时。在事件处理程序中,您必须将 e.Report 属性中指定的报告保存到 e.FileName 属性中指定的位置。后一个属性包含 CustomSaveDialog 事件处理程序返回的名称。它可能是文件名、数据库键值等。
下面的示例演示了如何使用该事件。
private void CustomSaveReport_Handler(
Object sender, OpenSaveReportEventArgs e)
{
// 将报告保存到给定的e.FileName中。
e.Report.Save(e.FileName);
}
替换标准进度窗口
在进行以下操作时,会显示进度窗口。
StartProgress
在操作前发生一次。在这种情况下,你必须创建自己的进度窗口并显示它。
进度
每次处理当前报表页时发生。在这种情况下,您必须在窗口中显示进度状态。
FinishProgress
操作后发生一次。在这个事件中,你必须销毁进度窗口。
Progress事件的参数为ProgressEventArgs类型。它有以下几个参数属性。
string Message | 消息文本
int Progress | 当前处理的报告页的索引。
int Total | 报告的总页数。当准备一个报告时,这个参数可能为0,因为总页数是未知的。
在大多数情况下,您需要在 Progress 事件处理程序中显示来自 e.Message 属性的文本。如果你想显示一个进度条,其他参数可能会很有用。
传递自己的连接字符串
如果您使用在报表中定义的数据源,您可能需要向报表传递应用程序定义的连接字符串。这可以通过三种方法来完成。
第一种方法:你直接将连接字符串传递给报表中的Connection对象。
执行以下操作。
report1.Load(...);
//在加载报表之后,运行报表之前进行操作
//假设我们在报告中只有一个连接
report1.Dictionary.Connections[0].ConnectionString = my_connection_string;
report1.Show();
第二种方法:你用报告参数传递一个连接字符串。执行以下操作。
[M yParam eter]
report1.SetParameterValue("MyParameter", my_connection_string);
第三种方法:使用EnvironmentSettings组件的DatabaseLogin事件(参见 "配置FastReport.Net环境 "部分)。该事件在每次FastReport打开连接时发生。下面是这个事件处理程序的一个例子。
private void environmentSettings1_DatabaseLogin(
Object sender, DatabaseLoginEventArgs e)
{
e.ConnectionString = my_connection_string;
}
请记住,DatabaseLogin事件是全局的,它适用于所有报表。
传递自定义SQL
报表可能包含使用数据向导添加的数据源(通过 "数据|添加数据源... "菜单)。有时需要从您的应用程序向该数据源传递自定义SQL。要做到这一点,请使用以下代码。
using FastReport.Data.Report1.Load(...)
report1.Load(...);
//在加载报表之后,运行报表之前进行操作
// 通过表的别名找到表
TableDataSource table = report1.GetDataSource("MyTable") as TableDataSource.SelectCommand = "new SQL text";
table.SelectCommand = "new SQL text";
report1.Show();
对报表对象的引用
当您将报表作为一个类来使用时(请参阅 "存储报表和加载报表 "部分),您可以直接引用报表对象。下面的例子演示了如何改变报表中包含的 "Text1 "对象的字体。
SimpleListReport report = new SimpleListReport();
report.Text1.Font = new Font("Arial", 12);
在其他情况下,如果需要获取一个对象的引用,必须使用Report对象的FindObject方法。
TextObject text1 = report1.FindObject("Text1") as TextObject;
text1.Font = new Font("Arial", 12);
要引用报表中定义的数据源,使用Report对象的GetDataSource方法。该方法将数据源的别名作为参数。
DataSourceBase ds = report1.GetDataSource("Products");
还想要更多吗?您可以点击阅读【FastReport 报表2020最新资源盘点】,查找需要的教程资源。让人兴奋的是FastReport .NET正在慧都网火热销售中!低至3701元起!>>查看价格详情
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@hmdbvip.cn
文章转载自:



在现代软件开发过程中,自动化单元测试是确保代码质量与可靠性的关键环节。尤其对于特定框架(如MFC)的代码,测试复杂度显著增加,常因依赖外部资源或交互操作而难以在静默环境中顺利执行。Parasoft C/C++test作为专业的软件测试工具,致力于帮助开发团队高效实施自动化测试,通过其强大的桩函数功能,能够有效模拟依赖组件的行为,从而实现对复杂逻辑的隔离测试。
本文将为大家介绍如何在MyEclipse中使用XDoclet开发EJB 2 Session Bean,欢迎下载最新版体验!
如果能将 CSV 自动转换为 PDF ,就能快速生成清晰、美观的报表,既节省手动排版时间,又能保持数据的专业呈现。本文将介绍如何使用 Spire.XLS for Java 实现这一过程——从加载 CSV 到输出高质量 PDF,仅需数行代码即可完成。
Parasoft C/C++test是一款专为C/C++代码设计的自动化测试工具,通过静态代码分析、单元测试和运行时错误检测等功能,帮助开发团队在早期发现并修复缺陷,提升代码质量和开发效率 。在实际使用中,尤其是在VC6此类旧版开发环境中执行单元测试时,可能会因环境兼容性问题触发链接错误。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@hmdbvip.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
永利最大(官方)网站