C/S开发框架支持加载数据库的FastReport.NET报表模板文件 - 功能升级
C/S开发框架支持加载数据库的FastReport.NET报表模板文件 - 功能升级
应多个用户要求,将本地FastReport报表模板文件改为存储到数据库,现已开发完成,请看详细介绍:
1. 系统管理模板增加【报表管理】功能按钮。

2. 点击【报表管理】按钮打开功能界面

3. 【报表管理】资料编辑界面

4. 【报表管理】功能界面 - 上传、设计报表功能

5. 加载本地报表模板文件的使用方法
以前使用的加载本地报表文件的写法,报表模板文件在debug\reports子目录下
C# Code:
#region 方法1:加载本地报表文件写法
//打印主从表数据
string file = Application.StartupPath + @"\Reports\rptSO.frx";
Report rptSO = new Report();
rptSO.Load(file);//加载报表模板文件
#endregion
//来源:C/S框架网 | www.csframework.com | QQ:23404761
//打印主从表数据
string file = Application.StartupPath + @"\Reports\rptSO.frx";
Report rptSO = new Report();
rptSO.Load(file);//加载报表模板文件
#endregion
//来源:C/S框架网 | www.csframework.com | QQ:23404761
6. 加载数据库存储的报表模板文件的使用方法
C# Code:
#region 方法2:加载数据库的报表模板
CSFrameworkV5.Business.bllReports rpt = new bllReports();
byte[] bs = rpt.GetReportData("rptSO.frx");
if (bs == null || bs.Length == 0) throw new Exception("没有报表模板数据!");
//写入到临时文件
string tmpfile = Path.Combine(Application.StartupPath + "\\Reports", DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".frx");
File.WriteAllBytes(tmpfile, bs);
Report rptSO = new Report();
rptSO.Load(tmpfile);//加载报表模板文件
File.Delete(tmpfile);//删除临时文件
#endregion
//来源:C/S框架网 | www.csframework.com | QQ:23404761
CSFrameworkV5.Business.bllReports rpt = new bllReports();
byte[] bs = rpt.GetReportData("rptSO.frx");
if (bs == null || bs.Length == 0) throw new Exception("没有报表模板数据!");
//写入到临时文件
string tmpfile = Path.Combine(Application.StartupPath + "\\Reports", DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".frx");
File.WriteAllBytes(tmpfile, bs);
Report rptSO = new Report();
rptSO.Load(tmpfile);//加载报表模板文件
File.Delete(tmpfile);//删除临时文件
#endregion
//来源:C/S框架网 | www.csframework.com | QQ:23404761
7. 测试

7. 本次改动及升级步骤
7.1 系统数据库增加 sys_Reports表
7.2 frm, bll, dal, model 源码
7.3 CSFrameworkV5.Library.ReportLib.cs文件添加一个类
C# Code:
public class ReportLib
{
public static void DesignReport(string file, bool isCreateNew)
{
Report rpt = new Report();
if (isCreateNew)
rpt.Design(true);
else
{
rpt.Load(file);
rpt.Design(true);
}
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
{
public static void DesignReport(string file, bool isCreateNew)
{
Report rpt = new Report();
if (isCreateNew)
rpt.Design(true);
else
{
rpt.Load(file);
rpt.Design(true);
}
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
8. Bug修改记录 - 20201022
8.1 报表目录下产生过多的临时文件;
8.2 修改报表后没有更新报表数据;
设计报表按钮的Click事件的源码:
C# Code:
//设计报表
private void btnDesign_Click(object sender, EventArgs e)
{
string tmpFile = "";
try
{
byte[] bs = (byte[])_BLLInstance.DataBinderRow[sys_Reports.Data];
if (bs == null) bs = new byte[] { };
//写入到临时文件
tmpFile = Path.Combine(Application.StartupPath + "\\Reports", DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".frx");
File.WriteAllBytes(tmpFile, bs);
//打开报表设计器
ReportLib.DesignReport(tmpFile, bs.Length == 0);
//保存报表数据
_BLLInstance.DataBinderRow[sys_Reports.Data] = File.ReadAllBytes(tmpFile);
}
catch (Exception ex)
{
Msg.Warning(ex.Message);
}
//删除临时文件
if (File.Exists(tmpFile)) File.Delete(tmpFile);
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
private void btnDesign_Click(object sender, EventArgs e)
{
string tmpFile = "";
try
{
byte[] bs = (byte[])_BLLInstance.DataBinderRow[sys_Reports.Data];
if (bs == null) bs = new byte[] { };
//写入到临时文件
tmpFile = Path.Combine(Application.StartupPath + "\\Reports", DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".frx");
File.WriteAllBytes(tmpFile, bs);
//打开报表设计器
ReportLib.DesignReport(tmpFile, bs.Length == 0);
//保存报表数据
_BLLInstance.DataBinderRow[sys_Reports.Data] = File.ReadAllBytes(tmpFile);
}
catch (Exception ex)
{
Msg.Warning(ex.Message);
}
//删除临时文件
if (File.Exists(tmpFile)) File.Delete(tmpFile);
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
注:本次升级仅适用企业版v4.x、旗舰版v5.x用户!!!

VIP用户下载源码:
参考文档:
使用Winform代码生成器生成FastReport.NET报表模板文件(frx文件)
FastReport.NET2023 报表设计器|FastReport教程|C/S开发框架
FastReport.NET2023报表数据源配置详解|C/S开发框架
FastReport.NET v2021 打印动态图片报表 | 软件开发平台
FastReport.NET 动态创建报表FastReport.Report实例绑定List 数据源
C# FastReport.NET批量打印条形码报表详解教程-C/S开发框架
C# FastReport.NET批量打印条形码报表详解教程
解决方案:FastReport.NET导出Excel文件单元格的数据空白
运行时动态设计FastReport.Net报表另一种处理方式
FastReport.NET自动文本宽度+自动换行+自动行高|C/S开发框架
FastReport.NET2023破解版去除水印DEMO VERSION (2025.1.14/2023.2.18版本)|C/S开发框架
C/S架构软件开发平台旗舰版V6.0 | 使用FastReport.NET制作二维码报表|C/S开发框架
FastReport.NET 2023使用DataTable报表数据源配置JsonDataSourceConnection连接|C/S开发框架
FastReport.NET 2023使用DataTable报表数据源配置MsSqlDataConnection连接|C/S开发框架
FastReport.NET 设置数字显示格式(Format)设置单价金额小数位
喜鹊ERP | FastReport.NET报表实施与开发操作指引|C/S开发框架
使用Winform代码生成器生成FastReport.NET报表模板文件(frx文件)
FastReport.NET2023 报表设计器|FastReport教程|C/S开发框架
FastReport.NET2023报表数据源配置详解|C/S开发框架
FastReport.NET v2021 打印动态图片报表 | 软件开发平台
FastReport.NET 动态创建报表FastReport.Report实例绑定List 数据源
C# FastReport.NET批量打印条形码报表详解教程-C/S开发框架
C# FastReport.NET批量打印条形码报表详解教程
解决方案:FastReport.NET导出Excel文件单元格的数据空白
运行时动态设计FastReport.Net报表另一种处理方式
FastReport.NET自动文本宽度+自动换行+自动行高|C/S开发框架
FastReport.NET2023破解版去除水印DEMO VERSION (2025.1.14/2023.2.18版本)|C/S开发框架
C/S架构软件开发平台旗舰版V6.0 | 使用FastReport.NET制作二维码报表|C/S开发框架
FastReport.NET 2023使用DataTable报表数据源配置JsonDataSourceConnection连接|C/S开发框架
FastReport.NET 2023使用DataTable报表数据源配置MsSqlDataConnection连接|C/S开发框架
FastReport.NET 设置数字显示格式(Format)设置单价金额小数位
喜鹊ERP | FastReport.NET报表实施与开发操作指引|C/S开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服

(VIP会员下载)