国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

鉆取報表學(xué)習(xí)總結(jié)

2019-11-06 06:13:17
字體:
供稿:網(wǎng)友

什么是鉆取報表

鉆取報表是在希望支持指向其他相關(guān)報表的鉆取鏈接時創(chuàng)建的一種報表。通常,鉆取報表通過數(shù)據(jù)與父報表關(guān)聯(lián)。舉一個常見的鉆取報表的示例:包含指向當月各個銷售訂單的鏈接的 Monthly Sales 報表。當您單擊鉆取鏈接時,父報表將被含有支持詳細信息的其他報表替代。參考資料: http://baike.baidu.com/view/92983.htm========

報表開發(fā)實例——動態(tài)多層次KPI鉆取報表

http://blog.csdn.net/u012388497/article/details/45577673          在報表項目中有時會有動態(tài)層次報表,而且還需要層次鉆取的場景,開發(fā)難度較大。這里記錄了使?jié)櫱銏蟊黹_發(fā)《各級部門KPI報表》的過程。         《各級部門KPI報表》初始狀態(tài)如下圖:         當前節(jié)點是根節(jié)點“河北省”,要求報表顯示當前節(jié)點的下一級節(jié)點“地市”匯總的KPI數(shù)值。Kpi又分為普通指標和Vip指標兩類,共四項。如果點擊“石家莊”來鉆取的時候,要求能夠?qū)⑹仪f下一級的KPI匯總指標顯示出來,如下圖:         點擊“中心區(qū)”鉆取,要求能夠?qū)⑾乱患壍腒PI匯總指標顯示出來,以此類推,直到顯示到最后一級。如下圖:         前四級固定是“省、地市、區(qū)縣、營業(yè)部”,后邊則是動態(tài)的“架構(gòu)4、架構(gòu)5、架構(gòu)6. . . 架構(gòu)13”(根節(jié)點“省”對應(yīng)“架構(gòu)0”)。這個報表對應(yīng)的Oracle數(shù)據(jù)庫表有兩個,tree(樹形結(jié)構(gòu)維表)和kpi(指標事實表),如下圖: Tree表 Kpi表         Tree表的葉子節(jié)點,通過id字段與kpi表關(guān)聯(lián)。這個報表的難點在于1、動態(tài)的多層數(shù)據(jù)、標題;2、樹形結(jié)構(gòu)數(shù)據(jù)與事實表關(guān)聯(lián)。         采用潤乾集算報表實現(xiàn)的第一步:編寫集算腳本tree.dfx,完成源數(shù)據(jù)計算。集算腳本如下:         A1:連接預(yù)先配置好的oracle數(shù)據(jù)庫。         A2:新建一個序列,內(nèi)容是“省、地市、區(qū)縣、營業(yè)部、架構(gòu)4、架構(gòu)5、架構(gòu)6. . . 架構(gòu)13”。         A3:使用oracle數(shù)據(jù)庫提供的connectby語句編寫sql,從數(shù)據(jù)庫中取出指定id(節(jié)點編號)的所有父節(jié)點id、name。id是預(yù)先定義的網(wǎng)格參數(shù),如果傳進來的值是104020,那么A3的計算結(jié)果是:          A4:為A3增加一個字段title,按照順序,對應(yīng)A2中的層級。結(jié)果是:         A5:計算變量level,是A3序表的長度,也就是輸入節(jié)點“104020”的層級號“4”(“省”為第一級)。         A6:計算輸入節(jié)點“104020”的下一級對應(yīng)的層級名稱“架構(gòu)4”,賦值給變量xtitle。         A7:編寫sql,從tree表中取出輸入節(jié)點“104020”的所有葉子節(jié)點,并拆分sys_connect_by_path字符串,得到這些葉子節(jié)點對應(yīng)的輸入節(jié)點“104020”的下一級節(jié)點。形成臨時表leaf與kpi表關(guān)聯(lián)分組匯總。為了能夠得到輸入節(jié)點“104020”的下一級節(jié)點的name,leaf還需要與tree關(guān)聯(lián)一次。需要注意的是,如果輸入節(jié)點號本身就是葉子節(jié)點,結(jié)果中的name將為空。完整的sql如下:[sql] view plain copy 在CODE上查看代碼片派生到我的代碼片with leaf as(  SELECT tree.id id,REGEXP_SUBSTR(SYS_CONNECT_BY_PATH(id,';'),'[^;]+',1,2) x FROM tree  whereconnect_by_isleaf=1  START WITH ID =?       CONNECT BY NOCYCLE PRIOR id = pid  )  select nvl(leaf.x,max(leaf.id))id,'"+xtitle+"' title,max(tree.name) name, sum(kpi.kpi1)kpi1,sum(kpi.kpi2) kpi2,sum(kpi.vipkpi1) vipkpi1,sum(kpi.vipkpi2) vipkpi2  from leaf left join kpi on leaf.id = kpi.idleft join tree on leaf.x=tree.id  group by leaf.x order by leaf.x           計算的結(jié)果是:          A8:關(guān)閉數(shù)據(jù)庫連接。         A9:向報表返回A4、A7兩個結(jié)果集。         第二步:在報表設(shè)計器中定義報表參數(shù)和集算數(shù)據(jù)集,調(diào)用tree.dfx。如下圖: 定義報表參數(shù)“id” 定義集算數(shù)據(jù)集(其中的參數(shù)名“id”是集算腳本的輸出參數(shù)名,參數(shù)值“id”是報表參數(shù)。         第三步,設(shè)計報表如下圖:          A列是報表的左半部分,是輸入節(jié)點(例如:“104020”)的所有父節(jié)點和它本身,橫向擴展,A1的值是id,顯示的是title。A3顯示的是name。         B列是報表的中間部分,是輸入節(jié)點(例如:“104020”)的下一級子節(jié)點,縱向擴展。在B3格中設(shè)置隱藏列的條件是value()==null,如果輸入節(jié)點本省就是葉子節(jié)點,那么name==null,B列就會隱藏不顯示了。         C列到F列是報表的右半部分,顯示的是ds2.name對應(yīng)的kpi統(tǒng)計值。         為了實現(xiàn)報表的格式需要,A3單元格需要將左主格設(shè)置為B3。         為了實現(xiàn)鉆取功能,需要:         1、  將A3單元格的超鏈接屬性定義為表達式:"/reportjsp/showReport.jsp?rpx=r4.rpx&id="+ds1.ID。超鏈接指向本報表自身,報表參數(shù)是當前列對應(yīng)的ds1.ID。         2、  將B3單元格的超鏈接屬性定義為表達式:"/reportJsp/showReport.jsp?rpx=r4.rpx&id="+ds2.ID。超鏈接指向本報表自身,報表參數(shù)是當前行對應(yīng)的ds2.ID。         第四步:發(fā)布報表并運行。實際的超鏈值如下圖:         從上述實現(xiàn)步驟可以看到,難度最大的是tree.dfx中的A7單元格的復(fù)雜SQL。應(yīng)該說,oracle數(shù)據(jù)庫的樹形遞歸查詢還是比較豐富的,用其他數(shù)據(jù)庫(比如MySQL,PostgreSQL及Greenplum等)可能就很難實現(xiàn)A7中的SQL。那么有什么其他方案,可以讓這些數(shù)據(jù)庫也能實現(xiàn)上述復(fù)雜的樹形結(jié)構(gòu)計算呢?========

報表中如何進行數(shù)據(jù)鉆取

http://jingyan.baidu.com/article/2a138328a9d186074a134fcf.html報表系統(tǒng)中數(shù)據(jù)的鉆取是一個普遍的需求,如下圖點擊訂單ID的時候能夠鉆取到該訂單的明細數(shù)據(jù)。報表通過超級連接功能方便的實現(xiàn)了數(shù)據(jù)鉆取及無限層鉆取。下面我們就通過FineReport報表軟件進行介紹。報表中如何進行數(shù)據(jù)鉆取步驟閱讀工具/原料報表軟件FineReport7.1.1大小:148.2M 適用平臺:windows/linux方法/步驟1我們以內(nèi)置數(shù)據(jù)庫FRDemo中的訂單表和訂單明細表為例為大家介紹下數(shù)據(jù)鉆取的實現(xiàn)。2新建一個子表,數(shù)據(jù)集就是訂單明細表,將表樣設(shè)計如下樣式:子表中定義一個參數(shù),用來接收主表中傳來的訂單ID值,在此我們定義報表參數(shù),參數(shù)的名為ID,然后給訂單ID設(shè)置過濾條件,使訂單ID等于參數(shù)ID3數(shù)據(jù)鉆取設(shè)置打開主表,右擊訂單ID數(shù)據(jù)列所在單元格,選擇超級鏈接,彈出超級鏈接對話框,添加網(wǎng)絡(luò)報表,然后按照下圖設(shè)置超級鏈接:注:在子表中使用同樣的方法再設(shè)置超級鏈接就能實現(xiàn)無限層次的鉆取。4預(yù)覽分頁預(yù)覽父表,點擊某個訂單ID,就能鉆取到明細表了,如下圖。========

報表之鉆取報表

http://www.cnblogs.com/ck-winner/archive/2013/02/02/2890546.html  1.沿用之前報表數(shù)據(jù)源,新建主報表與子報表(以下分別為主,子報表)   2.在子報表中設(shè)置鉆取參數(shù),即上圖中的Department。  3.設(shè)置主報表鉆取鏈接。     在文本框?qū)傩浴安僮鳌币粰凇⒂脼槌溄又羞x擇“轉(zhuǎn)到報表”,選擇子報表。     之后添加參數(shù),即選擇子報表的鉆取參數(shù),在值中選擇傳遞的字段。     4.修改子報表數(shù)據(jù)源(若只移植到web項目中,此步驟可省略。SSRS中不可忽略)    此時,鉆取報表即可預(yù)覽。但為了移植到web項目中,繼續(xù)...  5.在web項目中,鉆取報表必須實現(xiàn)Drillthrough事件。 View Code  注意:若僅適用鉆取參數(shù),可使用OriginalParametersToDrillthrough索引器。msdn推薦GetParameters方法。此方法獲取報表所有參數(shù)集合。          因為web項目默認獲取的報表對象為rdlc,但該報表實為rdl,所以截取最后一位,才可與實際路徑相符。  以下分別為主、子報表效果圖。========
上一篇:17-02-28

下一篇:windows下安裝mysql5.6

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 获嘉县| 长葛市| 桃江县| 安西县| 罗江县| 咸阳市| 壤塘县| 陇南市| 龙州县| 阆中市| 桂阳县| 桂林市| 姚安县| 两当县| 芦溪县| 阿城市| 四子王旗| 永泰县| 东丰县| 葫芦岛市| 育儿| 静海县| 上思县| 新乡市| 沙雅县| 伊金霍洛旗| 祁门县| 朝阳县| 贵港市| 平江县| 崇明县| 凭祥市| 当雄县| 丹巴县| 海门市| 绥阳县| 武冈市| 普陀区| 新密市| 陵川县| 郓城县|