1、 报表URL分析
报表 URL 包含 Web 服务器的名称、报表服务器虚拟目录的名称以及报表的完全限定名称。(完全限定的名称包含报表路径,并以报表本身的名称结束。)
http://172.16.1.19/ReportServer/Pages/ReportViewer.aspx?%2fTest%2fJZZF%2f%e5%9f%ba%e7%a1%80%e6%95%b0%e6%8d%ae%e7%bb%9f%e8%ae%a1%2f%e7%85%a4%e7%82%ad%e5%90%88%e5%90%8c%e6%89%a7%e8%a1%8c%e6%83%85%e5%86%b5&rs:Command=Render]
常用前缀及其参数名:
1.1. rc:toolbar=true/false 显示/不显示工具栏
1.2. rs:command=render 呈现报表
1.3. rs:format=PDF(DOC,XLS)导出报表格式
1.4. rc:parameters=true/false 显示/不显示工具栏的参数选择区域
1.5. @Parameter=value 直接传递参数值
注意:在URL参数中如果有中文,将不能被正确识别,解决的方法是用HttpUtility.UrlEncode将其转换为uft-8,再附加到参数中即可。此外还要注意参数是大小写敏感的。
2、 报表中使用自定义嵌入式代码
Reporting Service 只接受Microsoft Visual Basic .NET 中编写嵌入式代码, 代码准备好,您就可以使用全局定义的 Code 成员在报表表达式中调用它。
例如,如果您编写了一个名为 GetValue 的嵌入式代码函数,就可以使用下列语法从您的表达式中调用它:
2.1.在报表<属性>中,选择<代码>页签,输入自定义代码
Function GetValue(value As Object) As Object
if Value is Nothing then
return 0
else
return value
end if
End Function
2.2.调用方法:
=Code.GetValue(Code.GetValue(Fields!字段名.Value))
3、 日期参数使用技巧
报表统计月煤量,但是,根据上个月的21号到本月的20号。因此要求我提供的两个参数,开始日期和结束日期的默认值就是这两个日期。
3.1.开始日期=cdate(format(dateadd(dateinterval.month,-1, Globals!ExecutionTime ),"yyyy-MM-21"))
3.2.结束日期=cdate( format(Globals!ExecutionTime,"yyyy-MM-20"))
4、明细行交替背景色 如下:图
在报表<属性>中,选择<backgroundColor>
=IIF(RowNumber("DataSet1") Mod 2, "White", "LightYellow")
5、报表显示行号 如下:图
=RowNumber("DataSet1")
6、在新窗口中打开
根据以下路径,找到安装报表发布服务器程序。如下:
C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\Pages\ReportViewer.aspx
打开ReportViewer.aspx页面,在ReportViewerControl中增加属性代码HyperlinkTarget="_blank" 。
<RS:ReportViewerHost ID="ReportViewerControl" runat="server" HyperlinkTarget="_blank" />
7、权限管理
目前系统报表基本上用集中支付系统组织结构,要是有别的系统组织结构。大家列出来到时咱们按系统进行整理及扩展。
7.1. 报表<参数>右键,<添加参数>选择框<常规>名称填“UserID”<默认值>指定值添加项填“[&UserID]”确定。
7.2. 通过以下函数 JZZF.dbo.ufn_getOrganInfoByDomainInfo(@UserID) 获取组织结构。
7.3. 注意:
@UserID 最好放在首位,其他参数放末位。按照以下“图”标红进行调整:
7.4. 用例
实际应用当中,涉及范围比较广如视图、存储过程等方式。以下只是举例简单例子。
DECLARE @UserID NVARCHAR(30)
SET @UserID='hpi\ceshiadm'
SELECT TOP(10) ContractID,ContractCode FROM JZZF.dbo.Contract
WHERE ContractPlantId IN (SELECT PowerPlantID
FROM JZZF..Ufn_getorganinfobydomaininfo(@UserID))
@UserID 7.1. 章节添加的参数值,以上用例只供参考,在实际应用中有问题。可以及时沟通。