cognos报表数据项表达式函数的应用
- 格式:doc
- 大小:283.00 KB
- 文档页数:46
Cognos报表—知识整理一、提示页自动加载1、功能需求背景华中电网概况报表首页需要有日期参数,但是每次进入首页时出现日期选择框影响美观,所以为其增加提示页面,但根据要求不能增加提示页面,所以设计出提示页面自动加载。
通俗的讲就比如:出现提示页面,电脑自动点击确定进入主页面……2、功能实现方法步骤1:新建提示页面,新页面中内容包括:onload项目、完成按钮、日期提示框以及针对提示框的html项目。
如下图1图1步骤2:Onload项目中函数:详见图1<body onload= "initMon()"><script language="javascript">function initMon(){promptButtonFinish();}</script>二、进入页面后自动刷新一次1、功能需求背景电网概况报表电厂容量分析主页面中,需要自动根据日期刷新一次页面(具体原因参见三、特殊的日期过滤)2、功能实现方法步骤1:Onload项目加载函数,如图2图2步骤2:Js中函数新加一行代码,如图3图33、可参考报表电网概况报表>>1.电厂容量分析三、特殊的日期过滤1、功能需求背景电网概况中发电情况包括水、火、风三种发电方式,在数据库中体现即为水(火、风)电机组管理(参数)表。
根据用户要求,需要对全网水(火、风)当年新投机组容量等进行数据统计,2、设计思想1)将水、火、风机组管理表分别对应查询中取相同数据项,为U联做准备。
2)在三个查询中新建“投运年”数据项,取得机组投运年份。
表达式:substr(【投运日期】,1,4)3)将三个查询进行U联,给U联后的查询设置过滤条件,如图4图43、出现问题分析根据2、设计思想中进行操作,报表验证报错,不能对substr进行集操作,经查询得知,dm 数据库不支持在两层(原层和U联层)查询中同时使用substr。
COGNOS前台报表规范一、控件命名1、系统控件和自定义控件控件命名规则:页面控件命名一般为“Rs”+“{控件参数}{控件属性}”,HTML项目内控件命名一般为“控件属性”+“具体含义名”;提示页面控件命名一般为“Rst” +“{控件参数}{控件属性}”;参数命名规则:“v”+“具体含义名”。
2、不参与交互功能的的控件不命名,使用默认名称规范。
二、报表命名规范报表命名以具体的指标含义命名。
三、控件使用说明报表开发主要使用的是系统控件和自定义的html控件,以及一些JavaScript的辅助。
(1)、TextEdit:文本项目。
主要应用于文本显示,包括静态文本显示和数据项目显示以及自定义报表表达式。
文本项目的主要属性如下:A、条件样式B、源类型C、文本D、数据格式E、最大字符数(2)、Block:块。
主要用于布局,可作为容器使用,和Html标签的Div比较类似;其主要属性如下:A、条件样式B、样式变量C、大小和溢出D、可见(3)Table:表格。
表格控件大部分应用于布局。
(4)、QueryCalculator:查询计算。
用于项目查询项目或者自定义的报表表达式。
其主要属性如下:A、源类型B、数据项值C、数据格式D、数据项类型(5)、Image:图像。
用于页面上显示图片。
(6)、List:列表。
用于数据列表展示,可插入数据项和其他任何控件,也可插入自定义控件,常用于列表数据容器。
(6)、Chart:图。
图形展示工具,包括柱状图、折线图、饼图、条形图、面积图、点状图、组合图、散点图、仪表盘、排列图、Microchart图等。
图形使用数据项目作为数据源。
四、界面设计(一)、布局设计页面整体布局大小为高度100%、宽度100%;左侧为页面主题和查询选项区域,宽度占用20%;右侧分为上下结构为数据展示区域,宽度占用80%,上侧为列表详细信息,下侧为指标分析区域,上下侧内容有联动效果。
(二)、功能设计(1)、查询功能查询区域根据日期维度拆分为年报、月报、日报快捷查询按钮。
c o g n o s报表数据项表达式函数的应用(总45页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--cognos 报表数据项表达式函数的应用手册文档信息批复信息文件控制文档编号CCBBI_PM061110_001 版 本号密级内部资料目录1引言 .............................................................. 错误!未定义书签。
编写目的 ...................................................................... 错误!未定义书签。
背景 .............................................................................. 错误!未定义书签。
参考资料 ...................................................................... 错误!未定义书签。
术语定义及说明 .......................................................... 错误!未定义书签。
2汇总函数 ...................................................... 错误!未定义书签。
aggregate ...................................................................... 错误!未定义书签。
average ......................................................................... 错误!未定义书签。
count ............................................................................. 错误!未定义书签。
Cognos8.3函数使用手册分类:cognos1top and bottom functions 1.1bottomCount1.2topCount1.3bottomPercent1.4bottomPercent1.5topPercent1.6bottomSum1.7topSum2value functions 2.1completeTuple2.2Tuple2.3value2.4caption2.5substring2.6roleValue2.7ordinal3案例分析:3.1维度成员组合(union、members)案例1:查询表达式:union(members([ids_fspg_biz_ply_calc].[机构维].[机构维].[部门组]),members([ids_fspg_biz_ply_calc].[机构维].[机构维].[分公司]),all)3.2维度成员排序组合(hierarchize、union、members)案例1:查询表达式:hierarchize(union(members([ids_fspg_biz_ply_calc].[机构维].[机构维].[部门组]),members([ids_fspg_biz_ply_calc].[机构维].[机构维].[分公司]),all))3.3维度类别组合(hierarchy、levels、level)通过下图了解类别与层级,A是“机构维”树,包含层级与成员,B是各层级与明细成员,互相独立层次,hierarchy()函数,对A和B都可以选择。
选择A和成员名称,只显示根节点与当前成员集,3.4RS中基于CUBE数据源的同期、本年累计等MDX写法所有的例子中:month参数指向月粒度、year参数指向年粒度。
日期层次结构为:年、季度、月、日1. 去年同期:即查询月为200905的话,该指标为200805该指标total([金额] within set parallelPeriod([日期].[日期层次结构].[年],1,[日期].[日期层次结构].[月]->?mon?))2. 本年累计:即查询月为200905的话,该指标为200901-200905期间发生total([金额] within set periodsToDate([日期].[日期层次结构].[年],[日期].[日期层次结构].[月]->?mon?))3. 去年同期止累计:即查询月为200905的话,该指标为200801-200805期间发生total([金额] within set periodsToDate([日期].[日期层次结构].[年],parallelPeriod([日期].[日期层次结构].[年],1,[日期].[日期层次结构].[月]->?mon?)))4. 有史以来累计发生:查询月为200805,则为从时间第一个节点截止200805期间发生1)如果提示使用的是[日期].[日期层次结构].[月].[月 - Key]total([金额] within setfilter(members([日期].[日期层次结构].[月]),[日期].[日期层次结构].[月].[月 - Key]<=?month?))2)如果提示使用的是[日期].[日期层次结构].[月]total([金额] within setlastperiods(1000,[日期].[日期层次结构].[月]->?month?))5. 查询粒度为年,统计上半年、下半年上半年余额(即时点类指标):total([余额] within set subset(descendants([日期].[日期层次结构].[年]->?year?,[日期].[日期层次结构].[月]),5,1))上半年发生额(即时段类指标):total([金额] within set subset(descendants([日期].[日期层次结构].[年]->?year?,[日期].[日期层次结构].[月]),0,6))这里subset()这个函数和substring()类似,只不过subset截取的是一个set (集合)中的某些成员而已,并且注意subset()第一个是0而不是1,这个和数组是类似的.6、同比与环比同比增长(以日期为行维)([销售金额]- value(tuple(parallelPeriod([ARPD-Sale].[日期].[日期].[年]),[销售金额])))/value(tuple(parallelPeriod([ARPD-Sale].[日期].[日期].[年]),[销售金额]))环比增长(以日期为行维)([销售金额]-value(tuple(prevMember(currentMember([ARPD-Sale].[日期].[日期])),[销售金额])))/value(tuple(prevMember(currentMember([ARPD-Sale].[日期].[日期])),[销售金额]))我的更多文章。
报表设计调优1Report Stuido设计调优1.1手写SQL定制报表查询通过Tabular SQL对象的使用,可以任意组织需要的SQL语句,定制报表的查询,查询结果会以查询项的形式在报表中被使用。
具体操作步骤如下:1.选中报表模型对象。
2.在左下方的属性栏中点击Generated SQL属性,弹出报表模型对应的Native SQL。
3.在Generated SQL窗口中选择Convert to SQL,弹出SQL编辑窗口,在此进行SQL语句的组织,组织好的SQL语句可以通过Validate按钮进行校验。
4.返回的SQL结果将以查询项的形式在报表定制中被使用。
注:在SQL语句的编写中除了可以使用本地数据库支持的标准数据库函数外,还可以接受FRAMEWORK中支持的宏函数,例如:#prompt(‘P_DATE’,’date’)#。
此中调优策略虽然支持非常灵活的SQL语句组织,但是由于已经不是通过工具自动生成SQL,因此在业务人员定制报表时,须熟练掌握数据库SQL语句。
1.2报表函数的使用在报表函数的使用上,尽可能使用应用数据库能够解析的本地数据库函数,函数列表中的通用函数,在处理时会将函数放在报表服务器进行运算,从而增大了报表服务器的性能开销。
注:可以通过Generated SQL查看使用函数是否是提交给本地数据库进行运算。
1.3过滤条件顺序调整根据数据库优化策略,可能需要将过滤条件的顺序进行调整,可以在Filters窗口中进行设置。
这里只有将过滤条件的Usage属性设置为Required,才会在Generated SQL中看到对应的where子句过滤条件。
注:因表关联而自动生成的where子句会自动组织在where子句的最后,该顺序不能调整。
1.4查询字段、查询表顺序调整根据数据库的优化策略,可能需要将查询字段的顺序进行调整,可以在Data Items窗口中进行设置。
查询SQL语句中,From关键字后面的表顺序是按照select关键字后出现的字段顺序进行设置的。
COGNOS查询与报表和多维分析工具国家信息中心北京优信佳信息系统有限公司查询与报表工具 2标准报表 2 即席报表 3 I MPROMPTU信息目录 4 部署伸缩性 4 I MPROMPTU W EB Q UERY 5多维分析工具——POWERPLAY 5数据探察 6 特殊性报告的排序7 快速、高效的信息提取7是业界领先的商务智能工具供应商,其最主COGNOS要的产品是查询与报表工具Imprompwu和多维分析工具PowerPlay。
本文简要介绍这两种产品。
查询与报表工具Impromptu是企业级交互式数据库查询与报表生成系统,由于它不仅可以分发给任意Impromptu用户,而且由于Impromptu支持Web 功能,报表也可以在组织机构内任意一台桌面发布和浏览。
对于IS 来说,Impromptu的面向对象的体系结构确保了在所有用户和所有报表之间的控制和管理一致性。
标准报表基于预定义规则和常规报表是最为普通的报表活动——Impromptu以比其他任何报表工具更迅速和更省力的方式为整个企业创建大量标准报表。
对那些阅览标准报表的人们来说,Impromptu灵活性意味着报表内容可以轻易地加以提炼以适合个人所需。
通过简单的点击工具条,用户可以容易地对信息进行分组、排序和过滤。
选取表和提示符以及异常报表也增加了分布式标准报表的价值。
选取表和提示符使用户具有在报表中选择特定查看项目的灵活性。
当汇总一份Impromptu报表时,报表作者可以创建一些项值称为“选取表(picklists)”,用户可以单击鼠标从表中选择一个项值,对于包含众多项值的报表,Impromptu给出提示符,以允许用户指定他们想看的项值或项值范围。
行列选取表进一步缩小了用户在报表中选取信息的范围。
Impromptu给经理们提供了三种处理异常数据(落入指定值域外的数据)的选择方案:★条件过滤器、仅提取落在特定限值之外的项值,用户可以指定他们特定的项值,也可以从一预定义的表列中选取。
IBM Cognos 升级版8.4新增功能优势说明1Cognos优势1.1功能级优势1.1.1强大的报表制作、部署和自动发布和报表管理功能利用Cognos报表的Web发布管理服务器,灵活的部署能力和负载均衡,发布成百上千份的报表。
用户能够非常方便的制作报表,自动在Web 上发布报表。
企业内部和外部的所有类型用户无需经过培训都可以通过Web访问、察看、打印报表。
由于Cognos自身具有强大的报表制作功能,所以Cognos 能满足上千用户在各自的桌面或远程访问所需的各种报表需求,特别是对复杂格式不均衡表头报表的支持(俗称“中国特色报表”),使得Cognos在国内的报表应用中更是遥遥领先竞争对手。
Cognos所有的报表制作都是免开发免编程的,用户仅需通过鼠标操作即可制作任意复杂格式的报表,这种易用性较之竞争对手的编码式报表制作要领先一个时代。
1.1.2有效的分析方法:“分析-然后-查询”(Analyze-Then-Query)Cognos Analyze – Then – Query 的数据访问方式使用户能够以所想的方法去探察业务数据——先分析汇总信息,然后再查看隐藏的细节。
通过Powerplay Enterprise Server与ReportNet产品的完美结合,Cognos为OLAP数据和关系型数据库中的细节数据之间搭建了通畅的桥梁,用户仅需一次鼠标点击,便可由宏观视图钻取到微观细节。
1.1.3对多种数据源的支持和数据整合能力Cognos产品能够连接多种关系型数据源和文本型数据源,能将DB2、Informix、SQL Server、Oracle、Microsoft SQL Server、Teradata等多种关系型数据库中的数据抽取并融合在一起,形成完整的企业级数据视图。
1.2性能级优势1.2.1Olap server 的优势和快速的数据访问分析能力Cognos 具有强大的专业化的OLAP 数据引擎(OLAP 服务器),它能产生多维数据分析的立方体(Cubes)。
ERPF报表维护手册建设银行ERPF项目文档编号CCBBI_PM061110_001版本号V1.00密级内部资料cognos报表数据项表达式函数的应用手册文档信息批复信息文件控制目录1引言 (5)1.1编写目的 (5)1.2背景 (5)1.3参考资料 (5)1.4术语定义及说明 (5)2汇总函数 (6)2.1aggregate (6)2.2average (6)2.3count (6)2.4maximum (7)2.5median (7)2.6minimum (7)2.7moving-average (7)2.8moving-total (8)2.9percentage (9)2.10percentile (9)2.11quantile (9)2.12quartile (10)2.13rank (11)2.14running-average (11)2.15running-count (12)2.16running-difference (12)2.17running-maximum (13)2.18running-minimum (13)2.19running-total (14)2.20standard-deviation (14)2.21standard-deviation-pop (15)2.22total (15)2.23variance (15)2.24variance-pop (15)3业务日期/时间函数 (17)3.1_add_days (17)3.2_add_months (17)3.3_add_years (17)3.4_age (18)3.5_day_of_week (18)3.6_day_of_year (18)3.7_days_between (18)3.8_days_to_end_of_month (19)3.9_first_of_month (19)3.10_last_of_month (19)3.11_make_timestamp (20)3.12_months_between (20)3.13_week_of_year (20)3.14_years_between (20)3.15_ymdint_between (21)4块函数 (22)4.1_firstFromSet (22)4.2_remainderSet (22)5供应商特定函数(Oracle函数) (23)5.1add_months (23)5.2ascii (23)5.3char_length (23)5.4chr (23)5.5concat (24)5.6decode (24)5.7dump (24)5.8greatest (24)5.9initcap (25)5.10instr (25)5.11instrb (25)5.12least (26)5.13length (26)5.14lengthb (26)5.15lpad (26)5.16ltrim (27)5.17months_between (27)5.18new_time (27)5.19next_day (27)5.20nls_initcap (28)5.21nls_lower (28)5.22nls_upper (28)5.23nvl (28)5.24replace (29)5.25round (29)5.26rpad (29)5.27rtrim (30)5.28sign (30)5.29soundex (30)5.30substr (30)5.32to_char (31)5.33to_date (31)5.34to_number (31)5.35translate (32)5.36trunc (32)5.37trunc (32)5.38vsize (32)5.39{sysdate} (33)5.40{user} (33)6Oracle Cast函数 (34)6.1cast_varchar (34)6.2cast_timestamp (34)7Oracle数学函数 (35)7.1Log (35)8Oracle三角函数 (36)8.1acos (36)8.2asin (36)8.3atan (36)8.4atan2 (36)8.5cos (37)8.6cosh (37)8.7sin (37)8.8sinh (37)8.9tan (38)8.10tanh (38)9通用函数 (39)9.1_format (39)9.2_round (39)9.3abs (39)9.4cast (39)9.5ceiling (40)9.6character_length (40)9.7coalesce (40)9.8current_date (40)9.9current_time (41)9.10current_timestamp (41)9.11exp (41)9.12extract (41)9.13floor (42)9.15localtime (42)9.16localtimestamp (42)9.17lower (43)9.18mod (43)9.19octet_length (43)9.20position (43)9.21power (44)9.22sqrt (44)9.23substring (44)9.24trim (44)9.25upper (45)1引言1.1编写目的整理cognos的report studio中在数据项表达式中比较常用的函数的应用。
并可供以后需要用到的同事参考。
1.2背景在开发报表过程中积累的一些经验和总结。
1.3参考资料Cognos中的帮助文档和oracle的参考文档。
1.4术语定义及说明2汇总函数2.1aggregate用法:aggregate ( expr [ auto ] )aggregate ( expr for [ all | any ] expr { , expr } )aggregate ( expr for report )作用:根据表达式的聚合类型,返回使用相应的聚合函数计算得出的值。
Example:aggregate ([本期余额])根据数据项[本期余额]的聚合类型,返回使用相应的聚合函数计算得出的值。
如果[本期余额]是sum()得到,则返回所有[本期余额]的合计。
2.2average用法:average ( [ distinct ] expr [ auto ] )average ( [ distinct ] expr for [ all | any ] expr { , expr } )average ( [ distinct ] expr for report )作用:返回选定数据项的平均值。
关键字distinct的作用是,当某个数据项有多个重复的项时,当中只有一个数据项有效。
Example:average ( [本期余额] )返回所有[本期余额]的平均值2.3count用法:count ( [ distinct ] expr [ auto ] )count ( [ distinct ] expr for [ all | any ] expr { , expr } )count ( [ distinct ] expr for report )作用:返回选定数据项的数量,但不包括NULL值。
关键字distinct的作用是,当某个数据项有多个重复的项时,当中只有一个数据项有效。
Example:count( [行号] )返回所有[行号]总的数量。
2.4maximum用法:maximum ( [ distinct ] expr [ auto ] )maximum ( [ distinct ] expr for [ all | any ] expr { , expr } )maximum ( [ distinct ] expr for report )作用:返回选定数据项的最大值。
关键字distinct的作用是,当某个数据项有多个重复的项时,当中只有一个数据项有效。
Example:Maximum ([本期余额])返回数据项[本期余额]中的最大值。
2.5median用法:median ( expr [ auto ] )median ( expr for [ all | any ] expr { , expr } )median ( expr for report )作用:返回选定数据项的中间值。
Example:median ( [本期余额] )返回数据项[本期余额]中的中间值2.6minimum用法:minimum ( [ distinct ] expr [ auto ] )minimum ( [ distinct ] expr for [ all | any ] expr { , expr } )minimum ( [ distinct ] expr for report )作用:返回选定数据项的最小值。
关键字distinct的作用是,当某个数据项有多个重复的项时,当中只有一个数据项有效。
Example:minimum ( [本期余额] )返回数据项[本期余额]中的最小值2.7moving-average用法:moving-average ( numeric_expr , numeric_expr [ at exp {, expr } ] [ <for-option> ] [ prefilter ] )moving-average ( [ distinct ] numeric_expr , numeric_expr [ <for-option> ] [ prefilter ] )<for-option> ::= for expr {, expr } | for report | auto作用:按行返回指定的一组值在指定行数上的移动平均值。
<for-option>定义函数范围。
at option 定义聚合级别,只能在关系数据源上下文中使用。
关键字distinct的作用是,当某个行有多个重复的行时,当中只有一个行有效。
Example:moving-average ([本期余额],3)2.8moving-total用法:moving-total ( numeric_expr , numeric_expr [ at exp {, expr } ] [ <for-option> ] [ prefilter ] )moving-total ( [ distinct ] numeric_expr , numeric_expr [ <for-option> ] [ prefilter ] )<for-option> ::= for expr {, expr } | for report | auto作用:按行返回指定的一组值在指定行数上的移动合计。