1. 程式人生 > >【BIEE】12_根據顯示指標展示不同報表

【BIEE】12_根據顯示指標展示不同報表

str color padding 制造 導入 接受 信息 mar 得到

報表開發過程中,我們經常會需要根據所選擇的不同指標,展示不同的報表!例如:

技術分享圖片

顯示指標有:金額與合同數,可以根據顯示指標選擇的內容進行相應報表數據展示

一、環境準備

create table crm_info(
crm_name varchar(100) ,
crm_no varchar(40) not null primary key ,
crm_type varchar(8),
crm_lvl varchar(8),
crm_status varchar(8),
crm_indu varchar(8),
crm_sex varchar(8),
crm_birthdate Date,
crm_dept 
varchar(8), crm_country varchar(8), crm_email varchar(20)); insert into crm_info values(牧雲笙,crm001,uvip,A,01,A,01,to_date(1987-10-02,yyyy-mm-dd),A01,CN,[email protected]); insert into crm_info values(蘇語凝,crm002,vip,B,01,S,02,to_date(1986-1-2,yyyy-mm-dd),A04,USA,[email protected]
); insert into crm_info values(南枯月漓,crm003,vip,D,01,D,02,to_date(1973-02-02,yyyy-mm-dd),A03,UK,[email protected]); insert into crm_info values(赫蘭鐵朵,crm004,uvip,B,01,M,01,to_date(1999-12-01,yyyy-mm-dd),A02,USA,[email protected]); insert into crm_info values(牧雲寒,crm005
,vip,D,01,T,02,to_date(1965-01-01,yyyy-mm-dd),A01,USA,[email protected]); insert into crm_info values(碩風和葉,crm006,uvip,D,02,U,01,to_date(1996-01-23,yyyy-mm-dd),A01,CN,[email protected]); insert into crm_info values(盼兮,crm007,uvip,C,01,B,02,to_date(1998-01-01,yyyy-mm-dd),A03,CN,[email protected]); insert into crm_info values(穆如寒江,crm008,vip,D,02,S,01,to_date(1976-12-4,yyyy-mm-dd),A02,CN,[email protected]); insert into crm_info values(蘭鈺兒,crm009,vip,A,01,S,02,to_date(1986-4-6,yyyy-mm-dd),A03,UK,[email protected]); insert into crm_info values(牧雲陸,crm010,vip,B,01,L,01,to_date(1988-4-5,yyyy-mm-dd),A01,CN,[email protected]); commit; create table contract_info( contract_no varchar(40) not null primary key, crm_no varchar(40), contract_amt decimal(18,2), start_date varchar(8), end_date varchar(8), register_date varchar(8)); INSERT INTO contract_Info values(contract01,crm002,1230000,20170203,20180203,20170203); INSERT INTO contract_Info values(contract02,crm003,200000000,20160209,20170209,20160209); INSERT INTO contract_Info values(contract03,crm004,200000000,20150609,20160609,20150609); INSERT INTO contract_Info values(contract04,crm005,23000000,20170203,20180203,20170203); INSERT INTO contract_Info values(contract05,crm006,1000000,20160506,20170506,20160506); INSERT INTO contract_Info values(contract06,crm007,100000000,20180101,20190101,20180101); INSERT INTO contract_Info values(contract07,crm002,2000000,20170202,20180202,20170202); INSERT INTO contract_Info values(contract08,crm003,200000000,20170405,20180405,20170405); INSERT INTO contract_Info values(contract09,crm004,500000,20110101,20170101,20110101); INSERT INTO contract_Info values(contract10,crm005,633333,20120223,20180223,20120223); INSERT INTO contract_Info values(contract11,crm006,45000000,20160101,20180101,20160101); create table mapping( Type VARCHAR(20), Key varchar(4), Value varchar(100)); INSERT INTO mapping VALUES(crm_lvl,vip,vip客戶); INSERT INTO mapping VALUES(crm_lvl,uvip,非vip客戶); INSERT INTO mapping VALUES(crm_type,A,優秀); INSERT INTO mapping VALUES(crm_type,B,良好); INSERT INTO mapping VALUES(crm_type,C,中等); INSERT INTO mapping VALUES(crm_type,D,一般); INSERT INTO mapping VALUES(crm_status,01,存續客戶); INSERT INTO mapping VALUES(crm_status,02,流失客戶); INSERT INTO mapping VALUES(crm_indu,A,農、牧、林、漁業); INSERT INTO mapping VALUES(crm_indu,B,采礦和采石); INSERT INTO mapping VALUES(crm_indu,C,制造業); INSERT INTO mapping VALUES(crm_indu,D,電、煤氣、蒸汽和空調供應); INSERT INTO mapping VALUES(crm_indu,E,供水;汙水處理、廢物管理和補救); INSERT INTO mapping VALUES(crm_indu,F,建築業); INSERT INTO mapping VALUES(crm_indu,G,批發和零售業;汽車和摩托車修理); INSERT INTO mapping VALUES(crm_indu,H,運輸與存儲); INSERT INTO mapping VALUES(crm_indu,I,食宿服務); INSERT INTO mapping VALUES(crm_indu,J,信息和通信); INSERT INTO mapping VALUES(crm_indu,K,金融和保險); INSERT INTO mapping VALUES(crm_indu,L,房地產); INSERT INTO mapping VALUES(crm_indu,M,專業、科學和技術); INSERT INTO mapping VALUES(crm_indu,N,行政和輔助); INSERT INTO mapping VALUES(crm_indu,O,公共管理與國防;強制性社會保障); INSERT INTO mapping VALUES(crm_indu,P,教育); INSERT INTO mapping VALUES(crm_indu,Q,人體健康和社會工作); INSERT INTO mapping VALUES(crm_indu,R,藝術、娛樂和文娛); INSERT INTO mapping VALUES(crm_indu,S,其他服務); INSERT INTO mapping VALUES(crm_indu,T,家庭作為雇主的;家庭自用、未加區分的物品生產和服務); INSERT INTO mapping VALUES(crm_indu,U,國際組織和機構); INSERT INTO mapping VALUES(crm_sex,01,); INSERT INTO mapping VALUES(crm_sex,02,); INSERT INTO mapping VALUES(crm_dept,A01,財務部); INSERT INTO mapping VALUES(crm_dept,A02,人事部); INSERT INTO mapping VALUES(crm_dept,A03,采購部); INSERT INTO mapping VALUES(crm_dept,A04,市場部); INSERT INTO mapping VALUES(crm_country,CN,中國); INSERT INTO mapping VALUES(crm_country,USA,美國); INSERT INTO mapping VALUES(crm_country,UK,英國); commit; ------建立維度視圖 CREATE OR REPLACE VIEW V_DIM_CRM_LVL AS SELECT KEY,VALUE FROM mapping WHERE Type=crm_lvl; CREATE OR REPLACE VIEW V_DIM_CRM_TYPE AS SELECT KEY,VALUE FROM mapping WHERE Type=crm_type; CREATE OR REPLACE VIEW V_DIM_CRM_STATUS AS SELECT KEY,VALUE FROM mapping WHERE Type=crm_status; CREATE OR REPLACE VIEW V_DIM_CRM_INDU AS SELECT KEY,VALUE FROM mapping WHERE Type=crm_indu; CREATE OR REPLACE VIEW V_DIM_CRM_SEX AS SELECT KEY,VALUE FROM mapping WHERE Type=crm_sex; CREATE OR REPLACE VIEW V_DIM_CRM_DEPT AS SELECT KEY,VALUE FROM mapping WHERE Type=crm_dept; CREATE OR REPLACE VIEW V_DIM_CRM_COUNTRY AS SELECT KEY,VALUE FROM mapping WHERE Type=crm_country; -----建立合同客戶關系視圖 CREATE OR REPLACE VIEW CRM_CONTRACT_RELATION AS SELECT A.CONTRACT_NO,A.CONTRACT_AMT,A.START_DATE,A.END_DATE,A.REGISTER_DATE ,B.* FROM contract_Info A INNER JOIN CRM_INFO B ON A.CRM_NO=B.CRM_NO

根據上述腳本建表後,可得到如下數據:

CRM_CONTRACT_RELATION

技術分享圖片

V_DIM_CRM_COUNTRY

技術分享圖片

將上述兩個視圖導入到資料庫,然後關聯,接著設計分析

二、儀表盤提示設計

技術分享圖片

使用變量VAR接受值,然後傳值給分析,在分析中通過@{VAR}進行引用

三、分析設計

技術分享圖片

①國家:

"V_DIM_CRM_COUNTRY"."VALUE"

技術分享圖片

②vip金額:

ifnull(CASE WHEN ‘@{VAR}{金額}‘=‘金額‘ AND "CRM_CONTRACT_RELATION"."CRM_TYPE"=‘vip‘ THEN "CRM_CONTRACT_RELATION"."合同金額" WHEN ‘@{VAR}‘=‘合同數‘ AND "CRM_CONTRACT_RELATION"."CRM_TYPE"=‘vip‘ THEN "CRM_CONTRACT_RELATION"."CNT" ELSE NULL END,0)

技術分享圖片

③非vip金額:

ifnull(CASE WHEN ‘@{VAR}{金額}‘=‘金額‘ AND "CRM_CONTRACT_RELATION"."CRM_TYPE"=‘uvip‘ THEN "CRM_CONTRACT_RELATION"."合同金額" WHEN ‘@{VAR}‘=‘合同數‘ AND "CRM_CONTRACT_RELATION"."CRM_TYPE"=‘uvip‘ THEN "CRM_CONTRACT_RELATION"."CNT" ELSE NULL END,0)

技術分享圖片

④金額:

‘@{VAR}{金額}‘

技術分享圖片

四、儀表盤設計

將分析與儀表盤結合在一起,然後展示報表

技術分享圖片

五、展示報表

當選擇【金額】時,

技術分享圖片

當選擇【合同數】時

技術分享圖片

通過以上可以發現,我們的報表現在可以通過選擇的【顯示指標】不一致,顯示不同的結果。

【BIEE】12_根據顯示指標展示不同報表