而且还介绍如何把迭代报表与 CaDS 中的安全管理,定时器相结合来更好的解决用户的实际问题。
AAA 公司是一家在中国新成立的,有着几百人规模的欧美外包公司,">Eric 在这个公司担任财务主管。他所带领的财务团队负责每个月定时向公司每一个员工发放工资单。Eric 面临着工资单发放形式的决策问题。首先他想到的是传统的纸质工资单。但是采用传统的纸质工资单,就会带来一系列的问题:不环保:如果发行纸质工资单,会给公司每年多出很大一笔纸张,印刷以及发放人员工资的开销;缺乏灵活性:如何员工在工资发放日出差,或者休假,那么如何保管这部分工资单呢?安全性也非常低:在发放工资单的时候,避免不了人为对工资单的接触,那么就会造成工资信息的泄漏,而按照 AAA 公司的规定,员工的工资是机密信息,只有除员工本人以外的少数人领导人员知道。
Eric 的另外一个选择就是使用电子工资单。同样电子账单也面临着一系列的问题。人力消耗大: 如果财务人员每月向每个员工一个一个的发放工资单的话,那所花费的经历和体力将是灾难性的;安全性低:在工资单发放的时候,财务人员也不可避免的接触员工的工资,那么机密性也就无从而谈。
于是 Eric 与 IBM 的技术人员联系并且交谈了他的需求:首先要满足基本的需要,每个月定时向公司每个员工发放工资单。其次避免纸质工资单和电子工资单的缺点:既要省时省力的,灵活的实现电子工资单的发放;又要保证安全性,避免人为对工资单的接。IBM 与 AAA 公司的技术人员了解了公司的特点之后,提出了基于迭代 BIRT 报表的解决方案,下面章节会详细介绍方案的实现的具体环节。
制作 BIRT 报表
由于历史原因,AAA 公司的员工资料分别存储在不同数据媒介里。其中“员工基本信息”存储在 SQL Server 数据库里面;而“员工工资信息”却存储在 DB2 数据库里面。如表所示:
表 1. 员工基本信息表
Name ID Age Sex Birthday Title Department Education EntryTime Email Hai 904501 30 F 19830214 Junior QA Master 20070815 hai@aaa.com jzhao 904601 32 F 19780214 Junior Dev Master 20071020 jzhao@aaa.com
表 2. 员工工资信息表
ID MonthlySalary FixedBonus GrowthDrivenProfit WorkLateBonus Tax NetTotalPay 904501 5000 500 800 50 400 5950 904601 6000 500 1000 100 600 7000
电子工资单的发放是基于“员工工资信息”报表中每个员工 ID 对应的工资信息的。但是要实现电子工资单发放的 Email 信息却存储在“员工基本信息”报表里面。那么也就是说:电子工资单的发放既需要“员工基本信息”报表的信息,又需要“员工工资信息”报表的信息。所以需要把 2 个报表连接起来。这是一项困难的事情。幸运的是 IBM SPSS CaDS (Collaboration and Deployment Services) 所支持的迭代 BIRT 报表能提供一种方式把这 2 个报表连接并实现互相引用。
所谓“迭代报表”是指 2 个报表之间互相引用的一种关系。迭代报表关系中包含一个 Producer 和一个 Consumer。Producer 报表中的某个数据项可以作为 Consumer 的输入 , 它的作用是过滤数据。Consumer 会针对数据项中的每一个数据来运行,并且可以引用每个数据对应的其他数据项的值。
对于 AAA 公司的解决方案来说,“员工基本信息”报表是 producer,他向“员工工资信息”报表提供员工的 ID,而“员工工资信息”报表会根据“员工基本信息”报表所提供的每个 ID 来运行并取得工资信息,并同时取得每个 ID 在“员工基本信息”报表中所对应的电子邮件的信息作为发放电子工资单的邮件地址。在 CaDS 中迭代报表是基于 BIRT 报表的,下面就来介绍如何创建 BIRT 报表:首先创建一个针对“用户基本信息”的报表。点击 File->New->New BIRT Report 来新建一个 BIRT 报表。给报表命名为“EmpBasicInformation_ 报表 .rptdesign”,并把报表存放到硬盘一个合适的位置。点击“Finish”按钮。如图 1 所示:
图 1. 创建用户基本信息报表
右键点击“Data Sources”,并选择“New Date Source”来新建一个 Data Source。如图 2 所示:
图 2. 创建数据源
由于“员工基本信息”是存在 SQL Server 数据库里面,所以选择“JDBC Date Source”,点击“Next”按钮。如图 3 所示:
图 3. 选择 JDBC 数据源