Reporting Services 2005 常见问题解决方法(不断更新)

  • 在新窗口打开链接
    默认跳转到Url是在当前窗口打开,如果要在新窗口打开,使用以下格式输入:
    ="javascript:void(window.open('" & "url&para1=" & Fields!field1.Value & "','_blank'))"
  • 动态显示嵌入图片
    首先拖一个图像控件到位置,然后设置控件的Source属性为Embedded,然后设置Value表达式,不同情况使用不同的嵌入图像名称,形如:
    =IIF (Fields!DelayEntityPercent.Value < 10, "prj_green", IIF(Fields!DelayEntityPercent.Value >= 10 And Fields!DelayEntityPercent.Value < 30, "prj_yellow", "prj_red"))
  • 图片在单元格居中
    设置Padding的Left到合适的大小
  • 按记录数分页
    为表格创建组,并设置在结尾处分页,分组表达式为:Int((RowNumber(Nothing)-1)/10) ,其中10表示没10条记录分一页
  • 嵌入应用应用方案比较

    嵌入方式

    是否需要ReportServer

    是否包含工具栏

    是否包含参数输入区域

    部署

    安全性

    在何处生成报表

    总评

    iframe,设置src为报表Url

    是,依据报表设定,可显示完整工具栏

    是,依据报表设定决定显示内容

    Report Server和应用独立部署

    当前用户需要有权限访问报表

    Report Server

    基本完整利用Reporting Services各种功能,但需要处理权限问题,另外iframe高度设置不够,会有滚动条

    Iframe,设置src为某个调用Reporting Service API动态生成html的地址

    Report Server和应用独立部署

    可以模拟用户访问报表

    Report Server

    可解决权限问题,但是没有了Reporting Services的很多优点,还增加了Render成本

    调用API获得HTML片段

    Report Server和应用独立部署

    可以模拟用户访问报表

    Report Server

    基本同上,只是省掉了iframe

    ReportViewer+ReportServer(远程方式)

    是,需要一个授权的副本

    是,依据报表或Report Viewer设定,可显示完整工具栏

    是,依据报表或Report Viewer设定

    Report Server和应用独立部署,并且在应用的Web.config中添加Report Viewer配置

    当前应用进程需要有权限访问报表

    Report Server

    基本完整利用Reporting Services功能,但是需要解决权限问题并考虑授权副本的问题,通过实现一个接口来获得报表访问权限

    RerportViewer+RDLC(本地方式)

    是,但不完整,缺少一些导出格式及打印按钮

    部署应用及报表文件,并且在应用的Web.config中添加Report Viewer配置

    由应用控制

    当前应用

    不能充分利用Reporting Services功能,应用服务器承担了生成报表的计算

  • 除以零错误号,因为IIF和Switch等函数每个表达式都要计算,所以无法避免错误,因此使用自定义函数解决(调用时使用=Code.SafeDivide(a,b)):

    Public Function SafeDivide(ByVal top, ByVal bottom) As Decimal
            If IsNothing(top) Or IsNothing(bottom) Then
                Return 0
            End If

            If bottom = 0 Or top = 0 Then
                Return 0
            End If

            Return top / bottom
        End Function

  • 隐藏ReportViewer控件的一些导出格式
    ReportViewer控件有很多导出格式,下面的代码可以只保留导出Excel:
    隐藏导出格式
  • 在设计器里预览时,点击“查看报表",有数据缓存时,点击工具条的刷新按钮可以达到目的
posted @ 2009-02-20 12:30  karoc  阅读(3828)  评论(1编辑  收藏  举报