目前分類:SSRS (3)

瀏覽方式: 標題列表 簡短摘要

在 SSRS 2008 R2 之前要讓報表匯出的 Excel 工作表名稱有一定命名方式是不可能的,在先前我曾寫過一個 VBScript 來改寫 Sheet Name 來達到一樣的效果,請參考 [VBScript] 變更 Excel 檔案中的 SheetName 以及 Link 網址 ,但現在 R2 之後不需要這麼辛苦了,可以在匯出的報表上自動就產生好名字了。

其方法很簡單,只要在你想要產生匯出命名的 tablix 上,找到 PageName 的屬性,如下圖,匯出後即可顯示想要的樣子了。

匯出結果如下:

renameexcel2.png

王圓外 發表在 痞客邦 留言(0) 人氣()

當 Reporting Services 的訂閱擁有者離職或被 AD 刪除後,相關的訂閱會被失效而無法發送,除了用管理者身分去一個一個重新定義訂閱以外,簡單的方法是使用 SQL 語法,將舊的人員改成新的人員。

SQL 如下:

DECLARE @OldUserID uniqueidentifier
DECLARE @NewUserID uniqueidentifier
SELECT @OldUserID = UserID FROM dbo.Users WHERE UserName = 'DOMAINA\OldUser'
SELECT @NewUserID = UserID FROM dbo.Users WHERE UserName = 'DOMAINA\NewUser'
UPDATE dbo.Subscriptions SET OwnerID = @NewUserID WHERE OwnerID = @OldUserID

SQL 參考來源 : Tip: Change the Owner of SQL Reporting Services Subscription


王圓外 發表在 痞客邦 留言(0) 人氣()

在 SSRS 中,大家可以發現不管在哪裡的運算式都只有 Like 這個運算式,那 Not Like 又在哪裡呢?我又把依照 Like 的範例 =Fields!FirstName.Value Like "T*" 中的 Like 前面加個 Not 卻照成語法錯誤!! 那這樣看起來好像就沒有 Not Like 這個運算式可以使用了~ 以前遇到這樣的問題,其實都是在 SQL 中就使用 NOT LIKE 語法處理掉了,但是這次卻遇到所有的資料其實我都要的,只是在報表呈現中某一個 Group 要處理這樣的問題,因此無法再 SQL 中先處理資料了~ 最後的變通方式就是自己寫一段 CODE 來處理這樣的事情了~ 首先,先在整個報表的報表屬性中的程式碼,寫下自己定義的 NotLike 的程式

Public Function NotLike(ByVal val As String, ByVal filter As String) As Boolean
        IF val.Contains(filter) Then
                Return False
        Else
                Return True
        End If
End Function

 

這樣就可以在所有的運算式中使用 =code.NotLike(Fields!FirstName.Value, "T") 這樣的語法了,但是那要在 Group 中的篩選要怎麼使用呢,其實已是很簡單,在運算式中打上=code.NotLike(Fields!FirstName.Value, "T") ,運算子選擇 = ,值打上 =True,這樣就可以在 Group 中使用 NotLike 來過濾你的資料了。


王圓外 發表在 痞客邦 留言(0) 人氣()

Close

您尚未登入,將以訪客身份留言。亦可以上方服務帳號登入留言

請輸入暱稱 ( 最多顯示 6 個中文字元 )

請輸入標題 ( 最多顯示 9 個中文字元 )

請輸入內容 ( 最多 140 個中文字元 )

reload

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼