SQL Server报表服务中的一些常见小问题
2008-08-14 09:54:51 来源:WEB开发网SQL Server报表服务(SSRS)对于开发人员和用户来说是一个非常有用的设计和浏览报表的工具。但是,有些特性是在SSRS中没有提供为直接可以使用的。 这些特性是开发人员和用户经常需要的。
在一个报表中显示服务器名称或IP地址
当报表数据是运行在几个报表服务器上时,用户经常会搞错。你可能有一个测试和开发环境,但是你不知道你的报表数据是来自于哪个服务器。
很明显,解决这个问题的一个方法是在报表中显示报表服务器名称或它的IP地址。不幸的是,没有直接的函数或方法来获取服务器名称。但是有这个工作环境。
在报表服务中,有一个全局参数叫做ReportServerUrl,它可以显示报表URL。这个值的开始部分是来自于C:Program FilesMicrosoft SQL ServerMSSQL.#Reporting ServicesReportServer 文件夹下的RSReportServer.config 文件。在这个文件里,有叫做URLRoot 的结点。它是http://{IPAddress}/reportserver或http://{Server Name}/reportserver。你需要找到方法来提取这个IP地址或服务器名称,你可以使用下面的表达式:
Mid(Globals!ReportServerUrl,8,InStr(9,Globals!ReportServerUrl,"/")-8)
这个表达式所做的,是提取从//位置后的字母到/位置后的字母间的名称,这是服务器的服务器名称或IP地址。
将数字类型转化为文本
这是在SSRS论坛上经常看到的问题,因为许多用户需要将数字类型的数据显示为文本。尽管在水晶报表中有一个函数,但是在SSRS中没有函数。不过,你可以在SSRS中自己写个函数。
让我们用下面的查询来举个例子:
SELECTSales.SalesPerson.SalesPersonIDASSalesPerson,
SUM(Sales.SalesOrderDetail.OrderQty*Sales.SalesOrderDetail.UnitPrice)ASAmount
FROMSales.SalesOrderDetail
INNERJOINSales.SalesOrderHeaderONSales.SalesOrderDetail.SalesOrderID=Sales.SalesOrderHeader.SalesOrderID
INNERJOINSales.SalesPersonONSales.SalesOrderHeader.SalesPersonID=Sales.SalesPerson.SalesPersonID
GROUPBYSales.SalesPerson.SalesPersonID
- ››SQL Server 2008 R2 下如何清理数据库日志文件
- ››sqlite 存取中文的解决方法
- ››SQL2005、2008、2000 清空删除日志
- ››SQL Server 2005和SQL Server 2000数据的相互导入...
- ››sql server 2008 在安装了活动目录以后无法启动服...
- ››sqlserver 每30分自动生成一次
- ››sqlite 数据库 对 BOOL型 数据的插入处理正确用法...
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
更多精彩
赞助商链接