报表配置小培训
报表名词
-
任务
-
版本
-
页签
-
数据域
-
数据模型
-
报表实例
一个报表任务可以有多个 版本
一个报表中可以有多个 页签
一个页签中可以有多个 数据域 多个数据模型
一个数据域对应一个 数据模型
一个报表任务可以生成多个 报表实例
数据域类型
-
行变动报表
行数不固定 数据模型查出来多少行就渲染多少行
-
固定报表
预先知道有多少行 一般可提前配好第一列
报表实例
例如 月度报表:一个月的报表就为一个实例
最终生成对应年月的报表 我们会转储为ssjson格式的文件保存
数据模型
我们通过在相应表中配置指定的SQL语句 和 动态查询条件 即可实现数据查询
根据数据模型使用情况,目前已迭代了以下功能:
1.结果集查询;
2.动态查询条件;
3.结果集分页;
4.具有公式计算的结果集查询(含自定义公式计算、小计、合计、同比、环比);
5.登陆信息自动赋值;
原理:
前端调用接口 /ygei/mapp/datamodel/datamodelDef/getCommonModelQuery
JSONObject param = new JSONObject(); param.put("modelCode", datamodel); param.put("paramStr", params.toJSONString()); param.put("responseType", "String"); String url = "/ygei/mapp/datamodel/datamodelDef/getCommonModelQuery"; Result result = ygeiMappService.doPost(url, param, Result.class);
接口参数:
modelCode 模型Code,对应t_ny_bi_ads_datamodel_def表中的modelCode字段 paramStr 模型sql参数,json格式字符串 responseType 接口返回值类型,一般为"String"
t_ny_bi_ads_datamodel_def modelSql 可配置固定传参或动态参数 如:
select someColumn from table t where t.tenantId = :LOGIN_TENANTID and t.compId = :LOGIN_COMPID and t.someCoulmn = :param1 |~param2~|
t_ny_report_datafield_def datafieldJson 配置json格式动态参数
{"conditions":{"param2":" and t.column = (:param2)}}
报表配置顺序
1.t_ny_bi_ads_datamodel_def 中填写数据模型SQL
2.t_ny_bi_ads_datamodel_col_info 中填写相应字段信息
3.前端配置报表 --> 引用数据模型 --> 生成报表
相关表及关键字段
表名 | 关键字段 |
---|---|
t_ny_report_task | 报表任务 objId 报表任务ID taskName 报表名称 |
t_ny_report_info | 报表信息-页签 reportName 页签名 reportTaskId报表任务ID |
t_ny_report_formats | 页签版本 reportId页签id reportTaskId 报表任务ID reportFileId 报表文件存储的ssjson位置 |
t_ny_report_datafield_model | 数据域 FREPFORMATID 页签版本id datafieldCode数据域编码(自动生成) datamodeId数据模型id |
t_ny_report_datafield_def | 数据域配置信息 FREPFORMATID 页签版本id datafieldCode数据域编码 datafieldArea数据域区域 datafieldJson动态配置 |
t_ny_bi_ads_datamodel_def | 数据模型 modelName模型名称 modelSql模型sql modelCode 模型code |
t_ny_bi_ads_datamodel_col_info | 模型字段信息 modelId模型id fieldName数据模型中最终输出结果集的select的字段,如t.columncol ShowName 字段中文名称colShowNameAs 字段别明, 如t.column as Column中的asColumn |
t_ny_report_task_case | 报表实例表 datestr业务时间戳(报表实例时间) reportTaskId报表任务ID reportFileId报表实例文件ID |
t_ny_report_file | 报表文件表 reportCaseId 实例表id reportDataPath实例存储位置 |
t_ny_report_celldef | 单元格映射表 FREPFORMATID页签版本id FFIELDNAME对应报表数据明细表字段名 displayName单元格展示名 cellName单元格别名 |
t_ny_report_datadetail | 报表数据明细表 FREPFORMATID页签版本id datafieldCode数据域 f1-f100 单元格值 n1-n100 |
模型SQL配置讲解
t_ny_report_task objId=ebb4e034ffd74297ac26b07ae84cafe6
t_ny_report_info reportTaskId=ebb4e034ffd74297ac26b07ae84cafe6
t_ny_report_formats reportId=57364ae7343a4d6588aeeeb7d929b78b
手动配置:
t_ny_bi_ads_datamodel_def modelCode= JSD_PFC JSD_PFC_CYSY
t_ny_bi_ads_datamodel_col_info modelId=JSD_PFC_BW JSD_PFC_BW_CYSY
t_ny_report_datafield_model FREPFORMATID=b74ef687a3424a17b6142e6c53570c8e
t_ny_report_datafield_def FREPFORMATID=b74ef687a3424a17b6142e6c53570c8e
t_ny_report_file reportTaskId=ebb4e034ffd74297ac26b07ae84cafe6
渲染报错 易错点
t_ny_bi_ads_datamodel_def 中modelSql最终select查询字段别名
和t_ny_bi_ads_datamodel_col_info中的colShowNameAs大小写不一致
t_ny_bi_ads_datamodel_def 中modelSql固定参数大小写 如:
– :date 年月
– :LOGIN_COMPID 单位
– :LOGIN_TENANTID 租户id