报表开发步骤

报表开发步骤

1.什么是报表?

例如从两张表里面查出数据,查出来的这个数据不需要存数据库,只需要把这些数据查出来,然后展示出来。

2.报表的两种开发方法

开发方法1(不用代码)

报表开发的位置:动态建模平台 --> 报表平台

首先在:语义模型 --> 语义模型-全局(最高) 或 语义模型- 集团(第二高)
语义模型:存报表的sql语句和字段名等信息,相当于报表的后端

  1. 新建办公费预算明细表语义模型

报表开发步骤_第1张图片
报表开发步骤_第2张图片
报表开发步骤_第3张图片
报表开发步骤_第4张图片
报表开发步骤_第5张图片
报表开发步骤_第6张图片
报表开发步骤_第7张图片
报表开发步骤_第8张图片
在这里插入图片描述
报表开发步骤_第9张图片
报表开发步骤_第10张图片
报表开发步骤_第11张图片
报表开发步骤_第12张图片

然后在:自由报表 --> 自由报表-全局(最高) 或 自由报表-集团(第二高)
自由报表:用于画报表的结构,相当于报表的前端

  1. 新建办公费预算明细表自由报表
    报表开发步骤_第13张图片
    报表开发步骤_第14张图片
    报表开发步骤_第15张图片
    报表开发步骤_第16张图片
    报表开发步骤_第17张图片
    报表开发步骤_第18张图片
    报表开发步骤_第19张图片
    报表开发步骤_第20张图片
    报表开发步骤_第21张图片
    报表开发步骤_第22张图片
    报表开发步骤_第23张图片
    注意:组织类型得选业务单元,不可以是全局
    报表开发步骤_第24张图片
    报表开发步骤_第25张图片
    分配权限
    报表开发步骤_第26张图片
    报表开发步骤_第27张图片
    重新登录一下客户端
    报表开发步骤_第28张图片
    添加插件类
    报表开发步骤_第29张图片
    报表开发步骤_第30张图片
    报表开发步骤_第31张图片

报表开发步骤_第32张图片
nc.itf.jgxc.report.newcont.INewContReport

两种设置查询条件的查询方法:

  1. 用它自带的查询模板
  2. 创建查询模板

1.用它自带的查询模板
报表开发步骤_第33张图片
报表开发步骤_第34张图片
报表开发步骤_第35张图片
报表开发步骤_第36张图片
报表开发步骤_第37张图片
报表开发步骤_第38张图片
报表开发步骤_第39张图片
报表开发步骤_第40张图片

2.创建查询模板的方法配置
报表开发步骤_第41张图片
报表开发步骤_第42张图片
报表开发步骤_第43张图片

报表开发步骤_第44张图片
报表开发步骤_第45张图片
分配节点
报表开发步骤_第46张图片
报表开发步骤_第47张图片
这个地方的节点标识应该不填,而不应该是qt,如果填qt的话加额外的代码处理会报错;资产层次这个地方应改是水平,而不应该是平台
(功能节点默认模板设置中新加的在pub_systemplate_base这个表里面)
报表开发步骤_第48张图片
报表开发步骤_第49张图片
报表开发步骤_第50张图片
报表开发步骤_第51张图片
报表开发步骤_第52张图片

开发方法2(用代码)

报表开发步骤_第53张图片
报表开发步骤_第54张图片
报表开发步骤_第55张图片

下面的代码拿过来直接用就行

        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);

除了接口类名以外,方法名也要改为对应的方法名,不然编译会不通过
报表开发步骤_第56张图片
upm注册
报表开发步骤_第57张图片
代码逻辑:(生成一个临时表,然后展示)
这一步是生成一个空的临时表,往里面插数据,然后查询临时表
报表开发步骤_第58张图片
创建临时表
报表开发步骤_第59张图片
对应临时表里的类型
报表开发步骤_第60张图片
报表开发步骤_第61张图片
查数据
报表开发步骤_第62张图片
获取查询模板上传过来的数据(多选数组类型,单选不是数组类型)
报表开发步骤_第63张图片
从查询模板上选的数据,存到这里面(比如选了好几个组织,需要把主键拿出来存到数组中,一会写sql语句会用到),把查询到的数据拆解到对应的VO(把数组类型的数据根据逗号进行分割,然后一个个存到数组中)
报表开发步骤_第64张图片
组织这个东西有点奇怪,他传过来的不是组织,而是sql语句
报表开发步骤_第65张图片
向临时表中插入数据
报表开发步骤_第66张图片
对应vo里的类型
报表开发步骤_第67张图片
把临时表中的数据拿出来
报表开发步骤_第68张图片
上面3步所有的逻辑,就根下图作用一样
报表开发步骤_第69张图片
报表开发步骤_第70张图片
报表开发步骤_第71张图片
报表开发步骤_第72张图片
报表开发步骤_第73张图片
自由报表部分和第一种一模一样

3.两种方法的选择

用不用代码的方法取决于是否需要对数据进行二次加工;如果只是单纯的把两张表里面的数据合并到一起,然后直接展示出来,就可以不用代码的方式;如果是从一张表里面查出数据,然后通过一系列的计算,然后再去展示,这时候就要用代码的方式

你可能感兴趣的:(nc培训,数据库,sql,大数据)