頁面調用微信的js代碼(js打開微信)
業(yè)務報表中,有些敏感數據是需要根據用戶身份過濾的。比如銷售數據統(tǒng)計表,只允許報表用戶看到本部門的銷售數據。這時就需要將用戶信息作為報表數據的查詢條件。
葡萄城報表提供了一個專門的表達式變量,表示用戶身份信息。不僅可以按登錄報表系統(tǒng)的用戶名來查詢數據,也可以按照用戶所屬部門等其他關聯(lián)信息作為查詢條件。這種用戶身份關聯(lián)信息稱為“用戶上下文(User Context)”信息。引用用戶上下文信息的表達式形式為:
=Code.UserContext.GetValue("Key")
其中,Key表示上下文信息的鍵值,比如:Name表示用戶名,也就是說,Code.UserContext.GetValue("Name")返回的就是正在查看報表的用戶登錄名。
通過葡萄城報表特有的安全提供程序機制,可以支持任意字符串的Key,比如用戶所屬部門、業(yè)務管轄區(qū)域、甚至姓名、年齡、身份證號等任何與用戶帳號關聯(lián)的信息。
下面是一個銷售統(tǒng)計表的簡單示例,在此示例中,查看報表的用戶只能看到其所屬部門的銷售數據。數據庫中的用戶關聯(lián)信息如下表:
其中:UserName表示用戶登錄報表系統(tǒng)的用戶帳號;DepId為用戶所屬部門的代碼。銷售數據如下表:
展開全文
其中的DepId就是部門代碼,SalesQty為銷售數量,SalesAmt為銷售額。新建一個RDL報表,添加用戶信息參數,參數名為UserName,如下圖:
注意:因為這個參數的值要從系統(tǒng)中自動獲取,而不是讓用戶在參數欄自行輸入,所以勾選了【隱藏】,這樣可以避免用戶輸入其他用戶的用戶名,從而“偷窺”敏感信息。
切換到【默認值】選項卡,選擇【非查詢結果】,點擊加號圖標,添加一個參數默認值,設置其表達式為:=Code.UserContext.GetValue("Name")如下圖:
點擊【確定】按鈕,保存參數設置。添加數據源,如下圖:
添加數據集,先定義數據集參數,使之引用前面定義好的取用戶信息的報表參數UserName,如下圖:
再定義查詢語句,select * from DepSaleswhere DepId in (select DepId from Emp where UserName = @p1)如下圖:
其中的Where子句,就是根據用戶所屬部門來過濾數據。準備好數據集之后,在設計區(qū)拖放一個文本框,用于顯示UserName參數的內容,再放一個表格,綁定數據集的字段,如下圖:
注意:因為本地設計器中并沒有哪個用戶登錄,因此在設計器中預覽時,是取不到用戶上下文信息的。如果在預覽時看到報錯,可將UserName參數設置為【允許空值】,如下圖:
為了檢查按用戶身份過濾數據的效果,請點擊【文件】菜單的【保存到服務器】,將報表模板上傳到報表服務器。然后在報表管理門戶設置報表查看權限,如下圖:
再在系統(tǒng)管理門戶創(chuàng)建幾個用戶,如下圖:
以zhang,li,wang等用戶身份登錄到報表查看門戶,查看報表,如下圖:
?
可以看到,報表內容正確顯示了當前用戶名,并且表格中僅顯示該用戶所屬部門的業(yè)務數據。
有獎問卷
親愛的用戶,感謝您對葡萄城的支持和認可!為充分了解您的需求,以便我們持續(xù)改進,提供更強大的控件軟件產品和更專業(yè)的技術服務,特邀請您參加本次問卷調查。參與即有獎!完整填寫問卷,即可獲得 500枚 GCDN金幣(可兌換實體獎品),還可參加抽獎獲贈精美獎品。
問卷地址:https://www.wenjuan.in/s/fYzUJf/
轉載請注明出自:葡萄城報表
了解葡萄城報表:http://www.grapecity.com.cn/enterprise-solutions/activereports_server/
關于葡萄城
葡萄城成立于1980年,是全球最大的控件提供商,世界領先的企業(yè)應用定制工具、企業(yè)報表和商業(yè)智能解決方案提供商,為超過75%的全球財富500強企業(yè)提供服務。葡萄城于1988年在中國設立研發(fā)中心,在全球化產品的研發(fā)過程中,不斷適應中國市場的本地需求,并為軟件企業(yè)和各行業(yè)的信息化提供優(yōu)秀的軟件工具和咨詢服務。
掃描二維碼推送至手機訪問。
版權聲明:本文由飛速云SEO網絡優(yōu)化推廣發(fā)布,如需轉載請注明出處。