2009-12-16 69 views
0

我在SQL Server Reporting Services的一份報告,其中應顯示文本框在Reporting Services - 顯示文本或超鏈接

  • 的文本框與「正常​​」的用戶
  • 一個文本框中的靜態文本超級鏈接打開「超級」用戶的新細節窗口

用戶級別由傳遞給報表的參數決定。

我該如何做到這一點?我試圖創建一個帶有超鏈接的文本跨度的文本框,然後將其保留爲「普通」用戶的空白,但這似乎並不可靠。

是否有一種技巧或方法可以使其發揮作用?我想我需要向報告添加一些代碼來檢查用戶級別,然後將靜態文本或帶有標籤的文本插入到目標文本框中。但我該怎麼做(沒有任何VB/VBA/VB.NET的經驗....)

謝謝! Marc

+0

更新了我的答案,涵蓋超鏈接格式 – 2009-12-16 12:59:40

回答

3

爲了使超鏈接,你會使用的邏輯,你應該能夠使用

=iif(Parameters!IsSuperUser.Value = True, "http://some link","#") 

在文本框的Action屬性中,如果將Action設置爲「Jump to URL」。

要控制文本框的內容,請在Value屬性中使用類似的表達式。

(這是在2005年SSRS真的 - 我沒有進入2008)

編輯

不幸的是,在SSRS超鏈接的方式沒有格式上做了明確表示,他們超鏈接。實現此目的的唯一方法是將相似的條件格式表達式添加到Color和TextDecoration屬性中,以使該字段以不同的顏色顯示,並在其爲超鏈接時用下劃線表示。

+0

好的,謝謝你的提示 - 我會嘗試一下並報告回去 – 2009-12-16 08:21:40

+0

嗨,Ed,你的方法確實有用,謝謝。我現在唯一的抱怨就是:如果我是一個超級用戶,而且我的文本框中包含一個可以跳轉到的URL - 我並沒有真正看到這一點 - 文本不會變成一個「典型的」超鏈接(帶下劃線的藍色) 。任何我可以調整的方式呢? (我希望設置「跳轉到URL」的行動將完成此) – 2009-12-16 12:43:05

+0

埃德 - 感謝您的幫助 - 與您的答案,我能夠讓我的東西工作。謝謝! – 2009-12-17 11:29:10

1

我沒有在機器上安裝SSRS,所以我不能給你一個確切的保證錯誤免費答案,但這個答案應該設置你在正確的軌道上。

有兩個文本框,都位於相同的絕對位置(如果需要,在一個容器元素內)。用正確的值填充它們。然後,只需用一個表達式切換他們隱藏的屬性來控制它們的可見性:

=(Parameters!UserLevel.Value = 'Admin') 

顯然的UserLevel是參數的名稱,在該報告被傳遞。 'Admin'值是用於說明目的,我個人會使用int值來表示用戶級別,就像使用枚舉一樣。

請記住,這是您要設置隱藏屬性,所以你必須扭轉,如果你設置Visible屬性:)

+0

謝謝,是的,我正在考慮這樣的事情。我會試一試 – 2009-12-16 08:22:10