Report Studio之界面优化技巧一、动态显示图片

浏览: 2597

在前面的博文里,我们一起研究了移动差。彼示例展示了销售数量在月份上的变化。

用户希望在此报表每一行中加入红绿灯图片,基于月和月之间销售数量的变化情况,显示红灯,黄灯或者绿灯,以使报表看起来更直观。

 

准备工作

 

这里我们使用博文《Report Studio进阶技巧五、在括号中以红色显示移动差》中所建立的报表。在Report Studio中打开报表,并使用一个新的名字另存为一个备份。

注意:此例必须拥有Cognos administrator的权限。

1. 此例,我们首先需要创建三张对应于红绿蓝的图片。事实上,在路径{Cognos Installation}\webcontent\samples\images下已经存在我们需要的的图片了,名字分别为:red.jpgyellow.jpggreen.jpg。但是,即便没有,我们也可以使用任何图片编辑软件自己做。或者到网络上下载。

2. 现在假定我们已经在上述路径下存在我们需要的图片了。

3. 如果使用IIS Web服务器,那么请将webcontent目录对应的虚拟路径的“Anonymous Read and Browse”权限设置为allow

如果使用apache http server,情将wenbcontent目录对应的虚拟路径的option选项设置为all

4. 现在打开前面备份的移动差报表。

Clipboard Image.png

如何实施

 

1. 从“insertable objects”框体中,添加一个新的“image”对象到列表中,作为列表的一个列。

2. 转到Condition Explorer,新建一个string variable,并定义其表达式为:

if ([Query1].[Running Difference] > 0)

then ('green')

else if ([Query1].[Running Difference] < 0)

then ('red')

else ('yellow')

3. 设置此变量的名称为:Traffic,并为此变量定义3个值:redyellowgreen

Clipboard Image.png

4. 回到Report Explorer,选中图片,在属性栏中,打开URL Source Variable对话框,选择Traffic变量,点击OK

Clipboard Image.png

5. Condition Explorer中,选择‘redcondition。点击列表中的图片。

6. 在属性框中,设置URL属性为:../samples/images/red.jpg

Clipboard Image.png


7. 类似的,为condition yellow’和‘green’定义URL属性为:../samples/images/yellow.jpg../samples/images/green.jpg

8. 运行并测试报表。

Clipboard Image.png

工作原理

 

Report Studio允许我们通过设置URL的方式向报表中添加图片。图片既可以是保存在服务器本地的,也可以是网络中其他位置的,只要图片可以被Cognos服务和网关访问即可。

在此例中,我们使用了一张已经计算出移动差的报表。因此,我们只需要定义一个条件变量用来包含所有的可能的条件。Image组件允许我们通过设置URL Source Variable的方式,为不同的条件设置不同的URL

 

更多

 

此例中,尽管图片的显示是“动态”的,但其实,这并不是百分之百的动态,因为我们还编辑了三个静态的URL。其实我们还可以通过设置图片URL Source的的Source TypeReport Expression,然后编辑Report Expression,来完全动态的显示图片。

下面是表达式示例:

if [Query1].[Running-Difference]>0

then '../samples/images/green.jpg'

else if [Query1].[Running-Difference]=0

then '..samples/images/yellow.jpg'

else '../samples/images/red.jpg'

此示例也可以正确的显示在PDF或者Excel输出中。如果此报表需要在不同的服务器之间移植,因为在报表中我们使用了相对路径,所以请确保目标服务器也有相同的图片路径和文件,并且web服务器的安全策略相同。

推荐 0
本文由 zhengyi1943 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册