2014年1月5日

Reporting Services依筆數分頁;動態分頁-轉出Excel不分sheet(2)


>>上一篇
接下來我們要進行依照筆數進行分頁,和解決Excel會分成多個Sheet問題

步驟

1. 切換到Report1.rdlc設計畫面

image

















2. 點選底下詳細資料, 屬性-Group-PageBreak,設定BrakLocation: StartAndEndimage 
 
3. 點Disabled,選運算式
image 
 
4. 填入以下運算
IIF(RunningValue(Fields!DatabaseLogID.Value,Count,"TablixDatabaseLog") mod 10=0, False, True) 
 
RunningValue函式
RunningValue(expression, function, scope)
第一參數:Fields!後面是第一個欄位名稱DatabaseLogID
第二參數:執行函式Count計算第幾筆
第三參數:是Scope,給報表的資料表名稱:TablixDatabaseLog 
 
我們要10筆換頁,所將RunningValue取出的第幾筆除10,餘數0就設定Disabled = false,就是換頁囉。
image 
 
5. 顯示結果
image
但excel匯出後,好多sheet @@
image

解決Excel會分成多個Sheet問題 


修改Disabled運算式為 

=IIF(Globals!RenderFormat.Name="EXCEL" OR Globals!RenderFormat.Name="EXCELOPENXML" ,True, IIF(RunningValue(Fields!DatabaseLogID.Value,Count,"TablixDatabaseLog") MOD 10=0, False, True)) 

運用Globals!RenderFomat.Name判斷Render是EXCEL(2003)或EXCELOPEXML(2007後)
image
顯示結果,就達到我們要的了
image

2 則留言:

  1. 你好安安,解決Excel會分成多個Sheet問題
    我依照上方改了運算式還是依樣(哪個判斷我對過跟你圖片一樣),
    不知是否我是OFFICE 2010所以不能,不知要如何解決?
    另外想請問我看判斷式式依據EXCEL版本判斷,不知是否有判斷到只要是EXCEL就不分業

    回覆刪除
  2. 安安.關於前一問題

    我改好了.將運算式改成
    =IIf(InStr(Globals!RenderFormat.Name,"EXCEL")>0,True, IIf(RunningValue(Fields!OrgID.Value,Count,"examDataSet") mod 20=0, False, True))

    使用InStr函數判斷RenderFormat.Name如果是EXCEL類就不分頁

    回覆刪除