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