C/S架构软件开发平台 - 旗舰版V6.0 - 用户自定义配置报表
C/S架构软件开发平台 - 旗舰版V6.0 - 用户自定义配置报表
目录
CSFrameworkV6旗舰版开发框架提供两种报表场景:
1、开发者配置
开发人员根据用户需求定制各种复杂报表,比如主从表、图片数据报表、复杂业务数据报表。
特点:
- 由开发人员编写程序开发的报表;
- 硬编码,需要根据业务需求编写代码来实现报表;
- 适合开发业务复杂的报表;
- 升级报表、修改报表需要发布版本给用户升降;
2、实施人员配置
实施人员在生产现场可实时配置各种报表,比如较简单的单表报表。
特点:
- 实施人员使用;
- 不需要编写任何代码;
- 适合配置较简单的单表数据源报表。
3、销售订单提供Demo
1、开发者配置 - 【打印】按钮(复杂报表)
2、实施人员配置报表 - List 数据源报表Demo
点按钮打开报表窗体,代码参考:
C#全选
private void btnReportDemoByList_Click(object sender, EventArgs e)
{
//Demo1:传入List<T>数据源
var list = gvSummary.GetDataSource<res_SO>();
var row = gvSummary.GetRow<res_SO>();
frmUserCustomReport.ExecuteByList(this.GetType().FullName, list,
(report, reportData) =>
{
report.SetParameterValue("pSONO", row.SONO);//设置报表参数
report.SetParameterValue("ProductCode", "BOX");//设置报表参数
//if (reportData.ReportTitle == "带参数报表")
//{
// report.SetParameterValue("pSONO", row.SONO);//设置报表参数
//}
});
}
3、实施人员配置报表 - DataTable 数据源报表Demo
点按钮打开报表窗体,代码参考:
C#全选
private void btnReportDemoByDataTable_Click(object sender, EventArgs e)
{
//Demo2: 传入DataTable数据源
var list = gvSummary.GetDataSource<res_SO>();
var row = gvSummary.GetRow<res_SO>();
//DataTable数据源
DataTable dt = list.ToDataTable();
frmUserCustomReport.ExecuteByDataTable(this.GetType().FullName, dt,
(report, reportData) =>
{
report.SetParameterValue("pSONO", row.SONO);//设置报表参数
report.SetParameterValue("ProductCode", "BOX");//设置报表参数
//if (reportData.ReportTitle == "带参数报表")
//{
// report.SetParameterValue("pSONO", row.SONO);//设置报表参数
//}
});
}
4、新增报表
模拟实施人员添加新的报表。点【新增报表】按钮:
- 拥有者:报表所属业务名称,或功能窗体名称。
- 报表编号:系统自动生成的唯一序号。
- 报表源:报表数据来源,开发框架提供2个报表源:业务账套库、系统数据库。
- 报表标题:报表名称、报表标题。
- 报表文件名:FastReport.Net报表文件名称。
- 表名/别名:数据源表名、别名。作为报表模板内定义标签的标识,如:[M.CustomerName],M即为表名或别名
- 版本:系统自动生成的唯一序号。
- 报表序号:一个业务功能可能有多个用户自定义报表,作为排序使用。
- 自定义SQL查询报表:如勾选,表示当前报表采用自定义SQL查询作为报表数据源。特点:不需要注册数据源(Report.RegisterData方法)
- 自定义SQL查询报表(带参数):如勾选,表示当前报表采用自定义SQL查询(并且指定1个或多个参数)作为报表数据源。特点:不需要注册数据源(Report.RegisterData方法)
5、设计报表
在报表清单选择一个报表项,点【报表设计】按钮:
展开 NewReport 报表数据源,拖拽字段到报表区域:
报表设计完成,点工具栏【保存】按钮,保存报表到数据库。
关闭报表设计器,点【预览】按钮。
四、CSFrameworkV6集成报表配置(2024新功能)
4.1、CSFrameworkV6_Normal数据sys_Reports表增加6个字段
4.2、sys_Reports 模型增加对应的6个属性
C#全选
/// <summary>
/// 报表拥有者(NS=namespace,使用命名空间全称标识)
/// </summary>
public System.String OwnerFormNS { get; set; }
/// <summary>
/// 报表数据源账套类型。分为:系统数据库、业务账套库
/// </summary>
public System.String DataSourceType { get; set; }
/// <summary>
/// 表名。对应报表模板使用的表名,如:[tb_Customer.CustomerCode],tb_Customer既表名。<br>
/// 默认为当前数据源的表名或实体模型名称。
/// </summary>
public string TableName { get; set; }
/// <summary>
/// 用户自定义报表(实施人员)
/// </summary>
public System.String FlagUserCustom { get; set; }
/// <summary>
/// 标记该报表是用户自定义Sql查询报表
/// </summary>
public System.String FlagSqlQuery { get; set; }
/// <summary>
/// 标记该报表是用户自定义Sql查询报表,并且带有一个固定参数
/// </summary>
public System.String FlagSqlParam { get; set; }
4.3、调用通用自定义报表窗体
参考frmSO窗体的2个按钮事件:
4.4、报表模块增加2个窗体
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
CSFrameworkV6 C/S框架网