日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

报表系统FineReport通过权限控制数据访问方案

發(fā)布時(shí)間:2023/12/9 windows 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 报表系统FineReport通过权限控制数据访问方案 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

問(wèn)題:實(shí)際應(yīng)用環(huán)境中,不同角色的人可能對(duì)數(shù)據(jù)具有不同的訪問(wèn)權(quán)限,通過(guò)直接在SQL語(yǔ)句中篩選出需要的數(shù)據(jù)制作模板可以解決該需求,但對(duì)于角色較多的情況,就需要制作很多張樣式相同只是數(shù)據(jù)集不同的報(bào)表,不利于后期的維護(hù)并且加大了報(bào)表制作的工作量。

方案:針對(duì)該問(wèn)題,在報(bào)表系統(tǒng)FineReport中,可以利用SQL參數(shù)配合參數(shù)處理器再結(jié)合權(quán)限以完成該需求。使用該方案只需要制作一張表樣,利用SQL中的參數(shù)進(jìn)行動(dòng)態(tài)過(guò)濾達(dá)到該目的。下面具體描述該方案的實(shí)施過(guò)程。

?

第一步:數(shù)據(jù)準(zhǔn)備

????這里使用的是DEMO數(shù)據(jù),主要為了演示該方案的操作,具體使用的時(shí)候需要根據(jù)具體的數(shù)據(jù)情況進(jìn)行調(diào)整:

表:datas

ID

DATA

ROLE

1

100

2

200

3

300

4

400

1

5

500

1

6

600

2

7

700

2

8

800

3

?

ID:編號(hào)

DATA:數(shù)據(jù)

ROLE:可查看角色編碼

?

表:roles

ID

ROLENANME

ROLE

1

總裁

2

總經(jīng)理

1

3

部門(mén)經(jīng)理

2

4

銷(xiāo)售人員

3

ID:編號(hào)

ROLENAME:角色名稱(chēng)

ROLE:角色編碼

?

第二步:制作模板

2.1 新建一張模板,報(bào)表數(shù)據(jù)集中新建一個(gè)“數(shù)據(jù)庫(kù)查詢(xún)數(shù)據(jù)集”,名稱(chēng)為:datas,SQL語(yǔ)句寫(xiě)成“select * from datas where ROLE>=[?ROLE?]

2.2 拖拽新建的報(bào)表數(shù)據(jù)集datas的數(shù)據(jù)列至報(bào)表中,如下圖所示:

http://www.finereport.com/forumimages/tgqxkzsjfw1.jpg

2.3 新建一個(gè)服務(wù)器數(shù)據(jù)字典,用于進(jìn)行角色名稱(chēng)與角色編碼的轉(zhuǎn)換,因?yàn)檫@里是演示用,就直接將數(shù)據(jù)寫(xiě)死了,使用自定義的服務(wù)器數(shù)據(jù)字典,用戶(hù)可以根據(jù)具體的情況使用數(shù)據(jù)庫(kù)查詢(xún)數(shù)據(jù)字典來(lái)定義,關(guān)鍵點(diǎn)是要將“角色名”設(shè)置為key,“角色編碼”設(shè)置為value。因?yàn)樵趹?yīng)用的過(guò)程中,一個(gè)用戶(hù)的角色是通過(guò)角色名來(lái)定義的,而對(duì)數(shù)據(jù)的訪問(wèn)控制是通過(guò)角色編碼來(lái)控制的,這里需要一個(gè)值轉(zhuǎn)換的過(guò)程。如果角色名與角色編碼一致則可以不經(jīng)過(guò)下列步驟的設(shè)置。

數(shù)據(jù)字典的名稱(chēng)為:roles_map

http://www.finereport.com/forumimages/tgqxkzsjfw2.jpg

2.4 設(shè)置參數(shù)處理器,選擇菜單中的“報(bào)表”-“參數(shù)處理器”,定義先前SQL語(yǔ)句中定義的參數(shù)“ROLE”的參數(shù)處理器,這里采用公式類(lèi)型,用于將角色名處理為角色編碼,公式為:“MAP($ROLE,”roles_map”)”如下圖所示:

http://www.finereport.com/forumimages/tgqxkzsjfw3.jpg

2.5 保存模板文件即可。

2.6 用戶(hù)在集成應(yīng)用的時(shí)候,需要在系統(tǒng)登錄后設(shè)置當(dāng)前登錄的用戶(hù)的角色,或者使用FineReport自帶的權(quán)限管理系統(tǒng)。如果采用FineReport自帶的權(quán)限管理系統(tǒng),上述SQL語(yǔ)句中的ROLE參數(shù)可使用FR_ROLE_NAME來(lái)替代,該參數(shù)是FineReport權(quán)限系統(tǒng)中的默認(rèn)登錄角色參數(shù)名。具體登錄角色設(shè)置方式請(qǐng)參見(jiàn)FineReport權(quán)限集成幫助文檔或咨詢(xún)FineReport服務(wù)人員。

文章轉(zhuǎn)自:http://blog.vsharing.com/fanfanzheng/A1448107.html

轉(zhuǎn)載于:https://my.oschina.net/u/194678/blog/35708

總結(jié)

以上是生活随笔為你收集整理的报表系统FineReport通过权限控制数据访问方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。