當前位置:
首頁 > 知識 > 實現葡萄城報表根據用戶身份過濾報表數據功能

實現葡萄城報表根據用戶身份過濾報表數據功能

業務報表中,有些敏感數據是需要根據用戶身份過濾的。比如銷售數據統計表,只允許報表用戶看到本部門的銷售數據。這時就需要將用戶信息作為報表數據的查詢條件。

葡萄城報表提供了一個專門的表達式變數,表示用戶身份信息。不僅可以按登錄報表系統的用戶名來查詢數據,也可以按照用戶所屬部門等其他關聯信息作為查詢條件。這種用戶身份關聯信息稱為「用戶上下文(User Context)」信息。引用用戶上下文信息的表達式形式為:

=Code.UserContext.GetValue("Key")

其中,Key表示上下文信息的鍵值,比如:Name表示用戶名,也就是說,Code.UserContext.GetValue("Name")返回的就是正在查看報表的用戶登錄名。

通過葡萄城報表特有的安全提供程序機制,可以支持任意字元串的Key,比如用戶所屬部門、業務管轄區域、甚至姓名、年齡、身份證號等任何與用戶帳號關聯的信息。

下面是一個銷售統計表的簡單示例,在此示例中,查看報表的用戶只能看到其所屬部門的銷售數據。資料庫中的用戶關聯信息如下表:

實現葡萄城報表根據用戶身份過濾報表數據功能

其中:UserName表示用戶登錄報表系統的用戶帳號;DepId為用戶所屬部門的代碼。銷售數據如下表:

實現葡萄城報表根據用戶身份過濾報表數據功能

其中的DepId就是部門代碼,SalesQty為銷售數量,SalesAmt為銷售額。新建一個RDL報表,添加用戶信息參數,參數名為UserName,如下圖:

實現葡萄城報表根據用戶身份過濾報表數據功能

注意:因為這個參數的值要從系統中自動獲取,而不是讓用戶在參數欄自行輸入,所以勾選了【隱藏】,這樣可以避免用戶輸入其他用戶的用戶名,從而「偷窺」敏感信息。

切換到【默認值】選項卡,選擇【非查詢結果】,點擊加號圖標,添加一個參數默認值,設置其表達式為:=Code.UserContext.GetValue("Name")如下圖:

實現葡萄城報表根據用戶身份過濾報表數據功能

點擊【確定】按鈕,保存參數設置。添加數據源,如下圖:

實現葡萄城報表根據用戶身份過濾報表數據功能

添加數據集,先定義數據集參數,使之引用前面定義好的取用戶信息的報表參數UserName,如下圖:

實現葡萄城報表根據用戶身份過濾報表數據功能

再定義查詢語句,select * from DepSaleswhere DepId in (select DepId from Emp where UserName = @p1)如下圖:

實現葡萄城報表根據用戶身份過濾報表數據功能

其中的Where子句,就是根據用戶所屬部門來過濾數據。準備好數據集之後,在設計區拖放一個文本框,用於顯示UserName參數的內容,再放一個表格,綁定數據集的欄位,如下圖:

實現葡萄城報表根據用戶身份過濾報表數據功能

注意:因為本地設計器中並沒有哪個用戶登錄,因此在設計器中預覽時,是取不到用戶上下文信息的。如果在預覽時看到報錯,可將UserName參數設置為【允許空值】,如下圖:

實現葡萄城報表根據用戶身份過濾報表數據功能

為了檢查按用戶身份過濾數據的效果,請點擊【文件】菜單的【保存到伺服器】,將報表模板上傳到報表伺服器。然後在報表管理門戶設置報表查看許可權,如下圖:

實現葡萄城報表根據用戶身份過濾報表數據功能

再在系統管理門戶創建幾個用戶,如下圖:

實現葡萄城報表根據用戶身份過濾報表數據功能

以zhang,li,wang等用戶身份登錄到報表查看門戶,查看報表,如下圖:

實現葡萄城報表根據用戶身份過濾報表數據功能

可以看到,報表內容正確顯示了當前用戶名,並且表格中僅顯示該用戶所屬部門的業務數據。


有獎問卷

親愛的用戶,感謝您對葡萄城的支持和認可!為充分了解您的需求,以便我們持續改進,提供更強大的控制項軟體產品和更專業的技術服務,特邀請您參加本次問卷調查。參與即有獎!完整填寫問卷,即可獲得 500枚 GCDN金幣(可兌換實體獎品),還可參加抽獎獲贈精美獎品。

問卷地址:https://www.wenjuan.in/s/fYzUJf/

轉載請註明出自:葡萄城報表

了解葡萄城報表:http://www.grapecity.com.cn/enterprise-solutions/activereports_server/


關於葡萄城

葡萄城成立於1980年,是全球最大的控制項提供商,世界領先的企業應用定製工具、企業報表和商業智能解決方案提供商,為超過75%的全球財富500強企業提供服務。葡萄城於1988年在中國設立研發中心,在全球化產品的研發過程中,不斷適應中國市場的本地需求,並為軟體企業和各行業的信息化提供優秀的軟體工具和諮詢服務。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 葡萄城控制項 的精彩文章:

如何實現葡萄城報表的表格聯動?

TAG:葡萄城控制項 |