报表开发步骤
报表开发步骤
1.什么是报表?
例如从两张表里面查出数据,查出来的这个数据不需要存数据库,只需要把这些数据查出来,然后展示出来。
2.报表的两种开发方法
开发方法1(不用代码)
报表开发的位置:动态建模平台 --> 报表平台
首先在:语义模型 --> 语义模型-全局(最高) 或 语义模型- 集团(第二高)
语义模型:存报表的sql语句和字段名等信息,相当于报表的后端
- 新建办公费预算明细表语义模型













然后在:自由报表 --> 自由报表-全局(最高) 或 自由报表-集团(第二高)
自由报表:用于画报表的结构,相当于报表的前端
- 新建办公费预算明细表自由报表











注意:组织类型得选业务单元,不可以是全局


分配权限


重新登录一下客户端

添加插件类




nc.itf.jgxc.report.newcont.INewContReport
两种设置查询条件的查询方法:
- 用它自带的查询模板
- 创建查询模板
1.用它自带的查询模板








2.创建查询模板的方法配置





分配节点


这个地方的节点标识应该不填,而不应该是qt,如果填qt的话加额外的代码处理会报错;资产层次这个地方应改是水平,而不应该是平台
(功能节点默认模板设置中新加的在pub_systemplate_base这个表里面)





开发方法2(用代码)



下面的代码拿过来直接用就行
nc.pub.smart.context.SmartContext context = getContext();String sql = nc.bs.framework.common.NCLocator.getInstance().lookup(nc.ift.wgbfb.report.bgmxys.IBgmxysReport.class).getBgmxysReportSql(context);setResultSQL(sql);
除了接口类名以外,方法名也要改为对应的方法名,不然编译会不通过

upm注册

代码逻辑:(生成一个临时表,然后展示)
这一步是生成一个空的临时表,往里面插数据,然后查询临时表

创建临时表

对应临时表里的类型


查数据

获取查询模板上传过来的数据(多选数组类型,单选不是数组类型)

从查询模板上选的数据,存到这里面(比如选了好几个组织,需要把主键拿出来存到数组中,一会写sql语句会用到),把查询到的数据拆解到对应的VO(把数组类型的数据根据逗号进行分割,然后一个个存到数组中)

组织这个东西有点奇怪,他传过来的不是组织,而是sql语句

向临时表中插入数据

对应vo里的类型

把临时表中的数据拿出来

上面3步所有的逻辑,就根下图作用一样





自由报表部分和第一种一模一样
3.两种方法的选择
用不用代码的方法取决于是否需要对数据进行二次加工;如果只是单纯的把两张表里面的数据合并到一起,然后直接展示出来,就可以不用代码的方式;如果是从一张表里面查出数据,然后通过一系列的计算,然后再去展示,这时候就要用代码的方式
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
