如何使用ssrs sort2方法

时间:2012-11-05 19:02:39

标签: ssrs-2008 reportingservices-2005

背景:

  • 我使用ReportExecutionServiceSoap接口通过用C#编写的ASP.NET应用程序呈现SSRS报告
  • 我有一个工作渲染服务,它已经实现了切换项和分页功能,所以我对代码非常有信心。
  • 我正在尝试提供“交互式排序”功能。查看(非常有限的)文档,实现应该与切换功能非常相似。

这是我在渲染器中实现的Sort方法:

        using (var rsExec = new ReportExecutionService())
        {
            // Configure the service instance, specifiying the credentials and the sessionId
            rsExec.Url = BuildSsrsServiceInvocationUri(m_reportServerUrl);
            rsExec.Credentials = System.Net.CredentialCache.DefaultCredentials;
            rsExec.UseDefaultCredentials = true;

            // Reload the execution context of the previous session
            rsExec.ExecutionHeaderValue = new ExecutionHeader();
            rsExec.ExecutionHeaderValue.ExecutionID = sessionId;

            // Sort
            string reportItemResult;            // don't know what to do with this
            ExecutionInfo2 execInfoResult;      // don't know what to do with this

            rsExec.Sort2(sortItem, 
                SortDirectionEnum.Ascending,    // TODO: get this from method arg
                clearExistingSorts, 
                PageCountMode.Estimate, 
                out reportItemResult, 
                out execInfoResult);
        }

从我的控制器中我调用上面的方法。 sessionId是先前呈现的报告的ExecutionId,id对应于用户点击的报告项目:

        // Sort the report
        m_ReportRenderer.Sort(sessionId, id, clear);

最后,我调用渲染器的RenderReport方法,期望获取按用户点击的列排序的报告输出:

        // Render the report with the new sort order
        var renderResult = m_ReportRenderer.RenderReport(sessionId, ImageRoot, actionScript);

问题:

  1. 我对API的理解是否正确?
  2. 如果没有,我做错了什么?
  3. 如果是的话,我做错了什么?

1 个答案:

答案 0 :(得分:0)

  1. 是的,您对API的理解是正确的。
  2. -
  3. 您没有说,出现了什么问题,但我想对RenderReport的调用导致与之前相同(未排序)的报告。你有没有试过再次调用Sort-Method?我不知道为什么,但它需要一个Render-Report和第二个Sort-Call才能正常工作。以下调用Sort-Method在第一次调用时按预期工作。