报表开发

今天接到一个需求,出差单个人查询报表开发。

配置测试环境连接,配置数据库连接,之前都已经做好了,下面可以进入报表开发。

数据抽取

开发功能之前,需要准备数据,这些数据是从HR库和ECC数据库,抽取到帆软的DW库中。

集团HR库和ECC数据库的数据量非常大,当点击报表查询的时候,尽量不要从集团库,而是从中间库查询。

报表开发前,要进行数据抽取的操作,这里使用的工具是Kettle。

新建转换,配置DB连接,按照下面的步骤新建。

首先,数据抽取是一项定时job,它会在服务器端,在特定的时间段自动执行,因此帆软DW库里的数据,永远是一个月前的数据。

middle_s4user_xsj表举例。

步骤1:清空表

SQL脚本的第一步:清空DW库中的middle_s4user_xsj表。

truncate table middle_s4user_xsj;


注意,是DW库,我曾经清除了ECC连接上的middle_s4user_xsj。

幸好这个表,只存在于DW库里,要不然就酿成生产事故了。

步骤2:抽取数据

抽取集团HR库中的数据。

SELECT pernr,orgeh,plans,rtrim(nachn) nachn,gesch,status,zphone,stell,perid idcard,entryda begindate,hireda hiredate from t_employeeswhere werks='8507'

步骤3:注入数据


确认无误,点击执行,就可以了。

只演示这一个,剩下的middle_s4org_xsj和MIDDLE_ZHROAT1050_XSJ,就不做演示了。

定义数据集

数据抽取完成后,相关的数据已经获取到了,接下来,就可以定义数据集了。

如果开发,直接在测试环境上开发的话,那么测试环境上,已经定义好了数据连接。

直接选择帆软DW库,模板数据集如下:

with usertable as(
select u.pernr,u.nachn,o.objid as CJID,o.stext as CJNM,o1.objid as BMID,o1.stext as BMNM,o2.objid AS GSID,o2.stext AS GSNM from middle_s4org_xsj o
left join middle_s4org_xsj o1 on o.pup = o1 .objid
left join middle_s4org_xsj o2 on o1.pup = o2.objid
left join middle_s4user_xsj u on u.orgeh = o .objid),z1050 as(
select v_employeeno,d_begindate,d_enddate,v_days,v_workplace,v_workreason
from MIDDLE_ZHROAT1050_XSJ
where v_employeeno='${fine_username_xsj}'
order by D_BEGINDATE
)select z.v_employeeno,ut.nachn,ut.GSNM,ut.BMNM,ut.CJNM,TO_DATE(z.d_begindate,'YYYY-MM-DD') AS d_begindate,TO_DATE(z.d_enddate,'YYYY-MM-DD') AS d_enddate ,z.v_days ,z.v_workplace,z.v_workreason
from z1050 z left join usertable ut on z.v_employeeno = ut.pernr
WHERE 1=1
${if(len(SDATE)==0,""," and z.d_begindate >= REPLACE('"+SDATE+"','-', '')")}
${if(len(EDATE)==0,""," and z.d_begindate <= REPLACE('"+EDATE+"','-', '')")}
order by z.v_employeeno,z.d_begindate

with as是oracle的子查询写法。

这里是定义了两个子查询,usertable和z1050。

usertable的SQL语句是middle_s4org_xsj 和middle_s4user_xsj 来回join,查询数据,这是因为—因为数据比较烂。

报表数据展示

条件参数1:fine_username_xsj

样式比较简单,查询条件就1个,开始时间和结束时间。

查询条件,是直接从模板数据里取的,其中,fine_username_xsj的值,是从OA点击的时候,直接传过来的。


开始时间默认的是公式,集团的考勤是上月21号到本月20号,用的是下面这个公式:

DATEINMONTH(MONTHDELTA(TODAY(),-1),21)

结束时间的查询条件:

公式:

today()

【报表开发】:BI---新视界---请休假个人报表相关推荐

  1. Devexpress报表开发(二):创建数据报表

    Devexpress报表开发(二):创建数据报表 本教程将会介绍如何使用Devexpress的报表控件来实现数据报表,我们将会从以下几步来实现数据报表(PS:文章使用的实例数据库以及结构请查看博客:点 ...

  2. oracle系统报表开发工具,掌握七款实用报表开发工具,定制属于自己的报表

    阅读提示: 文章中与FineReport软件使用的相关内容,基于软件的V7.0旧版本编写,不代表软件最新的使用方式. FineReport最新版免费试用:https://www.finereport. ...

  3. java报表开发(bi报表开发)

    java报表怎么做? 首先需要做好一张报表的模板,工具最好用iReport, 做好后会生成两种文件. 后缀  .jasper 和 .jrxml 的报表文件. 用Jreport生成报表的,具体的用法网上 ...

  4. 如何在报表开发工具 FastReport Online Designer 中处理报表的 5 个函数

    Fast Reports 产品的时代并没有停滞不前.每个月都会添加新的函数和对象,并改进和优化当前的代码.FastReport Online Designer中进行了一些更新,提高了可用性并简化了报表 ...

  5. 网新 恒天Reporting COE的报表开发能力和恒天报表云平台

    报表覆盖: 1. BIRT / Cognos / Crystal / Jasper报表开发:   2. Actuate与Jasper之间的迁移以及相应的报表开发:Crystal与Jasper之间的迁移 ...

  6. 数据蒋堂 | 报表开发的现状

    作者:蒋步星 来源:数据蒋堂 本文共1692字,建议阅读5分钟. 通过本文为大家解读报表开发难点重点和现状问题. 报表开发,看起来只是数据呈现环节的事务,并不起眼,但仔细想想,它涉及的工作范围却非常广 ...

  7. 数据准备 ——报表开发中的深层次问题

    前言 现在企业的报表开发大部分都使用报表工具完成,成熟的报表工具提供了丰富的显示设置.图表类型.导出打印等功能可以简化报表开发,非常方便.但在实际报表开发中还是经常碰到一些非常棘手的深层次问题,即使是 ...

  8. 你的报表工具会做数据准备吗 ——报表开发中的深层次问题

    前言 现在企业的报表开发大部分都使用报表工具完成,成熟的报表工具提供了丰富的显示设置.图表类型.导出打印等功能可以简化报表开发,非常方便.但在实际报表开发中还是经常碰到一些非常棘手的深层次问题,即使是 ...

  9. 利用JasperReport+iReport进行Web报表开发

    用JasperReport+iReport进行Web报表开发 序言 在非常多实际的项目里,报表都是当中十分重要的组成部分,比如把查询结果以报表的形式呈现出来.这里所提到的报表可不是简单的二维表,而是拥 ...

最新文章

  1. 这款笔记本写代码真爽,包邮送一台!
  2. c# 检查目录,当指定目录不存在时建立目录
  3. 数据分析平台搭建案例
  4. COM_TEXT_GET_SWITCH
  5. php use闭包参数,php 闭包use的使用
  6. android骰子游戏代码_真神器!不用手写一行代码就能做网站~
  7. LeetCode 40 组合总和 II
  8. Linux学习总结(26)——Shell常用命令总结
  9. 动画组件和动画控制器资源介绍、动画状态机
  10. opencv android模版匹配,基于opencv模板匹配的目标检测方法
  11. 计算机基础简明教案,计算机基础完整教案
  12. 关系型数据库之MySQL8——由内而外的深化全面学习
  13. 深入理解Java虚拟机-Java内存区域与内存溢出异常
  14. 对于无线网络经常掉线的问题
  15. Flash 0day漏洞(CVE-2018-5002)千万不要乱打开Excel文档!
  16. C# 拼图游戏(超详细)
  17. Pair Project: 电梯调度问题API设计(by 谢俊源 陆元伟)
  18. SLAM 岗位求职与简历书写
  19. Ballerina语言有望改善应用程序集成
  20. 深度学习英文缩写_深度学习相关专业词汇简称汇总

热门文章

  1. Redis安装与部署(CentOS7环境,Redis6.0.9)
  2. 基于matlab的光学薄膜特性分析,基于matlab的光学薄膜特性分析.doc
  3. SpringMVC 的核心组件有哪些?
  4. 天地图加载慢 快速打开天地图
  5. 2022《人工智能》_ch06
  6. 求助!spyder beautifulsoup4显示错误:AttributeError: 'HTMLParserTreeBuilder' object has no attribute 'initia
  7. 进程的攻与“防” ---- 进程隐藏(Win7 x32 绕过PC Hunter)
  8. 一个葫芦娃的小程序,爷青回!
  9. instanceof有什么作用
  10. 小酌Django4——博客文章展示