业务场景:
因系统预置的序时账账表的辅助项是在一个单元格中显示的,项目上想要将辅助项分列显示,并且查询一些科目自由项或者分录自定义项及其他信息自定义的数据,现提供以下方案。
解决方案:
先设计一张辅助信息临时表作为取数基础
添加以下数据表并进行连接;
添加以下字段,根据客户实际需求设置字段公式进行取数,本例以以下辅助档案数据为例;
max(case when gl_freevalue. checktype =’00010000000000000001′ then gl_freevalue.valuename else ” end)
字段表达式说明: case when 表示行转列,加max聚合处理意思是将返回的结果整合在一行显示,所以该公式的意思是当辅助核算内容表中的辅助核算档案的主键值(checktype)等于对应想取的辅助档案的主键时,那么就取该主键对应下的具体辅助核算名称(valuename),所以该公式下,取不同的辅助档案只需要将字段表达式中的checktype值替换即可,例如取部门档案,那么就将以上公式中checktype替换为部门档案的主键即可,如下:
max(case when gl_freevalue. checktype =’00010000000000000001′ then gl_freevalue.valuename else ” end)
max(case when gl_freevalue. checktype =’ 00010000000000000002′ then gl_freevalue.valuename else ” end)
注:相关主键对应信息可参考第五部分“附录”中的说明。
二、增加查询数据的汇总表
第一步:添加以下参数;
第二步:添加以下数据表并进行连接,并引用以上设计好的临时表;
第三步:添加以下字段信息;
其中业务员名称表示的是科目的自由项信息,经办人表示的是凭证定制中添加的分录自定义项信息,项目上可以根据实际情况添加其他的字段信息,并给字段进行命名,本例只以添加的科目自由项(业务员名称)和分录自定义项(经办人)为例说明;
其中比较特殊字段的处理方式如下:
1.为了将凭证信息按照分录号进行排序:所以增加一个序号的字段,表达式设置为:
row_number()over(partition by gl_voucher.pk_voucher order by gl_detail.detailindex)
2.凭证号:将凭证类别与凭证号进行拼凑显示:
Sqlserver数据库:(select concat(bd_vouchertype.vouchtypename, ‘-‘, right(‘0000’+cast(gl_voucher.no as varchar),4)) from gl_voucher where gl_voucher.pk_voucher=gl_detail.pk_voucher)
Oracle数据库:(select concat(concat (bd_vouchertype.vouchtypename, ‘-‘), (select lpad(no,’4′,’0’) from gl_voucher where gl_voucher.pk_voucher=gl_detail.pk_voucher)) from gl_voucher where gl_voucher.pk_voucher=gl_detail.pk_voucher)
3.本币金额处理为两位小数:cast(round(gl_detail.localdebitamount,2) as decimal(38,2))其他金额字段处理方式相同;
4.签字人:(select user_name from sm_user where cuserid=gl_voucher.pk_casher)
5.审核人:(select user_name from sm_user where cuserid=gl_voucher.pk_checked)
6.记账人:(select user_name from sm_user where cuserid=gl_voucher.pk_manager)
第四步:增加筛选条件并按照制单日期和凭证号进行排序;
第五步:浏览报表;
三、对报表进行格式设计
第一步:生成格式设计
第二步:增加列表头格式
选择设计好的查询模型;
为了将相同属性的字段值放在一起显示,以便报表格式会更美观,所以可以使用字段组合的方式将字段放在分组在一起显示,操作如下:
选中需要组合的字段,点击组合按钮,增加组合的字段名;
因为考虑到后续将序号列和凭证主键列不显示,所以在表头模板中将这两列删除;
第三步:增加列格式设计
保存表头格式之后,增加列表格格式;
考虑到文本对齐等情况,增加字段处理,使得字段居中显示,需要增加数值型和文本型两种格式的居中显示;
保存之后,双击空白面板,调出设计框,点击列格式设置字段格式;
如下:
点击表头ID,引用列表头模板;
浏览报表,如下,辅助项分列显示,并且相关其他信息:
四、发布报表
给相关角色分配该报表权限:
登录公司查询数据;
也可以在查询出来之后对数据字段进行排序显示;
五、附录
在查询辅助信息时,字段表达式中涉及到对应辅助档案的主键值,以下说明一下如何查询档案对应主键值:
查询模型中添加基础数据资源表(bd_bdinfo),选取字段基础档案编码、主键以及名称,如下:
浏览报表,先找到辅助档案的名称,再将对应主键值替换到字段表达式中:
以下是设计好的报表,付费后可下载,导入系统根据实际情况进行修改使用