SSRS文档一简单案例(一)在VisualStudio2008中,创建报表服务器项目,创建一个报表(.rdl)文件。2.在Repo rtData中,创建并配置数据源DataSource,这里,连接SQLServer本地业务数据库。里面有三个部分:关键步骤: 1.在VisualStudio2008中,创建报表服务器项目,创建一个报表(.rdl)文件。2.在ReportData中 ,创建并配置数据源DataSource,这里,连接SQLServer本地业务数据库。SSRS2k8支持的常用数据源,包括:- MicrosoftSQLServer,SQLServerAnalysisServices-Oracle,SAPNe tWeaverBI,HyperionEssbase,Teradata-ReportServerModel,XML,OLE DB,ODBC4.设计报表布局,配置数据绑定、分组等。产品销售数据集配置后(步骤三),在Design页面,添加数据表,设置报 表标题,将产品Product,销售额Amount绑定到对应报表位置,并对产品Product字段设置分组。完成后,切换Preview 页面预览按产品汇总的销售情况。??5.按类别交互1)设计检索类别基本信息的数据集Category(类别编号CategoryID,类 别Category)2)创建并配置参数Parameter?@Category,数据集选择Category数据集,显示字段选Cat egory,值字段选CategoryID3)再配置DataSet1(步骤三所设),对数据集添加动态参数,并赋值(5.2所设参数), 添加where条件wherea.CategoryID=@Category??4)在SSRS中,预览。选择类别,呈现该类产品销 售汇总。(二)继续上面了解的基础之上。首先为数值字段设置显示格式。右键单击Table控件中的数值区域,选择TextBoxPro perties…文本框属性。在属性窗体中左侧选择Number,然后选择Currency。设置完毕后,同样为另外两个字段设置格式。设 置好后可以看到报表预览中报表中的数字已经发生了变化。接下来为报表添加分组功能。在报表设计界面中,留意下面的RowGroups区域 。将ReportData中的数据集中的SHIPDATA拖拽到RowGroups区域,位于Details的上边,然后将Produ ctCategory拖拽到RowGroups中SHIPDATE和Details之间。简单的分组建立完毕,然后可以通过预览功能看到 报表分组之后的样子。接下来为经过分组之后的报表添加汇总功能。切换回报表的设计模式,在RowGroups区域中,右键单击SHIPD ATE,选择AddTotal->After。这样讲在分组数据的最后面添加汇总数据的功能。然后依次给ProductCategory 也添加同样的汇总数据功能,最后报表设计界面中的Table控件看上去会如下图一样。点击预览标签可以看到分组报表添加汇总功能之后的样子 。下面介绍如何给报表添加展开的功能。展开的依据就是根据分总的报表。右键点击ProductCategory,然后点击GroupPr operties分组属性。在分组属性界面中,点击左侧的Visibility,然后点击右侧的Hide让分组默认是关闭状态,最后勾选下 面的Displaycanbetoggledbythisreportitem,使展开项是根据哪个报表元素展开的。这里选 择SHIPDATE,因为这里报表的展开按钮就是要加在SHIPDATE的前面,然后来展开ProductCategory之后的列的信息 。点击OK后,可以在Preview里看到带有展开功能的报表。点击SHIPDATE项前面的加号,可以看到位于这一项下面的详细信息。? 最后,我们留意到报表的参数中,年份的选择是手工输入的,这样明显不够友好,而且错误的输入也会给报表产生错误。我们通常希望这里显示的年 是实际数据中所有的年份,所以我们这里为这个参数单独指定一个查询来建立数据集。右键单击Datasets选择AddDataset…新 建一个数据集。在数据集属性中,首先选择Useadatasetembeddedinmyreport,然后在Dataso urce数据源下拉列表中选择项目中建立的数据源。最后在Querytype中选择Text然后在Query中输入如下的SQL语句:S ELECT?DISTINCT?LEFT(ShipDateKey,4)?AS?[DATEYEAR]FROM?[AdventureWo rksDW2012].[dbo].[FactInternetSales]ORDER?BY?LEFT(ShipDateKey,4)? DESC?点击OK后,数据集建立完毕,下面将它绑定到参数@YEAR中。展开Parameters,右键单击@YEAR参数,选择Par ameterProperties。在报表参数属性中,左侧选择AvailableValues,然后在右侧选择Getvalues fromaquery,在Dataset中选择刚才新建立的数据集,然后在Valuefield和Labelfield中分别指 定数据源列的DATEYEAR作为值列和标签列。数据集绑定完毕,点击OK后点击Preview浏览报表,可以看到YEAR参数已经变成下 拉可以选择的状态了。?以上,一个简单的报表就制作完毕了,它包含了报表最基本的功能,还有分组和折叠以及参数等功能。报表制作完毕之后需 要发布到报表服务器,在发布之前,首先要确认报表服务器地址。在报表项目的SolutionExplorer中,右键单击项目名称,选择 Properties。在TargetServerURL中需要输入报表服务的路径,它的通常格式就是http://[你的机器名]:80 /reportserver。通过上面的设置确定报表发布到哪里之后,再次右键单击项目名称,点击Deploy。然后系统启动部署流程,在 Output界面可以看到部署的结果。(还记得第一篇中我们为自己的管理员账户配置了相应的权限吗?)部署完成之后,打开reportse rver管理界面,可以看到项目文件已经被部署到网站的根目录下,点击ReportProject1文件夹。可以看到刚才编辑的报表,点 击它。可以看到在浏览器下的报表效果。??以上如何建立一个报表就简单介绍到这里,相信已经对报表服务已经有了大体的了解。二SSRS表 达式2.1数学函数Round?函数可用于将数字舍入为最接近的整数。下面的表达式将1.3舍入为1:=Round(1.3)您也 可以编写表达式以将某个值舍入到您指定的倍数,类似于Excel中的?MRound?函数。用某个生成整数的因子乘以该值,对数字进行 舍入,然后除以同一因子。例如,若要将1.3舍入到.2(1.4)的最接近的倍数,请使用下面的表达式:=Round(1.3 5)/52.1.1计算数据集的聚合值。=First(Fields!Sales.Value,"DataSet1")2.2日期函数T oday?函数可提供当前日期。此表达式可用在文本框中以在报表上显示日期,或用在参数中以根据当前日期筛选数据。=Today()若要基 于单个参数提供日期范围,可使用?DateAdd?函数。下面的表达式提供名为?StartDate?的参数日期之后六个月的日期。=Da teAdd(DateInterval.Month,6,Parameters!StartDate.Value)Year?函数可显 示某个特定的日期的年份。您可以使用此表达式将日期组合在一起,或者将年份显示为一组日期的标签。此表达式可以提供一组给定的销售订单日期 的年份。Month?函数和其他函数也可用于日期操作。有关详细信息,请参阅VisualBasic文档。=Year(Fields !OrderDate.Value)您可以在表达式中组合函数,以自定义格式。下面的表达式将“月-日-年”的日期格式更改为“月-周-周 数”。例如,将“12/23/2009”更改为“DecemberWeek3”:=Format(Fields!MyDate.Val ue,"MMMM")&"Week"&_(Int(DateDiff("d",DateSerial(Year(Fields!MyDate.Value),_Month(Fields!MyDate.Value),1),Fields!FullDateAlternateKey.Value)/7)+1).ToString当此表达式在数据集中用作计算字段时,您可以在图表上使用该表达式来按每个月内的周聚合值。 |
|