程式設計師的自我救贖 2 1 報表系統專案分析

2022-01-12 05:33:20 字數 2883 閱讀 7546

《前言》

(一) winner2.0 框架基礎分析

(二)plsql報表系統

(三)sso單點登入

(四) 簡訊中心與訊息中心

(五)錢包系統

(六)gpu支付中心

(七)許可權系統

(八)監控系統

(九)會員中心

(十一)winner前端框架與rpc介面規範講解

(十二)上層應用案例

(十三)總結

《報表系統專案分析》

「報表系統」顧名思義是用來做報表用的,但是在winner當中報表系統經常被我們用來當作網頁版的pl/sql來使用。

不用oralce的可能不知道pl/sql,其實就是sql客戶端。

往往我們有的專案來不及寫後台,或者各個部門需求的後台列表不一致有「查詢」需求的時候 "plsql報表系統"就能幫助我們

解決這類問題。常規意義上報表系統需要具備以下三點功能:

1,提供資料查詢生成報表(高階的需要生成圖表)

3,方便技術免除繁雜的後台開發(特別是僅有查詢的後台列表)

這三點中我最喜歡的也就是第三點,我們來看看winner框架中plsql報表系統的截圖:

之前在《事務的使用》中,我有提到一句說我把鎖表偵探放到plsql專案中,這樣通過spotlight監控到資料庫異常

就立馬上plsql查詢看是否有鎖表,所以這裡plsql還起到了乙個儲存常用sql的功能。 (當然如果是高階管理員可以直接寫成

儲存過程,這裡前面有講我們基本很少用儲存過程.)

我們看看plsql是如何使用的:

拿查詢系統內所有vip使用者舉例,這是銷售部門、客服部門經常要用的乙個報表,如果給他們單獨開發乙個後台費時又費力,有了plsql

就不一樣了,只需要在plsql中新增一條sql即可

首先我們寫一條查詢vip使用者的sql

select t.user_id

, t.user_code,

t.user_name

, decode(t.user_level,'0

','普通使用者

','1

','vip使用者

'),

t.auth_time

from

tnet_user t

where t.user_level =

1

oracle中有decode函式非常方便,sqlserver中就需要用case when 來實現。

然後將這條sql新增到報表系統

可以先驗證一下sql的正確性,這裡系統會有很多關鍵字過濾,比如update,delete等等都是新增不了的。這樣新增完之後會有兩個問題:

1,如果要給這張表單做關鍵字搜尋,比如使用者姓名搜尋,或者是註冊時間搜尋就做不了?

2,這樣新增之後,查詢出來表頭是資料庫字段,給市場人員使用,他們是否能看懂?

我們先看看表單呈現出來的效果:

根據以上兩個個問題,我們乙個個來講解,其實第乙個問題非常簡單,取別名就可以了(decode不識別也是因為沒有加別名)。

select t.user_id

"使用者編號",

t.user_code "使用者賬戶",

t.user_name

"使用者姓名",

decode(t.user_level,'0

','普通使用者

','1

','vip使用者

') "級別",

t.auth_time "註冊時間"

from

tnet_user t

where t.user_level =

1

再來第二個問題,沒有條件搜尋怎麼解決? winner的plsql優點也是這一塊,支援各種條件搜尋,關鍵字、時間 都沒問題,只需要把sql再改一下

select t.user_id

"使用者編號",

t.user_code "使用者賬戶",

t.user_name

"使用者姓名",

decode(t.user_level,'0

','普通使用者

','1

','vip使用者

') "級別",

t.auth_time "註冊時間"

from

tnet_user t

where t.user_level =

1and #t.user_name

=:user_name#

這裡以使用者名稱查詢為例,新增使用者名稱查詢,#t.user_name=:user_name# 這種寫法是報表系統自身解析了這種語法,自動識別

有成對「#」的話就判斷為條件搜尋,並且會自動在介面上生成查詢框。

再看看效果:

最後就是,這張報表給誰有許可權使用,誰沒有許可權使用。說白了就是授權:

授權介面:

大概功能就介紹到這裡了,plsql報表系統最大的不足就是在圖表這一塊。 如果公司對圖形化報表有要求的話,目前winner

失業程式設計師的自我救贖

王小波在 時代 裡寫道,那一天我二十一歲,在我一生的 時代。我有好多奢望。我想愛,想吃,還想在一瞬間變成天上半明半暗的雲。後來我才知道,生活就是個緩慢受錘的過程,人一天天老下去,奢望也一天天消失,最後變得像挨了錘的牛一樣。可是我過二十一歲生日時沒有預見到這一點。我覺得自己會永遠生猛下去,什麼也錘不了...

程式設計師的自我救贖(前言)

程式設計師的自我救贖 前言 記得第一次登陸的時候,在個人資料裡寫近期願望是當上專案經理。轉眼間7年過去了,我也當了四年多專案經理。驀然回首之間,也不再糾結被別人叫程式設計師還是叫軟體工程師。其實在當專案經理的4年裡,前兩年確實很忙。到第二年的時候,我開始不再碰 恰好微軟在.net這一塊也開始流行 使...

程式設計師的自我救贖 7 2 許可權系統實際應用

前言 一 winner2.0 框架基礎分析 二 plsql報表系統 三 sso單點登入 四 簡訊中心與訊息中心 五 錢包系統 六 gpu支付中心 七 許可權系統 八 監控系統 九 會員中心 十一 winner前端框架與rpc介面規範講解 十二 上層應用案例 十三 總結 許可權系統實際應用 講到許可權...