SSRS 2012 Report Items -- 独立报表单元

简介:

SSRS 2012 Report Items -- 独立报表单元


数据区域会与数据集细节以显示数据内容,独立报表单元则与数据集无关(文本框仅能显示单笔数据内容),但是却与报表排版与美观息息相关。

 

文本框


有别于“数据表”呈现多笔数据的特性,当我们想要加入标题或是制作报表的表头中的文字,“文本框(Textbox)”可说是最好的选择,“文本框”不但可显示报表中的数据(一次只能显示一笔),同时也可以显示参数,内置字段甚至于表达式的计算结果。前面介绍的数据表或矩阵,其实都可以视为一连串的文本框的组合,更不用提列表了,文本框是列表构成弹性报表结构的重要基本单元。

 

在操作方面,一样也是从工具箱拖拉至报表设计区,以刚才的缴费单为例,我们先输入缴费单的学校名称,请将文本框内的文字输入“某某大学”,接下来,在下方再拖放一个文本框,点击此框,选择“表达式”,并输入以下表达式内容:

 

<Fields!SchoolYear.Value+”学年度第”+Fields!SchoolSemester.Value+”续期注册缴费单”>

 

基本上,这个表达式的意思是将自定义文本以及数据列的文字相加,请记得,SSRS表达式中的字符串都需要以“双引号”标注。同理,各位可以将原来[SchoolCollege]字段改为“=”学院:”+Fields!CollegeName.Value”,其余字段依次类推。

 

在“文本框”中还提供许多属性可以用来变更内容的格式。

 

例如,我们将缴费单的学校名称等文本框的“TextAlign”设为“Center”,如此即可将文字内容放在中间。此外,也可以利用字型属性来设置显示的字体以及颜色格式。

 

clip_image002

 

clip_image004

 

需要注意的是,若是文本框内输入的是数字或是日期,可以利用格式化字符串的方式来更新文本框的“Format”属性,以转换成指定数字或日期的格式。这个部分想必各位并不陌生,因为之前的范例中已经利用“C0”字符串格式来调整销售金额的显示格式了,以下我们针对字符串格式做更深入的介绍。

 


格式化字符串

说明

C或c

显示操作系统中地区选项所设置的货币格式,包含千分位以及小数点

D或d

显示十进制数字,不包含千分号。位数不足前方补零,只支持整数格式

E或e

以科学计数显示数字,可指定小数位数

F或f

显示十进制数字,不包含千分号,可以指定小数位长度,不足者补零

G或g

以科学计数显示数字,不可指定小数位数

N或n

数字,包含千分位符号

P或p

百分比,可指定小数位数,含千分位

X或x

十六位数字,只支持整数数据


 

除了少数像是D、G或是X这类只支持整数格式的字符串之外,大多数的字符串格式同时可以指定小数点的精确位数。指定小数位数的方法很简单,只需要在字符串后直接接上要指定的小数位数即可。举例来说,我们希望数值变成小数下两位的货币格式,那么就只要将Format属性设为C2即可。

 

关于数值格式的设置,可以参考如下:

 


格式化字符窜

原始数据

结果

d8

1234

00001234

f4

1234.56

1234.5600


 

除了以上的常用字符串格式之外,也可以定制字符串:

 


定制数值字符串格式化

格式

#

代表数值位数

0

代表数值固定位数

.

小数点

,

千分号

%

百分比符号


 

举例来说,如果我们希望数值保留千分位符号,且小数点下两位,则此时就要在Format属性中填入=”#,###.##”,此时,原来数值“1233.567”就会被格式化为“1,233.57”。格式化字符串“#”与“0”之间最大的差别在于,如果使用“#”,当位数不足时,并不会自动补齐,而如果使用“0”,则会在不足位数之处补零。举例来说,数值“1233.5”的Format设为=”#,###.###”时,则呈现结果为“1,233.5”;但若是Format设为=”0,000.000”时,则呈现结果为“1,233.500”。此外要注意的是,如果是使用默认常见字符串格式,只要直接在Format属性输入格式化字符串即可,如果是使用定制字符串格式时,必须在开头加上等号,同时字符串前后加上双引号。

 

日期的格式化就显得更加复杂,因为涉及以符号显示还是以文字显示的问题。以下是默认常用的日期字符串格式。

 


日期格式化字符串

说明

d

简单日期

D

完整日期(完整年月日)

t

简单时间(时分)

T

完整时间(时分秒)

f

完整日期时间(完整年月日)

F

完整日期时间(完整年月日,时间到时分秒)

g

一般日期时间

G

一般日期时间(时间到时分秒)

R或r

RFC1123格式


 

日期格式化字符串呈现的结果:

 


格式化字符串

原始数据

结果

d

2004/7/19 下午 10:07:21

2004/7/19

D

2004/7/19 下午 10:07:21

2004年7月19日

t

2004/7/19 下午 10:07:21

下午10:07

T

2004/7/19 下午 10:07:21

下午10:07:21

f

2004/7/19 下午 10:07:21

2004年7月19日 下午10:07

F

2004/7/19 下午 10:07:21

2004年7月19日 下午10:07:21


 

除了使用基本的日期格式化字符串之外,还可以使用定制日期字符串格式来显示时间。

 


定制日期字符串格式

格式

D

日期

Dd

日期,不足二位数者前方补零

Ddd

星期几

Dddd

星期几完整名称

M

月份

MM

月份,不足二位数者补零

MMM

完整月份名

Y

年份

Yyyy

完整公元年份


 

举例来说,我们希望日期格式显示“2011-01-01”的话,就只要在Format属性处输入=”yyyy-MM-dd”即可。如果要显示的是“2004/1/1”,则要将Format的表达式改写为=”yyyy/M/d”。

 

除此之外,还有两个文本框属性会影响到日期格式的显示,那就是Calendar以及Language。Calendar属性是会自动将日期转换成指定国家历法的对应年份。而Language影响的范围则是使用者操作系统的地区设定,来显示地区定制的格式。

 

请注意,Calendar的设置会受到Language所影响。举例来说,当Language设为“中文(简体)”时,Calendar属性就不得设为“Japan”。如果希望设置特殊国家的历法时,必须事先将Language设置为正确的语言。

 

在新增“文本框”时,我们会发现默认的大小是固定的,若想改变“文本框”的大小,可直接拖放“文本框”的边框来调整,或是利用属性窗口的“Size”属性的“Width”与“Height”来设置,使用属性设置比较可以确保文本框的大小以便排列整齐。

 

当文本框内呈现的是数据库字段内容或计算后产生的结果时,通常都无法预期数据内容的长度是否会超过“文本框”的大小,此时,可将“CanGrow”属性设置为“True”,“文本框”会随着其中的内容横向扩展,而高度将会保持原状不会改变。相反的,也有可能显示的文字内容小于“文本框”,大部分情况下,都会让“文本框”维持原状。但如果在特别的情况下,将“CanShrink”属性设为“True”,可达到自动缩小“文本框”宽度的效果。

 

线条


线条(Line)可说是在报表单元中最单纯,容易上手的,除了可以放置在页面上任何地方,还可以随心所欲的拖放,斜放、垂直或水平的形式来梅花报表或用作为报表标题与正文的分割线,但比较遗憾的是目前SSRS还无法画出弯曲的线条。

 

与一般绘图工具相同的是,“线条”是由“起点(Location)”和“终点(EndPoint)”属性来定义它的位置,并且可以通过“LineColor”、“LineWidth”、“LineStyle”外观属性改变线条的颜色、粗细、样式,例如:实线(Solid)、虚线(Dashed)或点(Dotted)让线条更为活泼美观。

 

此外,“线条”的长度无法随着报表大小的改变而动态延伸,必须再以手动方式做调整,因此,如果想要使用“线条”做为报表标题的底线,建议设定“文本框”的“BorderStyle”属性,会比使用“线条”来得方便许多。

 

以刚才的徐杂费缴费单为例,我们可以利用虚线来设定缴费单的分割线,同时搭配文字方块以呈现缴费单所需的各项说明信息。

 

矩形


在SSRS中,矩形(Rectangle)除了作为装饰报表的图形元素外,还可以用来放置其他报表单元,不仅可将单元组化,当多个文本框或其他报表单元同时需要在报表中变换位置时,只需要移动一个“矩形”就能达到此效果,更有助于版面的编排。

 

“矩形”的属性中大多属于外观设置,其中“PageBreak”属于比较特殊的属性,利用其“Start”、“End”或“StartAndEnd”属性,可强制在报表中加入换页的效果。例如,我们在刚才的学杂费缴费单的矩形(列表一定会伴随着矩形)中设置“PageBreak”属性为“End”,就可以让学杂费单一张变成一页。

 

图像


在制作商务报表时,除了会使用文字内容之外,图形内容也是不可或缺,尤其是大多数的企业报表都希望能放入公司Logo或是说明图片,除了单纯的图像之外,也可以用来作为背景图或水印。因此,SSRS贴心地提供了“图像(Image)”报表单元,让报表可以经由图片使得内容更为丰富、生动。

 

SSRS的“Image”支持.BMP、.JPEG、.GIF和.PNG四种图像格式,并且提供多种图像来源,包括:

n 内嵌在报表中的图像(Embedded Image)。

n 从数据库读取的图像(Database Image)。

n 外部的图像URL。

 

以下将针对各种图像模式的操作过程进行说明。

 

内嵌

 

内嵌(Embedded Image)顾名思义是将图像嵌入报表中。使用内嵌图像时,报表设计器会以MIME(Multipurpose Internet Mail extension)的形式来编码图像,并且在报表定义文档(.rdl)将“Image”储存为文字。如此即可将所有图像的数据储存在报表定义中。使用内嵌图像的好处是,可以确保报表随时都能使用图像,但缺点是该图像文件只有这个报表可以使用,无法和其他报表共享,并且也会使报表定义的大小增加。

 

设置内嵌图像的步骤很简单,首先,从工具箱中拖拉“Image”至报表设计区域,此时,弹出的对话框中的“General”标签页将“select the image source”选择“Embedded”选项,可在“Use this image”处指定图像的路径,或是利用“Import…”功能将图像导入项目中,即可完成设置。

 

clip_image006

 

clip_image008

 

单击“OK”按钮,即可在报表数据窗口中的“Image”目录中看到刚才加入的图像,同时报表设计区域中也可以看到此图像内容,设计者可以自行调整图像大小以及摆设位置。

 

外部图像

 

外部图像可以利用两种模式来使用,第一种是将图像储存于报表单元中,第二种方式则是利用URL来引用图像。

 

相对于将图像嵌入在报表内,将图像储存在报表单元中的最大好处在于,当部署项目时,图像会被当成独立数据,会与报表定义文件分开放置在报表服务器上。假若有许多报表需要使用到相同的图片文件(如企业商标),使用者储存于报表单元的方式,即可让图像文件能够跨报表共享,且当图像文件更换时,只需要重新部署项目内的图像,不必重新部署报表,只需按下重新整理报表,即可查看更新后的图像。

 

如果希望将图像加入项目,只需在方案资源管理器中右击“Reports”图示,选择“Add”、“Existing Item…”,将文件类型切换为所有文件,即可将图像加入项目之中。

 

clip_image010

 

当项目加入图像之后,待拖拉新的图像之后,将“Select the image source”设为“External”,即可在“Use this image”的下拉菜单中看到刚才加入项目的图像名称,选择此图像即可引用到项目内。

 

clip_image012

 

另一种外部图像使用方式则是使用URL存取网络服务器上的图像文件。在报表中希望使用网络上的图像时,只需在“Use this image”区域直接输入链接到图像的URL地址(例如:/image1.jpg">http://<servername>/image1.jpg)即可,不过请注意,有些网站会设置安全性策略禁止外部盗链图片,如果有限制其实会造成引用图像失败。

 

数据库

 

前面介绍了内嵌与外部两种图像来源的使用方式,这两种图像来源比较适合在加入少量的图片文件到报表时使用,但是当文件数量较多,或是希望利用参数动态修改对应图片内容时,比较建议将图片先以二进制的方式储存到数据库中。

 

如何将图像存储到数据库中?

 

可以使用以下语法来将图像更新至图像列:

UPDATE 表

SET 图像列 =(

SELECT * FROM OPENROWSET(

BULK ‘图像路径’, SINGLE_BLOB)AS A)

WHERE …

 

当拖拉图像至报表设计区时,首先,将“Select the image source”改为“Database”,并在“Use this field”下拉菜单选择要使用的二进制字段,接下来,请指定该二进制编码的MIME类型,如image/jpeg。

 

clip_image014

 

接下来,请切换至“Size”标签页,勾选“Original Size”,如此图像就会以原来的大小来显示。

 

clip_image016

 

在此使用了“List”来编排书籍的封面文件、书名、作者以及出版社信息。

 

以上是加入图像文件的三种模式,此外,图像也可以利用属性来调整相关格式。

 

当图像文件放入报表时,会发现“Image”报表单元的大小不一定会等于原图片文件的尺寸,此时,可通过图像的“Sizing”属性的四种不同设置方式,依原图片比例调整、缩放,或以“Image”项目所设置的大小为基准对原图片进行切割。

 

clip_image018

 

 

图像的“Sizing”属性有“AutoSize”、“Fit”、“FitProportional”、“Clip”四种设置方式。SSRS默认“图像”的属性为“FitProportional”。

 

设置完成图像文件后,还可以为其他报表单元设置“BackgroundImage”属性,此属性是用来设置背景图像,这是一个属性集合。

 

clip_image020
















本文转自UltraSQL51CTO博客,原文链接: http://blog.51cto.com/ultrasql/1609277,如需转载请自行联系原作者





相关文章
|
6月前
如何通过扩展(Extension)的方式给 SAP Fiori Elements List Report 的表格新增列试读版
如何通过扩展(Extension)的方式给 SAP Fiori Elements List Report 的表格新增列试读版
38 0
SAP MM ML81N为采购订单创建服务接收单,报错- No matching PO items selected -
SAP MM ML81N为采购订单创建服务接收单,报错- No matching PO items selected -
SAP MM ML81N为采购订单创建服务接收单,报错- No matching PO items selected -
|
XML 前端开发 数据格式
SAP Fiori Elements 在本地测试模式下如何修改 List Report 里字段标签和图标
通过 Jerry 这篇文章 在没有任何前端开发经验的基础上, 创建第一个 SAP Fiori Elements 应用 介绍的步骤,创建一个简单的 SAP Fiori Elements 应用。
113 0
SAP Fiori Elements 在本地测试模式下如何修改 List Report 里字段标签和图标
|
索引
如何从 SAP Fiori Elements List Report Table 点击事件响应函数里拿到表格某一行的信息
如下图所示,我按照这篇文章 如何在 SAP Fiori Elements List Report 表格工具栏里增添新的自定义按钮 里介绍的方式,在 SAP Fiori Elements List Report 应用的 table 工具栏里,添加了一个自定义按钮:
123 0
如何从 SAP Fiori Elements List Report Table 点击事件响应函数里拿到表格某一行的信息
如何查看 SAP Fiori Elements List Report Table 都支持哪些设置
我之前写过一篇文章:答网友提问:使用 SAP Fiori Tools 创建的 Fiori Elements 应用,如何进行二次开发?,在 manifest.json 设置里,能够对 List Report 里的 table 进行设置:
117 0
如何查看 SAP Fiori Elements List Report Table 都支持哪些设置
SAP Spartacus User form属性的运行时字段明细
SAP Spartacus User form属性的运行时字段明细
SAP Spartacus User form属性的运行时字段明细