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,如需转载请自行联系原作者





相关文章
|
5月前
Element UI 【表格合计】el-table 实战范例 -- 添加单位,自定义计算逻辑
Element UI 【表格合计】el-table 实战范例 -- 添加单位,自定义计算逻辑
476 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 -
SAP LSMW Standard Batch (Direct) Input 方式制作的LSMW工具导入OPEN PO 单据时候’税码’字段的处理
SAP LSMW Standard Batch (Direct) Input 方式制作的LSMW工具导入OPEN PO 单据时候’税码’字段的处理
SAP LSMW Standard Batch (Direct) Input 方式制作的LSMW工具导入OPEN PO 单据时候’税码’字段的处理
SAP LSMW里BAPI这种导入数据方法定义里面的Method和Basic Type分别是在哪里维护的?
SAP LSMW里BAPI这种导入数据方法定义里面的Method和Basic Type分别是在哪里维护的?     这是SAP标准的,至于如何定义,进入事务代码BAPI, ...
1632 0