2010年3月11日 星期四

SSRS 2005 部署後,換行失效了

人客問了一個問題, 以下是他的sql
select
(select cast(pk as varchar(10) ) + ':' + col1 + char(10) from tabTest b
where a.coKey = b.colKey for xml path('')) as newCol
from tabTest a
where a.pk < 20
他用這段sql找出了同一個colKey下所有的筆數, 並將每一筆的 col1 組成一個字串,以換行符號隔開
所以在report  designer 執行後就會跑出以下類似的結果
1:test1
2:test2
3:test3
4.test4

在設計的環境下,結果看來是ok,

但部署到report server後, 執行報表, 結果變成了
1:test1 2:test2 3:test3
4.test4

原本的換行效果不見了...

實測後,
在report designer 下, SSRS 2008 (sp1) 和SSRS 2005 (sp3) 跑出來的結果一切正常
但部署到report server 後, SSRS 2008 (sp1) 正常, 但SSRS 2005 (sp3) 就失效了...

看來是SSRS 2005的問題, render 時,不認得char(10)這個換行符號

於是,做點小手腳, 先將sql 改成如下,

select
(select cast(pk as varchar(10) ) + ':' + col1 + 'newLine' from tabTest b
where a.coKey = b.colKey for xml path('')) as newCol
from tabTest a
where a.pk < 20
然後在 rdl layout中, 將textbo 的expression設成

=replace( Fields!newCol.Value, "newLine",vbCRLF )
這樣在設計環境下預瀏覽ok
同時部署到report server 時,網頁上也能正常顯示換行了.

沒有留言:

張貼留言

自動記錄滑鼠點選操作

為了一個需求,需要人工去點選幾個滑鼠的點選行為,找了幾種工具,覺得GS Auto Clicker最實用,極符合我的需求,尤其是多個固定位置的button點擊,解決了一個很耗時間的工作。 最後設定完預設hotkey F8為啟用鍵,就可以開始自動做工了。再按F8結束工作。 GS Au...