您好,登錄后才能下訂單哦!
大數據報表怎樣通過參數控制數據權限,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
報表開發過程中,常常會遇到需要對報表進行數據權限控制的情況。
不同的機構、角色或具體到人,訪問同一張報表時所看到的數據是不同的。比如,工資條(也是一張簡單的報表),因為絕大多數公司薪資都是保密的,所以很顯然,系統內不同人看到的結果是不能相同的。 再比如,區域銷售情況統計,各區域銷售經理也只能看到所在區域的數據等等。
實際應用環境中,解決此類問題一般是通過直接在 SQL 中篩選出數據繪制報表模板,然后按照登錄對象訪問指定的模板就可以了。但是,如果使用用戶的人員眾多,就需要制作 N 多張樣式相同只是 SQL(報表數據集)略有不同的報表,工作量大且不利于后期維護。
此時,我們就可以通過報表工具的參數動態接收系統傳來的人員賬號等信息參數,進而動態顯示報表中的數據,以達到數據權限控制的目的。
下面舉例看一下報表通過參數如何實現數據權限控制。
例 1. 人事管理系統之工資條類報表數據權限控制
特點:每個人或者用戶登錄后,僅可以查看本人的數據信息,此類數據表一般都與數據庫用戶表直接或間接關聯,顧 SQL 可直接使用用戶編號對數據做精準獲取。
前提:
報表數據來自數據表 payroll 中;
用戶 ID(uID)已從系統 session 中獲取,存儲在變量 userID 中(獲取具體設置可參考 外部參數(如 Url 中)如何傳給潤乾報表使用)
報表重點設置:
a. 數據集語句設置
b. 報表參數設置
總結:
這類數據權限控制基本是針對單條記錄操作的,顧 SQL 語句部分 不需要做太多其它設置,如有其它過濾條件按照正常參數設置添加即可。
例 2. 人員等級類數據權限控制
特點:人員等級越高看到的數據越多。
前提:
1. 報表呈現所需數據存儲在數據表 m_datas 中;
2. 角色編號(role)已從系統 session 中獲取,存儲在變量 role 中(獲取具體設置可參考 外部參數(如 Url 中)如何傳給潤乾報表使用)
報表重點設置:
a. 數據集語句設置
注:${pri} 是動態參數 ${參數名} 的用法,可以看做一個占位符,運算時會用其計算結果替換
b. 參數設置
其中:
role 為普通參數 用于接收系統當前登錄用戶角色
pri 為動態參數 根據 role 動態生成 sql 過濾條件
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。