【问题标题】:Changing the Progress bar "Loading..." message in the SSRS Reports after clicking "View Report" button单击“查看报告”按钮后,更改 SSRS 报告中的进度条“正在加载...”消息
【发布时间】:2012-03-23 09:26:30
【问题描述】:

我想在报告加载时更改“正在加载...”消息说“报告正在加载,请稍候这将需要几秒钟...”之类的。有什么办法可以改变这个吗?

注意:我没有使用任何 ASP.NET 应用程序。我需要在 SSRS 中完成此操作。

感谢您的宝贵时间。

【问题讨论】:

    标签: reportviewer reporting-services


    【解决方案1】:

    我认为我们无法更改 SSRS 中的加载消息。它只是 get 属性。

    http://msdn.microsoft.com/en-us/library/microsoft.reporting.webforms.ireportviewermessages.progresstext.aspx

    上面的链接是我告诉我们不能改变的原因。

    我们可以在我使用 javascript 代码完成的 ASP.NET 应用程序中更改此消息。

    要更改 spinWheel 加载指示器,解决方案是我们必须使用 @Harri 链接所说的 Windows 或 Web 应用程序。

    为了更改消息,我使用了 ASP.NET 应用程序。现在选择后刷新参数时更改。还是有一些地方需要改变。

    浏览后来源:

    <div id="ReportViewerDisplay_AsyncWait_Wait" style="cursor:wait;background-color:#DC9CE4;padding:15px;border:1px solid black;display:none;position:absolute;">
            <table height="100%">
                <tr>
                    <td width="32px" height="32px">
                        <img src="/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=10.0.30319.1&amp;Name=Microsoft.Reporting.WebForms.Icons.SpinningWheel.gif" style="height:32px;width:32px;"/>
                    </td>
                    <td style="vertical-align:middle;text-align:center;">
                        <span style="font-family:Verdana;font-size:14pt;">Loading...</span>
    
                        <div style="margin-top:3px;">
                            <a href="javascript:$get(&#39;ReportViewerDisplay_AsyncWait&#39;).control._cancelCurrentPostback();" style="font-family:Verdana;font-size:8pt;color:#3366CC;">Cancel</a>
                        </div>
                    </td>
                </tr>
            </table>
        </div>
    

    ASP 设计页面: 函数获取(arg){

             var divTag = document.getElementsByName('ReportViewerDisplay_AsyncWait_Wait');
                if (divTag != null ) {
                    var tableTag = divTag.item(0);
                    var rowTag = tableTag.childNodes[0];
                    var columnTag = rowTag.childNodes[0];
                    var tdtag = columnTag.childNodes[0];
                    var spantag = tdtag.childNodes[0].nextSibling.childNodes[0];
                    spantag.outerText = arg;
                }
         };
      </script>
    

    代码隐藏:

    protected void ReportViewerDisplay_PreRender(object sender, EventArgs e)
            {
                ClientScriptManager cs = Page.ClientScript;
                cs.RegisterStartupScript(typeof(Page), "PrintScript_" + UniqueID, "get('Please Wait');", true);
            }
    

    注意:ReportViewerDisplay 是 ReportViewer 控件的 Id 相应变化

    如果您同意此答案,请将此答案标记为有用。

    【讨论】:

      【解决方案2】:

      我在 ASP.NET 应用程序中执行此操作的另一种方法是实现 IReportViewerMessages。

      更改 ProgressText 属性

      string IReportViewerMessages.ProgressText
              {
                  get
                  {
                      return ("Please Wait... This will take some time");
                  }
              }
      

      其他属性只是返回null。该值又采用下面链接中解释的基值。

      string IReportViewerMessages.BackButtonToolTip
              {
                  get { return null; }
              }
      

      编辑 web.config 并添加 Appsetting 标签

      <appSettings>
          <add key="ReportViewerMessages" value="MyNamespace.MyRVMessageClass, MyAssembly" />
      </appSettings>
      

      下面的链接有助于如何做到这一点并解释它是什么。

      http://msdn.microsoft.com/en-us/library/microsoft.reporting.webforms.ireportviewermessages(v=vs.80).aspx

      仍在期待如何在 BIDS SSRS 中进行操作。

      【讨论】:

      • 我想我无法解释我的问题。我不想更改进度消息或隐藏后退按钮。我想隐藏正在加载的 GIF。
      【解决方案3】:

      其实那是一张图片(gif),所以你需要创建一张带有自定义信息的图片。对于实现,我认为您应该看到这个问题:ReportViewer control loading indicator?

      【讨论】:

      • 这个方法在表单加载事件中被调用,因为我提到我没有使用任何 ASP.Net 应用程序。如何在 SSRS 中做同样的事情。
      • 如果 SpinningWheel.gif 是您所说的,它是一个指标,而不是它显示的信息。
      • 恐怕您是对的。请问您在网页中查看报告的方式是什么?在什么情况下会显示正在加载的消息?我的意思是,您是在使用钻取报告、报告中的多个参数还是需要显示此消息的其他场景。
      • 我通过将报表部署到报表服务器并使用 URL 浏览来查看我的报表。对于在报表查看器中查看的所有报表,我正在查看哪种报表并不重要。尽管我的报告中有多个参数和钻取以供您参考。当所有报告参数都给出并单击查看报告按钮。然后报告将获取数据并在这种情况下呈现数据。
      • 我正在考虑隐藏原始消息并显示其他内容而不是更改它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多