摘要: 打个比方:我有销售和生产2个CUBE,销售里有销售台数,生产里有生产台数,前台有个需求想把销售台数和生产台数在一个报表中展现,他们都有时间这个维度的。 在销售cube中新建计算成员“生产台数”,表达式为lookupcub("[生成cube名称]","(measures.[生产台数],[时间].["+[时间].currentmember.level.name+"].["+[时间].currentmember.name+"])"),浏览时将度量值“销售台数”和计算成员“生产台数”一同拖入数据区域,即可同时看见销售里面的 阅读全文
posted @ 2011-03-03 10:50 emmy 阅读(627) 评论(0) 推荐(1) 编辑
摘要: 联机分析处理(OLAP)的概念最早是由关系数据库之父E.F.Codd于1993年提出的。当时,Codd认为联机事务处理(OLTP)已不能满足终端用户对数据库查询分析的需要,SQL对大数据库进行的简单查询也不能满足用户分析的需求。用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求。因此Codd提出了多维数据库和多维分析的概念,即OLAP。一、OLAP的概念根据OLAP产品的实际应用情况和用户对OLAP产品的需求,人们提出了一种对OLAP更简单明确的定义,即共享多维信息的快速分析。(1)快速性用户对OLAP的快速反应能力有很高的要求。系统应能在5秒内对用 阅读全文
posted @ 2011-03-03 10:49 emmy 阅读(1678) 评论(0) 推荐(0) 编辑
摘要: 对一个应用软件系统,一般都会有不少查询、报表模块。所谓OLTP报表,就是在业务系统的数据库上,紧密集成在业务系统中的各种查询报表。由于OLTP数据模型千差万别,所以很难有简单的方法来描述数据的语义、规则。可以想象,在OLTP数据库上产生报表是一件非常头疼的事,要是每张表需要软件编写者硬编码实现,实在是痛苦万分。有需求就有市场!近年来,国内外冒出了不少报表软件用来在OLTP基础上生成报表,这样可大大提升报表模块的开发效率。由于没有统一的数据模式,这些报表软件都需要使用者根据具体数据库结构来定义报表,需要定义的内容大致有:报表版式、取数关系、公式运算等。OLAP数据本来就是面向分析的,并已经根据分 阅读全文
posted @ 2011-03-03 10:48 emmy 阅读(1004) 评论(0) 推荐(1) 编辑
摘要: 例如有销售和生产两个数据集,销售中有销售数量,日期和员工,生产中有生产数量,日期和员工,现在我需要把销售数量和生产数量同时展现在一个表中。我们可以使用 Lookup 从指定的数据集中为具有一对一关系的名称-值对检索对应的值。例如,对于表中的 ID 字段,可以使用 Lookup 从未与数据区域绑定的数据集中检索对应的“名称”字段。上面例子的表达式在数据集为“销售”的基础上可以写成:=Lookup(Fields!日期.Value & Fields!员工.Value, Fields!日期.Value & Fields!员工.Value, Fields!生产数量.Value, &quo 阅读全文
posted @ 2011-03-03 10:46 emmy 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 实现动态展现报表大致有2种开发思路,一是,先使用xmlTexWriter类生成报表文件(.rdl),然后在部署到服务器上,再通过控件展现。二是,通过xmlSerializer类直接从服务器上反序列话读取报表,修改后以编程方式更新报表定义,再序列话到服务器上保存报表,最后通过控件展现。前者的难点在于如何将生成的报表通过编程方式部署到服务器上,且跟后者相比,前者每此修改都要全部生成一遍报表文件,而后者只需修改需要变动的项目,很明显后者的效率比前者高。而后者的难点在于如何从定义报表文件的代码中找出需要更改的项目并更改它。 如果对报表进行详细设计,如添加数据源,参数,数据集,表,图片,仪表,图... 阅读全文
posted @ 2011-03-03 10:43 emmy 阅读(564) 评论(0) 推荐(0) 编辑