SSRS(rdl報表)分頁顯示錶頭和對錶頭的凍結處理

杭偉發表於2015-01-05

基礎環境

最近在公司做西門子某系統的二次開發,需要用到SQLServer Reporting Services(SSRS)。我們用的SQL版本是SQLServer 2008 R2;在設計報表時,表格用的是矩陣(Tablix)。由於集團使用者在西門子系統實施當時,已向西門子開發人員提出過這個問題,西門子當時給出的回答是:“技術原因,不能實現。”。

現在回想,一是他們沒仔細研究過這個問題,二是關於SSRS的資料實在太少的緣故吧。

技術實現

首次嘗試是通過Tablix屬性

發現即使把這些“功能”全部勾選,也不能實現想要的效果。報表資料的表頭還是不能分頁顯示,還是不能被“凍結”。

研究了下,發現通過修改報表檔案的xml程式碼可以實現想要的效果。

在開啟xml檢視後,查詢<TablixRowHierarchy>節點,

找到節點後,修改第一個TablixMember(一般第二個是group資訊)

為方便大家修改,貼出程式碼:

<TablixRowHierarchy>
          <TablixMembers>
            <TablixMember>
              <KeepWithGroup>After</KeepWithGroup>
              <RepeatOnNewPage>true</RepeatOnNewPage>
              <FixedData>true</FixedData>
            </TablixMember>
            <TablixMember>
              <Group Name="pom_order_id">
                <GroupExpressions>
                ...

其中<KeepWithGroup>節點和<RepeatOnNewPage>節點的使用,作用是翻頁顯示錶頭;<FixedData>節點則是凍結表頭,即拉動滾動條時顯示錶頭。
最後,報表實現效果

 

關於SSRS更多技術內容,請持續關注。

相關文章