2012-11-05 36 views
1

背景:如何使用SSRS SORT2方法

  • 我用ReportExecutionServiceSoap界面來呈現SSRS通過C#編寫ASP.NET應用程序報告
  • 我有一個已經實現了撥動項目的工作渲染服務和分頁功能,所以我對代碼非常自信。
  • 我想提供「交互式排序」功能。看(非常有限)的文檔,實現應該非常類似於切換功能。

這裏是我實施我的渲染器排序方法:

 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的是之前呈現的報表的流程id和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. 如果是這樣,我做錯了什麼?

回答

0
  1. 是的,您對API的理解是正確的。
  2. -
  3. 你沒有說出了什麼問題,但我猜RenderReport的調用結果與之前一樣(未排序)。你有沒有試過再次調用Sort-Method?我不知道爲什麼,但它需要一個渲染報告和第二個排序調用來正確工作。以下所有調用Sort-Method的方法都可以在第一次調用時按預期工作。