首页 > 数据仓库 > 一个step by step 的MSTR报表例子

一个step by step 的MSTR报表例子

2008年10月27日 发表评论 阅读评论

SMTR8i DEMO程序步骤笔记

为了熟悉MSTR8开发工具,我特做了一个DEMO演示程序!把关键过程写了下来,希望能对后边学习MSTR8的同事们有些帮助!当然,由于时间和个人能力的原因,这一过程难免有误,希望大家以予指正!为了做演示程序,我在rdw12md这个用户下面建了2张表:CUX_EMP_INF: 员工基本信息维护表,CUX_EMP_PER_PAY :员工待遇维护表,为了使用方便,我在员工待遇表里加入了员工姓名。两张表通过EMP_ID 关联。

在前面,已经写过建立DESK TOP 与RDW数据库之间的连接,那么今天我们就来看一下我们怎么用MSTR8来开发报表。

一:建立项目源。建立属于自己的项目源,我们的开发都将在这个项目源里进行。

工具à项目资源管理器à添加à

进入如下界面:

clip_image002

注意,ODBC DSN中 xie_ds 是我们建立好的数据源。这是用来连数据资料的。之前志茹已经写过步骤了。至于如何确定我们写的ODBC DSN 是否连接成功,我们可以打开套件里中的 ODBC TEST TOOL :

clip_image004

确定以后,进入界面,可以用一个SQL 测试一下,

select * from cux_emp_inf

进入下图:

clip_image006

此时,我们项目源建立成功!

二:创建我们的项目。

2.1创建项目。选中我们的项目源。右击选择新建项目。点创建。

clip_image008

进入下个界面:

clip_image010

如果你第一次进入,系统会默认为管理员,并留空密码进入。在创建过程中,会为客人用户选安全角色,我们选NORMAL USERS:

clip_image012

确定!至此,第一步完成。

2.2 创建仓库目录:clip_image014

我们选择之前建立好的数据库实例,把我们要用的表>放到右边去 进入下图:

clip_image016

点击保存并关闭!此时,第2步完成。

2.3创建事实。

选中全部,放到右边。

clip_image018

此时,系统将可用列,生成为事实!

2.4创建实体。将可用列全选到右边。

clip_image020

关系定义:以后做钻取的时候定义了比较简单的层次,当然也可以通过建立实体对象来做更详细的钻取!

clip_image022

点下一步,然后确定,至此,第二步完成!入下图

clip_image024

三:报表开发。

3.1 创建实体对象。展开MSTR_DEMO,展开公共对象,新建一个文件夹,存放我们的对象文件。

打开文件夹,右击 新建实体,我们首先创建一个月份的实体,用来按月展示或度量员工信息!

选取存放月份的表,把字段EMP_MONTH 拖到右边,点手动。

clip_image026

确认以后;把表源勾上,写上注释!

clip_image028

确定以后,我们点关闭并保存,命名为:月份。

用同样的方法创建 姓名,地址等对象!

3.2 创建度量。在度量文件夹里创建一个空白度量,把事实EMP SARLARY 放到右边框里,这里我们选择汇总,(可以根据需要选择函数):

clip_image030

点关闭并保存,命名为:工资总数。

同理,创建奖金总数,津贴总数,创造总价值等度量!

入下图:

clip_image032

现在基本工作应该做好了 ,我们先点框架,然后点更新框架,这样我们所做的操作才会产生效果!

3.3创建报表模版。

文件à新建à报表:

clip_image034

在对象浏览器中 选择 公共对象,找到我们创建的对象,拖到报表对象栏中,再把我们建立的度量加入到报表对象里,如下图。

clip_image036

我们运行一下报表:

clip_image038

为了方便观察,我们把它做成纵向报表:切换到视图设计,点攻 行列互换按钮!我们再运行报表,如下图:

clip_image040

clip_image042

到此,一个简单的报表初步形成。下边我们用这张报表来分析所有员工的平均收入,员工的工作效率,并把工作效率小于80的员工效率显示红色,把效率大于等于90的员工效率显示为蓝色!

四:进一步开发报表,在以上报表里实现上诉需求。

4.1添加总计函数,先把视图筛选里的 自动应用更改勾上。在菜单栏里选数据,点总计,就自动为你做好总计了。

clip_image044

4.2计算员工的每月的总收入,总收入=工资+奖金+津贴,我们在报表对象栏里选择空白地方,右击插入计算。

clip_image046

clip_image048

4.3计算员工的效率, 员工的效率=员工创造总价值/(员工创建总价值+员工总收益),由于还没解决括号问题,我用总价值来替代 员工创建总价值+员工总收益,按以上步骤写出计算公式。得出下图结果:

clip_image050

4.4 阀值的运用,显示员工效率小于80的效率表格为红色,大于等于90的为蓝色!

选取员工效率行,右击选择 阀值。做如下设置。

clip_image052

得到如下图:

clip_image054

4.5报表的拖拉,拖拉是工具本身所带的功能,如下图:

clip_image056

clip_image058

4.6筛选,选出公司员工效率大于等于90以上的员工信息:

在视图筛选里做如下操作,就能得出结果:

clip_image060

4.7 钻取:我们选中6月份这栏;右击,钻取,其他方向,EMP DATE IN,确定以后,一个新的报表产生,如下图:clip_image062

我们继续向下钻取,同理,选 向下钻取:来到EMP DATE OUT(员工离职当月信息)如图:

clip_image064

我们现在来新建一个钻取方向:比如按性别来钻取:

4.7.1 实际上,我们只需要创建一个性别的对象实体就能获得钻取路径,由于怎么创建对象实体在前面以已经描述过了,那直接得出下图:

clip_image066

4.8用图形界面或报表一起查看:

4.8.1 在菜单里 选择 看看,图形查看,我们选择饼图的第一个样式:

clip_image068

4.8.2 图表查看:

方法同上,选择图表查看:

clip_image070

4.8.3 SQL查看。同上,选择SQL查看,我们将来的开发可能需要修改报表里的SQL代码,我们通过SQL查看能得到以下信息:

报表: DEMO_REP

数据行: 140

数据列: 1

使用报表缓存: 否

查询引擎执行开始时间: 2008-10-22 14:23:59

查询引擎执行结束时间: 2008-10-22 14:24:00

查询引擎的整个处理周期: 0:00:00.43

SQL持续时间: 0:00:00.06

分析持续时间: 0:00:00.00

查询引擎的其它处理周期: 0:00:00.37

返回行数: 19

返回列数: 7

临时表的数目: 0

SQL 的总数目: 1

SQL的数目: 1

分析的数目: 0

DB用户: rdw12md (1)

DB实例: xieyang_ins

访问的表:

CUX_EMP_INF

CUX_EMP_PER_PAY

SQL声明:

路径0 – 持续期间: 0:00:00.06

select a11.EMP_NAME EMP_NAME,

a12.EMP_ADDR EMP_ADDR,

a11.EMP_MONTH EMP_MONTH,

sum(a11.EMP_TASK) WJXBFS1,

sum(a11.EMP_SALARY) WJXBFS2,

sum(a11.EMP_BONUS) WJXBFS3,

sum(a11.EMP_ALLOWANCE) WJXBFS4

from CUX_EMP_PER_PAY a11

join CUX_EMP_INF a12

on (a11.EMP_NAME = a12.EMP_NAME)

group by a11.EMP_NAME,

a12.EMP_ADDR,

a11.EMP_MONTH

[分析引擎计算步骤:

1. 计算度量: <员工效率值> 在最初的数据级别 在视图中

2. 计算度量: <总价值> 在最初的数据级别 在视图中

3. 计算度量: <员工总收益> 在最初的数据级别 在视图中

4. 计算小计: <总计>

5. 计算度量: <员工效率值> 在小计级别 在视图中

6. 计算度量: <总价值> 在小计级别 在视图中

7. 计算度量: <员工总收益> 在小计级别 在视图中

8. 评估阈值

9. 执行交叉表

4.9报表细节处理:

4.9.1分页的使用:我们可以选择查看某个月的员工情况,在运行报表以后,点工具栏里的分页按钮,比如,我们想让报表按月来显示员工信息,我们可以把月份对象拖放到分页栏里!

clip_image072

然后就能选择需要显示的月份!由于我们安装的是7天评估版的,现在已经到期,这个功能的页面浏览不能出现。以致不能截图!但功能不变!

4.9.2小计的使用:按月汇总员工信息:点小计算按钮,点上总计,点高级,在应用级别界面上选分组 加入月份,如下图,我们点确定以后,报表自动修改:

clip_image074

clip_image076

我们也可以按性别,按人来进行汇总!同样,也能求取平均!比如求员工的平均收入,平均工作效率等!

clip_image078

4.9.3报表风格:我们可以选择自己喜欢的报表风格来显示报表:表格—>选择的自动样式,这时,可以选择我们喜欢的报表显示,如:

clip_image080

4.9.4 大纲显示对我们也是帮助的,能让我们更好的分析报表,可以按大纲一级一级的展开。点击工具栏里的按显示大纲结果:遗憾,由于版本问题,现在还截取到截面!

4.9.5用提示来自定义报表。我们现在要实现的功能是不用的用户,可以用提示来创建自己想看的报表,可以自定义报表的显示部分和数据分析!

我们到 公共对象 新建 提示,选择对象提示, 下一步,点加入,把我们需要的实体加入到框内,如下图:

clip_image082

勾选 默认提示答案。我们继续点 下一步 ,加入我们的答案,把性别设置为默认答案!

clip_image084

点下一步,完成,设置标题:

clip_image086

点保存!

我们现在运行报表以后,在对象浏览器中找到我们的提示,把它拖到报表相应的位置上,

clip_image088

点 下一步,完成,则新报表产生。

我们点保存并关闭!

clip_image090

点确定,以后我们请求运行报表的时候,就可以自定义想要显示的列了!

4.9.6 利用筛选来进行简单的人机交流!找到我们希望看到的数据,屏蔽掉我们不想看到的数据!比如:我们只想分析6 月份和7月份 姓名是ANDY 和JON的情况! 我们可以这样来实现!

在公共对象里,打开 筛选文件夹!新建筛选!

clip_image092

clip_image094

选择实体 月份,把6月7月的描述加入到选的对象里

clip_image096

点确定,现在我们完成了对月的筛选!我们用同样的方法建立对人的筛选!完成以后如下图:

clip_image098

保存名字为:对姓名和月份的筛选。运行报表,把筛选拖到报表里,效果如下:

clip_image100

4.9.7 将提示和筛选结合使用,这样会让报表的自定义更加灵活。由于版本licence到期,这个功能暂不能演示!在后边我会将缺少的功能一一列出!

到此,我们完成了开发基本报表的步骤!

五:需要注意的问题和等待进一步研究的问题

5.1 需要注意的问题:

5.1.1:创建完实体对象和度量以后,记得更新框架。因为只有在更新以后,系统才会把你所做的操作进行更新映射。如果不更新直框架而直接运行报表则会出现以下错误:

当装载报表时发生错误: DSSSQLEngine:

转换报表:模板 (本地模板). -模板单元度量-模板度量-维度量 (liangdu).

-维度量-维度量-聚合度量 (). -聚合度量表达式-聚合度量-聚合度量叶-表达式-表达式-在DFC转换的时候DFC框架中找不到对象。

5.1.2:把自己创建对象,报表,度量放在不同的文件夹里,有利于以后在有大量对象的情况下快速选择和应用。

5.1.3:如果我们需要修改报表,例如加一个字段,可以直接从数据表里抽取那个字段做成实体对象,在报表设计视图拖入该对象就行。

5.1.4:关于度量,不做分析就可以不用创建度量,就相当于是做一样张没有分析的陈列报表。

要做好度量也不容易,需要我们更深层次的去研究。

5.1.5:由工具产生的报表能直接导出成EXEL 或HTML格式。不需要我们再做转换。

5.2 等待进一步解决和研究的问题:

5.2.1数据抽取和筛选(重点研究),分析数据的前提是一定要先选出我们需要的数据。

5.2.2 对开发工具的进一步研究。

5.2.3 按需求定义钻取层次,达到想怎么钻取就怎么钻取。

5.2.4 深化度量的创建,度量是分析计算存储的数据(事实)。度量可在报表中定义以指定什么样的数据可显示在报表中。数据可被查看或用来做决策分析。所以对度量还需进一步研究,以便解决客户提出更复杂的需求!

 

 

关于作者:

昵称:xie_yang
档案信息:
联系方式:你可以通过yang_xie_101@live.cn联系作者
点击查看发表过的所有文章...
本文永久链接: http://blog.retailsolution.cn/archives/874

 

 

对本文的评价:

 

 

分类: 数据仓库 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
您必须在 登录 后才能发布评论.