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. 章节添加的参数值,以上用例只供参考,在实际应用中有问题。可以及时沟通。

posted on 2012-10-23 12:27  代岳强  阅读(338)  评论(0编辑  收藏  举报