从9月份一直忙到了现在,项目整体的改版工作也完成了十有八九了,有些事情只有你自己真正的做了,你才能明白:哦,原来还可以这个样子,这样做真的好了很多呢,接下来我就分享一些最近遇到的RS开发的一些小技巧,都是些基本的东西,已掌握的可以来温习一下,没掌握的希望可以帮到大家

一:UI设计

1.1:配色

可以利用字体颜色、背景颜色、图片等来补充RS常规报表以及单个数据项的单调感,例如下面通过图片以及字体颜色调整过的报表的效果

1.2:布局

布局大家都知道使用table了,提前像设计HTML的页面一样规划好布局,是该几行一列,然后拖入表格即可,如下面的操作,拖入一个两行三列

的表格

如何在原来基础上增加行和列呢,我们最先想到的是在原表格上面操作,但是我们选择了右键之后看到的是下面的界面,如下图所示并没有出现相应的

选项

这个时候就需要我们看RS上面的工具栏了,如下图,操作即可,可以在我们想要的位置添加行或列

PS:表格的大小如果要适应不同浏览器的话,比如在1024*768上可以占满屏幕,在1366* 768也需要占满屏幕,有什么方法和注意的地方呢?就只有下面一点

不要用px设置屋里大小,使用百分比%来设置表格的整体占比,里面的对象也使用百分比的形式,当然图表好像不能设置百分比那就没办法了

1.3:图表开发

1.3.1:去掉图表背景的交替色带

选择图表的主轴-常规-网格线:勾掉显示交替色带即可

1.3.2:让图表中的柱状图按高低值排序

(选择到数据项后,选择数据选项卡处的排序即可)

1.3.3:调出图表的其他数据轴:选择组合图

1.3.4:给折线图或者柱状图改变属性

改变颜色:选择序列

1.3.5:改变柱子大小以及去掉外面的边框线:选择序列

1.3.6最终的效果如图

二:数据项相关

2.1:使用过滤器取值

filter([物理层].[DIM_BI_MED].[med],[占比]>=(?percentfy?/100))

filter ( 集表达式 , 布尔表达式 )
返回按布尔条件过滤指定集后得出的集。当且仅当“布尔表达式”的对应值为 true 时,结果中才包含每个成员。
示例:filter ( [产品系列] , [毛利] > .30 )
结果:登山装备

2.2:按照某一个度量值取该度量值聚合后排名前N的维度名称

topCount([物理层].[DIM_BI_DEPT].[Detail_Dept_Name],10,[处方总数])

topCount ( 集表达式 , 索引表达式 , 数字型表达式 )
根据在“集表达式”的每个成员中算得的“数字型表达式”值对集进行排序,然后返回排名前“索引表达式”位的成员。

示例:topCount
( [大型户外设备公司].[产品].[产品].[产品系列] , 2 , [收入] )

结果:返回产品系列集中按收入排名前两位的成员。

2.3:取排名前几的数据

rank([订单金额])>n

返回选定数据项的排名值。排序顺序为可选;在默认情况下,采用降序(DESC)。如果两个或更多行排名相同,那么排名值的序列中会有一个缺值(也称为 Olympic 排名)。“<for 选项>”定义函数的作用域。“at”选项定义聚合级别,只能在关系数据源上下文中使用。Distinct 是与产品的较早版本兼容的替换表达式。空值排名最末。此函数出现在“GO 数据仓库(分析)”数据包中的“2005 年排名前 10 位的零售商”示样报表中。

示例:rank ( 98 年年度销售额 )

结果:对于每一行,将会返回 1998
年度每位销售代表所创造的销售额的对应排名值。如果有些行的排名相同,那么会跳过一些排名值。
2.4:取维度层级中前N个对象
subset([应用层].[科室].[明细科室],1,8)
subset ( 集表达式, 索引表达式1 [ , 索引表达式2 ] )
返回“集表达式”中成员的子集,从“索引表达式1”开始。如果指定了计数“索引表达式2”,那么返回多个成员 (如果有)。否则,将返回所有剩余成员。
示例:subset ( members
( [大型户外设备公司].[产品].[产品].[产品系列] ) , 2 )
结果:返回“产品系列”集的成员(从第二个成员开始)。

三:日期过滤

3.1:常规日期过滤

[date_sk]>=?s_Date? and [date_sk]<=?e_Date?

3.2:转化为int类型的过滤

(([治疗质量].[日期].[年].[年].[年编码]*10000 + [治疗质量].[日期].[年].[月].[月编码]*100 + [治疗质量].[日期].[年].[日].[日编码])>=(year(?s_Date?)*10000 + (month(?s_Date?)-2)*100 + day(?s_Date?))
)and

(([治疗质量].[日期].[年].[年].[年编码]*10000 + [治疗质量].[日期].[年].[月].[月编码]*100 + [治疗质量].[日期].[年].[日].[日编码]) <=(year(?e_Date?)*10000 + month(?e_Date?)*100 + day(?e_Date?)))

ps:(month(?s_Date?)-2)*100  取出开始日期的月份然后-2,向前推2个月

四:关于追溯

4.1:参数追溯

可以根据目标报表需要的值,传递本页面的值达到传参效果,例如省市县等从大到小,从汇总到明细数据的显示

4.2:提示页面设置

(1):始终,非默认属性,如果目标报表没有提示页面可能报错或者影响报表的性能

(2):仅在缺少所需的参数值时:此属性是默认的属性,一般不执行目标报表的提示页面

(3):基于目标报表的默认提示设置,非默认属性,如果目标报表有提示页面则执行,没有则不执行

综上所述:为了减少不必要的麻烦,追溯的显示提示页面属性一般设置为第三种情况即可

五:汇总占比

总计:total ([订单笔数]  for report

计数:count(distinct [月] for report)

平均:[总计]/[计数]

效果如下图

六:JS取Cognos对象的值

  • Text Edit Box            _textEditBox<prompt name>
  • List Box         _oLstChoices<prompt name>
  • Drop Down List    _oLstChoices<prompt name>
  • Radio Button Group   _oLstChoices<prompt name>
  • Check Box Group    _oLstChoices<prompt name>
  • Date Edit Box             txtDate<prompt name>

需要注意的是,具体取值的时候

如果是下拉

var form=getFormWarpRequest();
var province=form._oLstChoicesprovince;
alert(province.options[2].value);

如果是单选按钮组

 var form=getFormWarpRequest();
var province=form._oLstChoicesprovince;
alert(province[0].value); 

RS开发中的一些小技巧[不定期更新]的更多相关文章

  1. Python(^^^^^小技巧^^^^^——不定期更新)

    偶然想到的小技巧 ''' 交互中对传入函数的参数的数目进行检测 ''' def func(a,b,c): print(a,b,c) s=input(">>>>:&qu ...

  2. 日常开发中的shell小技巧

    工具推荐 命令行中很方便的代码统计工具---cloc 强大的分屏工具---tmux 最舒服的markdown书写工具---typora markdown图床推荐--七牛云 模拟生成熵(避免暴力手搓键盘 ...

  3. Java开发中的一些小技巧

    原文:http://www.cnblogs.com/xdp-gacl/p/3490276.html 一. Java获取URL地址中传递的参数 /** * 获取URL中的参数名和参数值的Map集合 * ...

  4. iOS开发中的那些小技巧

    前言:今天在写代码的过程中遇到一个需要修改系统navigationBar的背景色,我起初用的是barTintColor去修改但是防不住系统点击按钮的时候会有一个渲染高亮的效果,调了好久没有达到自己想要 ...

  5. JS开发中常用的小技巧

    1.获取指定范围内的随机数 1 2 3 function getRadomNum(min,max){     return  Math.floor(Math.random() * (max - min ...

  6. ios开发中的一些小技巧

    1.如果在程序中想对某张图片进行处理的话(得到某张图片的一部分)可一用以下代码:   UIImage *image = [UIImage imageNamed:filename]; CGImageRe ...

  7. JS开发中的一些小技巧和方法

    生成指定范围内的随机数 当我们需要获取指定范围(min,max)内的整数的时候,下面的代码非常适合:这段代码用的还挺多的. function setRadomNum(min,max){ return ...

  8. Cocos2d-JS开发中的一些小技巧

    1.获取URL中的请求参数的值----此方法接收参数名 function getQueryString(name) { var reg = new RegExp("(^|&)&quo ...

  9. C#中使用swagger小技巧

    C#中使用swagger小技巧 swaggerUI显示的接口内容主要用于开发阶段便于与前端联调,不适合发布到对外的站点. 有以下两种方式,让接口不显示在SwaggerUI中 1.使用属性 [ApiEx ...

随机推荐

  1. 【洛谷P1351】联合权值

    我们枚举中间点,当连的点数不小于2时进行处理 最大值好搞 求和:设中间点 i 所连所有点权之和为sum 则对于每个中间点i的联合权值之和为: w[j]*(sum-w[j])之和 #include< ...

  2. TextView的一些高级应用(自定义字体、显示多种颜色、添加阴影)

    1.    自定义字体可以使用setTypeface(Typeface)方法来设置文本框内文本的字体,而android的Typeface又使用TTF字体文件来设置字体所以,我们可以在程序中放入TTF字 ...

  3. Subsets 子集系列问题 leetcode

    子集系列问题: Coding 问题中有时会出现这样的问题:给定一个集合,求出这个集合所有的子集(所谓子集,就是包含原集合中的一部分元素的集合). 或者求出满足一定要求的子集,比如子集中元素总和为定值, ...

  4. SR触发器和JK触发器

    SR触发器(电平触发器) 基本RS触发器的逻辑方程为:Q(n+1)=一S+RQ(n); 约束方程:R+S=1; 根据上述两个式子得到它的四种输入与输出的关系: 1.当R端有效(0),S端无效时(1), ...

  5. 不要手动StopWatch了,让BenchmarkDotNet帮你

    Nuget: https://www.nuget.org/packages/BenchmarkDotNet/ Project Site: https://github.com/PerfDotNet/B ...

  6. Dynamic CRM 2013学习笔记(九)CrmFetchKit.js介绍:Fetchxml、多表联合查询, 批量更新

    CrmFetchKit.js是一个跨浏览器的一个类库,允许通过JavaScript来执行fetch xml的查询,还可以实现批量更新,分页查询等.目前已支持Chrome 25, Firefox 19 ...

  7. 傻逼Eclipse笔记

    Eclipse 这么傻逼的工具,还有人用,真是奇了怪了. Invalid project description 我想打开SVN 的代码 ,别让我拷到别的地方,怎么破? 正确答案是: 删除 Eclip ...

  8. 团队项目--站立会议 DAY2

    小组名称:D&M 参会人员:张靖颜,钟灵毓秀,何玥,赵莹,王梓萱 项目进展: 1,张靖颜:进行了对需求的分析,将项目框架搭建进行完善,辅助编写代码. 2,钟灵毓秀:相关功能的代码的完善,进行一 ...

  9. 在Android中调用C#写的WebService(附源代码)

    由于项目中要使用Android调用C#写的WebService,于是便有了这篇文章.在学习的过程中,发现在C#中直接调用WebService方便得多,直接添加一个引用,便可以直接使用将WebServi ...

  10. [C#] Timer + Graphics To Get Simple Animation (简单的源码例子,适合初学者)

    >_<" 这是一个非常简单的利用C#的窗口工程创立的程序,用来做一个简单的动画,涉及Timer和Graphics,适合初学者,高手略过~