




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
.z..--可修編-自由報表技術(shù)紅皮書NC-UAP6.0用友NC-UAPDATE\"yyyy-MM-dd"6/12/2022-.z.目錄第一章前言11.背景12.入門12.1自由報表的新建12.2自由報表的格式設(shè)計42.3語義模型的使用62.4可擴展區(qū)域82.5數(shù)據(jù)預(yù)覽功能132.6分析功能153.小結(jié)18第二章根本功能181.可擴展區(qū)域管理182.排序223.篩選234.固定成員245.分組276.分組統(tǒng)計287.排名函數(shù)318.TopN分析339.穿插38第三章分析功能綜合應(yīng)用411.分組功能應(yīng)用411.1列表中的多級分組421.2穿插表結(jié)合分組應(yīng)用452.數(shù)據(jù)依賴處理區(qū)域拼接46第四章報表發(fā)布節(jié)點481.報表發(fā)布482.發(fā)布后節(jié)點49第五章穿透和聯(lián)查501.報表穿透502.報表聯(lián)查512.1接口TraceDataInterface512.2注冊方式522.3聯(lián)查的執(zhí)行522.4工具方法52第六章報表節(jié)點的擴展531.查詢動作擴展532.查詢條件553.區(qū)域條件564.業(yè)務(wù)格式575.格式調(diào)整器596.工具方法60第七章輔助開發(fā)工具621.手工導(dǎo)入導(dǎo)出622.安裝盤腳本632.1構(gòu)造平臺中支持自由報表〔以及語義模型〕的腳本導(dǎo)出632.2發(fā)布的報表節(jié)點導(dǎo)出633.安裝程序64-.z.前言背景為滿足各類用戶在報表分析方面的綜合要求,NC報表產(chǎn)品IUFO從5.5版本開場提供了一個分析型報表的解決方案:自由報表。本文針對V6自由報表功能進展介紹,但是使用了局部5.6版本的產(chǎn)品截圖,后續(xù)會逐步替換。自由報表具有以下特點:針對企業(yè)不同業(yè)務(wù)角色,提供多樣使用方式:報表數(shù)據(jù)查詢?nèi)藛T可以在報表數(shù)據(jù)查詢結(jié)果上直接構(gòu)建分析型報表,而不需具備較深技術(shù)背景;專業(yè)的分析報表設(shè)計人員則可以全面使用設(shè)計功能實現(xiàn)復(fù)雜報表的定義和發(fā)布;支持多種數(shù)據(jù)來源:系統(tǒng)置報表數(shù)據(jù)提供者和多種語義模型提供者,還支持注冊其他類型語義模型提供者,多來源數(shù)據(jù)都可以在一自由報表中進展數(shù)據(jù)分析和展現(xiàn);報表支持多區(qū)域模型,多個區(qū)域按照數(shù)據(jù)分析結(jié)果各自動態(tài)展開;多區(qū)域和多數(shù)據(jù)來源之間均可以設(shè)置依賴關(guān)系,能靈活組合拼裝出各類樣式的復(fù)雜報表;格式設(shè)計和報表展現(xiàn)效果一致:各種數(shù)據(jù)分析和格式設(shè)置都在設(shè)計界面有直觀展現(xiàn),特別是穿插表的設(shè)計方式突破以往,能夠可視化的直接定義維度指標(biāo)及各類展現(xiàn)效果;提供了分析圖表功能:提供了各類常見圖表分析功能;分析功能和交互性加強:全面支持排序/過濾/分組/統(tǒng)計/穿插/排名函數(shù)/TopN等分析功能,并具有頁維度和待定參數(shù)等交互特性。支持數(shù)據(jù)追蹤:自由報表中的明細數(shù)據(jù)和統(tǒng)計數(shù)據(jù)都支持追蹤到原始數(shù)據(jù)。針對大數(shù)據(jù)量的處理:利用數(shù)據(jù)庫的處理能力進展多級匯總數(shù)據(jù)的處理,展現(xiàn)層在電子表格中實現(xiàn)平滑分頁,可以分頁加載明細數(shù)據(jù)。入門使用自由報表的根本流程介紹。自由報表的新建選擇自由報表功能節(jié)點,就會出現(xiàn)如下界面:接下來我們選中左面目錄樹中的一個目錄,選擇工具欄上的“新增〞,如下列圖:報表卡片界面中填寫“自由報表名稱〞、“自由報表編碼〞,如下列圖:點擊工具欄中“保存〞之后,該目錄下的報表列表中就會出現(xiàn)剛剛新建的報表,如下列圖:自由報表的格式設(shè)計在自由報表界面選中需要格式設(shè)計操作的報表,點擊工具欄中的“格式設(shè)計〞如下列圖:報表的“格式設(shè)計〞主界面如下:主界面中主要包含菜單、工具欄、自由報表導(dǎo)航區(qū)域、數(shù)據(jù)顯示區(qū)域以及語義模型視圖等局部。如下列圖:語義模型的使用點擊“數(shù)據(jù)集視圖區(qū)域〞上方的工具欄中的“插入語義模型〞,出現(xiàn)選擇語義模型界面,如下列圖,選中已經(jīng)定義好的語義模型“user〞。點擊“確定〞,報表設(shè)計界面的語義模型信息框中就會出現(xiàn)被選擇的語義模型,如下列圖:可擴展區(qū)域可擴展區(qū)域是為了放置語義模型的區(qū)域,有兩種定義方式,一種是選中一定區(qū)域,然后右鍵菜單中選擇“設(shè)置可擴展區(qū)域〞,如下列圖:可擴展區(qū)域定義界面如下列圖,填寫相應(yīng)的信息。點擊“確定〞之后,數(shù)據(jù)顯示區(qū)域就會出現(xiàn)此可擴展區(qū)域,如下列圖:拖動右面語義模型信息框中語義模型的元數(shù)據(jù),放入設(shè)置的可擴展區(qū)域中,如下列圖:設(shè)置可擴展區(qū)域的另一種方式:直接拖動右面語義模型信息框中的語義模型,放入數(shù)據(jù)顯示區(qū)域,如下列圖:數(shù)據(jù)預(yù)覽功能定義完可擴展區(qū)域,并且放置語義模型之后,就可以對數(shù)據(jù)進展查看了,點擊工具欄中的“預(yù)覽〞按鈕,如下列圖:點擊“預(yù)覽〞之后,數(shù)據(jù)就會顯示在數(shù)據(jù)顯示區(qū)域,如下列圖:分析功能以排序功能為例,介紹分析功能的使用方法選中可擴展區(qū)域中的*一元數(shù)據(jù),然后選擇工具欄上的數(shù)據(jù)分析功能按鈕,如下列圖:點擊工具欄中的“排序〞,數(shù)據(jù)顯示區(qū)域顯示如下:點擊“預(yù)覽〞,會看到數(shù)據(jù)按升序來顯示,如下列圖。如果此時保存了報表格式,則報表瀏覽時也會按照此排序設(shè)置進展報表數(shù)據(jù)展開。小結(jié)自由報表基于語義模型,以電子表格的方式進展報表格式設(shè)計,并可以設(shè)置各種分析功能。在報表瀏覽狀態(tài)依然可以更改各類分析功能,到達實時交互分析數(shù)據(jù)的效果。根本功能可擴展區(qū)域管理下面詳細介紹可擴展區(qū)域的定義,拆分,合并,移動,復(fù)制,刪除等管理介紹。定義可擴展區(qū)域選擇一個區(qū)域,右鍵設(shè)置可擴展區(qū),即可定義個可擴展區(qū)。各設(shè)置項說明:可擴展區(qū)名稱:用于標(biāo)識和區(qū)分各可擴展區(qū),為空時系統(tǒng)默認名稱為其擴展區(qū)域??蓴U展區(qū)域:標(biāo)記可擴展區(qū)在自由報表中的區(qū)域。擴展方向:標(biāo)記區(qū)域是橫向擴展還是縱向擴展。限定區(qū)域大?。褐羞x擇“固定大小〞時,可通過“限定行數(shù)〞和“限定列數(shù)〞來限制可擴展區(qū)擴展后的區(qū)域大小。擴展依賴:定義當(dāng)前區(qū)域擴展時依賴的可擴展區(qū)域以及依賴擴展點。依賴具體規(guī)則參見2.2擴展規(guī)則介紹局部的擴展依賴介紹。拆分可擴展區(qū)域定義好可擴展區(qū)域后,可以對可擴展區(qū)域按行或按列進展區(qū)域拆分,將當(dāng)前可擴展區(qū)拆分成兩個可擴展區(qū)域。合并可擴展區(qū)域選中兩個或兩個以上的可擴展區(qū)域,可以對這多個可擴展區(qū)域進展區(qū)域合并,可以指定新合并區(qū)域的名稱,并指定要合并到主合并區(qū)域,用于可擴展區(qū)模型的處理。管理可擴展區(qū)域右鍵管理可擴展區(qū)域,用于快速管理多個可擴展區(qū)域,包括添加,修改,刪除等管理功能。移動可擴展區(qū)域可通過修改可擴展區(qū)域的區(qū)域設(shè)置來進展區(qū)域移動,也可以直接剪切然后粘貼來移動可擴展區(qū)域。復(fù)制可擴展區(qū)域全選可可擴展區(qū)域,然后復(fù)制,粘貼即可完成可擴展區(qū)域的復(fù)制粘貼??梢杂胏trl+c,ctrl+v進展快速操作。排序可以針對*個擴展區(qū)域中的語義模型設(shè)置多個排序字段,支持設(shè)置排序字段的升降序。在排序字段上顯示升序或降序標(biāo)記,重復(fù)點擊按照升序、降序、取消排序的順序依次變化。多個排序字段時按照從上至下,從左至右的順序確定排序次序。假設(shè)有分組,則在組排序,對分組字段也可以排序,也可以按照分組統(tǒng)計字段進展排序排序前:排序操作按鈕排序前排序后:排序操作按鈕排序前排序后的結(jié)果排序后的結(jié)果篩選可以針對*個擴展區(qū)域中的語義模型設(shè)置篩選,支持使用語義模型的待定參數(shù),給參數(shù)設(shè)置默認值,在數(shù)據(jù)態(tài)下可以重新設(shè)置篩選條件值。支持頁維度。根據(jù)選定的擴展區(qū),設(shè)置篩選條件,篩選條件作為單獨的功能,在格式態(tài)和數(shù)據(jù)態(tài)下都可以使用。語義模型的待定參數(shù)可以針對使用語義模型的區(qū)域設(shè)置默認值。參數(shù)值設(shè)置與篩選條件作為兩個菜單項,在數(shù)據(jù)態(tài)和格式態(tài)都可以使用。在從格式態(tài)切換到數(shù)據(jù)態(tài)時以及翻開報表預(yù)覽數(shù)據(jù)時自動出參數(shù)值設(shè)置界面。支持從語義模型中拖拽字段到頁頭形成頁維度,頁維度相當(dāng)于給所有使用了與頁維度一樣語義模型的區(qū)域設(shè)置了篩選條件。語義模型設(shè)置的待定參數(shù)與擴展區(qū)域的篩選條件以及頁維度一起篩選數(shù)據(jù)。圖例如下:第一步:點擊“點擊“篩選條件〞第二步:增加一條篩選條件增加一條篩選條件瀏覽數(shù)據(jù):數(shù)據(jù)已經(jīng)按條件進展了過濾數(shù)據(jù)已經(jīng)按條件進展了過濾固定成員對于自由報表的數(shù)據(jù)展現(xiàn),我們還提供了一種叫做“固定成員〞的功能。當(dāng)對*個字段設(shè)置固定成員后,顧名思義就是在數(shù)據(jù)展現(xiàn)的時候會按照該字段設(shè)置的幾個固定的成員和其順序來展現(xiàn)數(shù)據(jù)。其類似于篩選〔如同SQL中的in〕但又不同于篩選,如果查詢的數(shù)據(jù)中沒有固定成員中*個成員,在展現(xiàn)的時候仍然會出現(xiàn)該固定成員,只不過其他的字段沒有記錄而已。比方用戶希望只展現(xiàn)單位1、單位2、單位3的數(shù)據(jù),則就可以通過對單位設(shè)置固定成員來實現(xiàn)用戶希望看到的數(shù)據(jù)。固定成員的設(shè)置過程如下:1、翻開任意的一自由報表,選中擴展區(qū)域中的任何一個字段,在工具欄中選擇“固定成員設(shè)置〞按鈕,可對所選擇的字段進展固定成員設(shè)置。如下列圖1圖12、如下列圖2是固定成員設(shè)置的對話框。當(dāng)用戶選中“固定成員〞復(fù)選框后就可以對所選擇的字段設(shè)置固定成員了。用戶可通過“添加〞、“刪除〞按鈕增加和刪除固定成員,同時可以通過“讀取數(shù)據(jù)〞按鈕裝載數(shù)據(jù)庫中存在的所有成員;通過“向上〞、“向下〞按鈕調(diào)整固定成員的順序,同時可以通過固定成員列表的表頭來對固定成員進展排序,點擊“成員〞表頭就會按成員值進展排序,點擊“顯示名稱〞表頭就會按成員顯示名稱進展排序;可以編輯成員的顯示名稱來改變成員在數(shù)據(jù)展現(xiàn)的時候的顯示名稱。圖23、設(shè)置完固定成員后,在自由報表中瀏覽出的數(shù)據(jù)就僅僅含固定成員的數(shù)據(jù)記錄,如果數(shù)據(jù)庫中沒有*個成員的記錄就會出現(xiàn)空行〔下列圖的302單位的數(shù)據(jù)就是〕,如下列圖3。圖34.如果想取消字段的固定成員設(shè)置,可在固定成員設(shè)置對話框中重新選中“默認成員〞復(fù)選框,就取消了固定成員設(shè)置。如圖4、圖5圖4圖55.以上演示的是普通的行列表的字段的固定成員的設(shè)置,穿插表緯度的固定成員設(shè)置是一樣的操作。注意:不能對統(tǒng)計字段〔一般是數(shù)值型的字段〕設(shè)置固定成員如果設(shè)置固定成員的時候修改了成員的顯示名稱,然后又取消了固定成員設(shè)置,但是設(shè)置的顯示名稱仍然會生效,除非在默認成員設(shè)置列表中將該成員與顯示名稱記錄刪除。分組可以針對*個擴展區(qū)域中的語義模型設(shè)置分組,支持多個分組字段,支持分組統(tǒng)計字段,支持分組細節(jié)數(shù)據(jù)的穿插。在一個擴展區(qū)域,如果設(shè)置分組字段,則根據(jù)分組字段,將數(shù)據(jù)分組。如果有2個以上的分組字段,則根據(jù)分組字段所在的位置確定分組次序,處于最外層的字段作為第一分組順序。如果多個分組字段在1行,則根據(jù)多個分組字段的組合值分組。可指定放置在區(qū)域中的語義模型字段為分組字段;可在擴展區(qū)域的單元中直接定義分組統(tǒng)計函數(shù)〔會隱含確定一個分組字段〕,支持的統(tǒng)計函數(shù)列表:求和、計數(shù)、平均、最大、最?。辉O(shè)置了多個分組字段時,按照它們放置的位置從上到下、從左到右,作為其分組順序;分組字段和統(tǒng)計函數(shù)可以指定是否自動合并單元分組操作的界面如下:分組操作按鈕分組前分組操作按鈕分組前分組后:分組操作后分組操作后分組統(tǒng)計自由報表的分組統(tǒng)計,就是對自由報表的分組數(shù)據(jù)進展統(tǒng)計分析,分為合計、計數(shù)、平均、最大、最小五種類型。建立自由報表,進入格式設(shè)計,創(chuàng)立行列區(qū)。然后對擴展區(qū)進展分組:將字段拖入擴展區(qū),插入統(tǒng)計函數(shù):其中,合計、平均是針對數(shù)據(jù)型,對分組數(shù)據(jù)進展求和和求平均值;計數(shù)是對分組數(shù)據(jù)進展進展數(shù)目統(tǒng)計,最大和最小是對求分組數(shù)據(jù)的最大值和最小值。數(shù)據(jù)預(yù)覽,計數(shù)函數(shù):排名函數(shù)排名函數(shù)用于計算出*個報表數(shù)據(jù)在指定圍的排名。自由報表在多級分組區(qū)域中支持對明細數(shù)據(jù)字段或者分組統(tǒng)計字段計算排名。排名函數(shù)的設(shè)置 此功能按鈕位于工具欄中,如圖1-1所示。圖1-1圖1-2 設(shè)置界面如圖1-2,“從大到小〞表示按照數(shù)據(jù)從大到小進展排名;“允許并列〞表示數(shù)據(jù)大小一樣時排名一樣;“排名圍〞可以在語義模型的字段中進展選擇,如果選擇了*個分組字段,則表示在此分組級次中進展排名,如果非分組字段或者不選擇,則為所有數(shù)據(jù)圍進展排名。明細字段的排名函數(shù) 圖2-1是自由報表的格式設(shè)計界面,我們選中F4單元的“貨幣資金〞字段,將其設(shè)置為排名函數(shù)〔設(shè)置容同圖1-2〕。圖2-1圖2-2 圖2-2是報表瀏覽效果,F(xiàn)列就是計算出的貨幣資金在單位圍的從大到小排名。 如果設(shè)置了“允許并列〞,并且將排名圍設(shè)置成空〔所有數(shù)據(jù)圍排名〕,則報表效果有所變化,見圖2-3:圖2-3分組統(tǒng)計字段的排名函數(shù) 如圖3-1,我們也可以將按單位統(tǒng)計的貨幣資金小計〔F5單元格〕設(shè)置為排名函數(shù),這次我們設(shè)置的是從小到大進展排名。圖3-1報表瀏覽效果見圖3-2,紅色字體的就是貨幣資金單位小計的排名。圖3-2TopN分析TopN分析是一種常見的報表數(shù)據(jù)分析功能,可以按照數(shù)據(jù)大小過濾出前N行用戶最關(guān)注的業(yè)務(wù)數(shù)據(jù)。自由報表在多級分組區(qū)域中支持TopN分析功能,在明細數(shù)據(jù)字段或者分組統(tǒng)計字段上均可設(shè)置。TopN分析的設(shè)置 此功能按鈕位于工具欄中,如圖1-1所示。圖1-1圖1-2設(shè)置界面如圖1-2,“數(shù)據(jù)分析行數(shù)〞表示用戶關(guān)注的數(shù)據(jù)行數(shù);可選擇數(shù)據(jù)排列方式;“補足行數(shù)〞的意思是當(dāng)數(shù)據(jù)缺乏時,是否要用空數(shù)據(jù)補足數(shù)據(jù)分析行數(shù),這個設(shè)置有助于報表結(jié)果的工整和美觀;設(shè)置“顯示“其他〞〞表示多于分析行數(shù)的數(shù)據(jù)會進展匯總并顯示為“其他〞行。設(shè)置完成后,在所設(shè)置的單元格的右上角會顯示topN標(biāo)記:圖1-3在明細數(shù)據(jù)中設(shè)置了TopN分析的效果 圖2-1是自由報表的格式設(shè)計界面,我們選中“貨幣資金〞字段,為其設(shè)置TopN分析〔設(shè)置容同圖1-2〕。圖2-1圖2-2圖2-3我們比照一下設(shè)置前后的報表瀏覽效果〔分別是圖2-2和圖2-3〕,可以發(fā)現(xiàn),貨幣資金值最大的前3行數(shù)據(jù)依然顯示,而其他數(shù)據(jù)行匯總后顯示成了一行數(shù)據(jù)。分組報表中明細數(shù)據(jù)設(shè)置TopN分析的應(yīng)用效果 這一次,我們對數(shù)據(jù)按照單位編碼進展分組,圖3-1顯示區(qū)域中已經(jīng)設(shè)置單位編碼字段為分組字段。圖3-1圖3-2圖3-3我們再來比照一下設(shè)置前后的報表瀏覽效果〔分別是圖3-2和圖3-3〕,可以發(fā)現(xiàn),每個分組部貨幣資金值最大的前3行數(shù)據(jù)依然顯示,而其他數(shù)據(jù)行匯總后顯示成了一行數(shù)據(jù)。如果我們在TopN分析中選擇“補足行數(shù)〞,就會發(fā)現(xiàn)報表變得非常工整了,見圖3-4:圖3-4分組報表中對小計字段設(shè)置TopN分析的應(yīng)用效果 可擴展區(qū)域中已經(jīng)設(shè)置了按照單位編碼進展分組,如圖4-1所示。我們對按單位統(tǒng)計的貨幣資金小計〔D5單元格〕設(shè)置TopN分析,為了數(shù)據(jù)比照方便,這次的分析行數(shù)設(shè)置為2。圖4-1圖4-2圖4-3我們再來比照一下設(shè)置前后的報表瀏覽效果〔分別是圖4-2和圖4-3〕,單位貨幣資金小計值最大的前2個分組數(shù)據(jù)依然顯示,而其他分組數(shù)據(jù)小計匯總后顯示成了一行數(shù)據(jù)。需要注意的規(guī)則 為了用戶設(shè)置方便,我們并不限制設(shè)置TopN分析的字段個數(shù)。但是實際上在每個分組級次中,只有檢測到的第一個TopN分析生效。例如圖2-1中的一個普通列表,如果對后面的4個字段都設(shè)置了TopN,最終的報表展示也是圖2-3的效果,系統(tǒng)會將統(tǒng)一級次的其他TopN分析自動置成不啟用。穿插穿插表制作一般流程:選定適宜的區(qū)域設(shè)置成擴展區(qū)域;將語義模型中的數(shù)據(jù)通過拖拽操作放置在設(shè)置好的擴展區(qū)域中的相應(yīng)位置;根據(jù)需要選擇適當(dāng)?shù)拇┎妩c設(shè)置穿插區(qū)域;設(shè)置好穿插表后進展數(shù)據(jù)的瀏覽;擴展區(qū)域的設(shè)置選中區(qū)域鼠標(biāo)右鍵點擊設(shè)置可擴展區(qū)域,如下列圖:點擊確定如下列圖所示擴展區(qū)域字段的設(shè)置將語義模型中的字段通過拖拽操作放置在設(shè)置好的擴展區(qū)域中的相應(yīng)位置如下列圖:穿插區(qū)域字段的設(shè)置選中擴展設(shè)置好的擴展區(qū)域進展穿插區(qū)域的設(shè)置,如下列圖:A1:C5為穿插區(qū)域、B2及貨幣資金為穿插點、B2:C5為指標(biāo)區(qū)域,穿插點相當(dāng)于行列維度坐標(biāo)軸的原點(穿插區(qū))進展穿插區(qū)域數(shù)據(jù)的瀏覽點擊瀏覽后數(shù)據(jù)展現(xiàn)如下列圖,同一單位同一年度不同月份的合計值分析功能綜合應(yīng)用自由報表還支持設(shè)置區(qū)域之間的數(shù)據(jù)依賴關(guān)系,各種分析功能結(jié)合起來,靈活應(yīng)用就可以組裝出較為復(fù)雜的報表。分組功能應(yīng)用分組常見的應(yīng)用有兩種,一是對列表中的分組應(yīng)用;二是對穿插表結(jié)合分組應(yīng)用。列表中的多級分組如下一組數(shù)據(jù)〔圖1〕,直接預(yù)覽時數(shù)據(jù)就是自由展現(xiàn),則用戶就需要對數(shù)據(jù)利用單位名稱、幣種、會計期間等字段進展一些分組加工以便能讓更容易對數(shù)據(jù)進展分析比擬。圖1首先我們先對單位名稱字段設(shè)置分組,則數(shù)據(jù)按單位進展分組,并且得出按單位分組合計值圖2圖3在單位下還有幣種和會計期間字段,可以根據(jù)需要再設(shè)置分組,對數(shù)據(jù)繼續(xù)細化〔圖4、圖5〕。圖4圖5另外一種格式展現(xiàn)效果如下〔圖6〕是1單位2009年3月的銷售清單,為了更直觀的掌握銷售情況可以進展如下多層分組〔圖7〕。圖6格式設(shè)計如下:圖7數(shù)據(jù)展現(xiàn)如下〔圖8〕:圖8穿插表結(jié)合分組應(yīng)用圖1中的數(shù)據(jù)用穿插表展示時,分組也可以和穿插表結(jié)合在一起使用〔圖9〕圖9展示如下:圖10數(shù)據(jù)依賴處理區(qū)域拼接用戶可能會需要設(shè)計一些較為復(fù)雜的統(tǒng)計表,例如數(shù)據(jù)來源于不同的系統(tǒng),或者對于數(shù)據(jù)有不同的統(tǒng)計口徑,而這些數(shù)據(jù)又要集中表達在一統(tǒng)計報表中。V5.5之前的產(chǎn)品,如果用戶想處理復(fù)雜數(shù)據(jù),只能利用查詢引擎的功能,做數(shù)據(jù)表的關(guān)聯(lián)或者定義復(fù)合查詢,然后才能把一個查詢引入到報表中來。查詢的設(shè)計太過復(fù)雜,針對一個查詢的報表設(shè)計的靈活性和直觀性又都比擬差。V55自由查詢中使用多個可擴展區(qū)域的數(shù)據(jù)依賴功能解決了這個難題。穿插表是一種常用的報表統(tǒng)計樣式。自由報表叉表的設(shè)計比擬直觀:在一個可擴展區(qū)域,可以拖入行列維度字段和設(shè)置統(tǒng)計指標(biāo),并可以直接設(shè)置各類指標(biāo)名稱和單元格式。還可以設(shè)置是否顯示行列標(biāo)題。由此,對于復(fù)雜的統(tǒng)計報表,我們給出的解決方案是:根據(jù)報表數(shù)據(jù)容,將其拆分成多塊,這樣每一塊的數(shù)據(jù)來源單一且統(tǒng)計口徑簡單。每一塊都可以利用一個可擴展區(qū)域來設(shè)置,而各塊之間,只要通過設(shè)置數(shù)據(jù)依賴關(guān)系,并且選擇性地隱藏*些塊的行列表頭,就能使這些數(shù)據(jù)對應(yīng)起來,最終拼接成一個無縫復(fù)雜報表。穿插表如圖3-01,單個穿插表的設(shè)計界面比擬直觀。圖3-01穿插表的設(shè)計界面圖3-02是穿插表的數(shù)據(jù)瀏覽結(jié)果。圖3-02穿插表展開效果復(fù)雜報表的拼接如圖3-03,設(shè)置兩個穿插表,并設(shè)置其數(shù)據(jù)依賴關(guān)系,同時設(shè)置右邊的區(qū)域“不顯示行表頭〞。數(shù)據(jù)依賴關(guān)系的容是〔地區(qū)名稱依賴于區(qū)域1.地區(qū)名稱 客商名稱依賴于區(qū)域1.客商名稱〕圖3-03兩個區(qū)域設(shè)置數(shù)據(jù)依賴關(guān)系如圖3-04,這樣的兩個穿插表最終瀏覽結(jié)果看起來就是一個統(tǒng)計表啦。圖3-04拼接的展開效果報表發(fā)布節(jié)點報表發(fā)布在自由報表管理功能中,可以對設(shè)計好的自由報表進展“發(fā)布節(jié)點〞,對于第一次發(fā)布的節(jié)點,可以在發(fā)布向?qū)е型瑫r進展功能和菜單的設(shè)置。如果希望將多自由報表繼續(xù)發(fā)布到同一個功能節(jié)點,則可以選擇“追加〞方式,然后選擇一個已有節(jié)點進展發(fā)布即可。發(fā)布設(shè)置界面如下:發(fā)布后節(jié)點自由報表發(fā)布后的節(jié)點成為一個普通NC功能,功能注冊、菜單注冊和功能權(quán)限控制都是NC統(tǒng)一機制管理的。這個節(jié)點我們一般稱之為一個報表節(jié)點。報表節(jié)點中的多報表共用查詢條件,這意味著查詢條件或者查詢方案的變化會作用到本節(jié)點的所有報表上面。報表節(jié)點的典型界面如下:報表節(jié)點的主要交互方式:翻開節(jié)點節(jié)點所有報表在右邊以多頁簽形式翻開,顯示報表根本格式,但是不加載報表數(shù)據(jù)。點擊查詢根據(jù)節(jié)點的查詢模板配置等容,如果有查詢條件輸入界面,則彈出界面供用戶設(shè)置。根據(jù)查詢條件進展報表數(shù)據(jù)的加載和顯示。選擇查詢方案對于左側(cè)面板顯示的用戶已保存的查詢方案,鼠標(biāo)點擊時直接按照查詢方案容進展報表數(shù)據(jù)加載和顯示。切換報表頁簽按照當(dāng)前的查詢條件/查詢方案容,進展對應(yīng)報表數(shù)據(jù)加載和顯示。穿透和聯(lián)查報表穿透自由報表穿透是指按照用戶在報表格式中設(shè)定的穿透規(guī)則,進展關(guān)聯(lián)報表的數(shù)據(jù)查看。報表穿透暫時沒有提供業(yè)務(wù)擴展機制。目前支持兩種方式:穿透到單自由報表直接瀏覽;穿透到自由報表發(fā)布后節(jié)點。報表聯(lián)查報表聯(lián)查是根據(jù)業(yè)務(wù)需要進展當(dāng)前報表的關(guān)聯(lián)數(shù)據(jù)查看等動作,這是一個業(yè)務(wù)擴展機制,需要業(yè)務(wù)產(chǎn)品根據(jù)擴展機制進展聯(lián)查功能的開發(fā)。接口TraceDataInterfacepackagepackagenc.pub.smart.tracedata;/***業(yè)務(wù)聯(lián)查接口,由業(yè)務(wù)組根據(jù)具體業(yè)務(wù)去實現(xiàn)**authorwanyonga**/publicinterfaceTraceDataInterface{ ITraceDataOperator[]provideTraceDataOperator();}聯(lián)查操作接口ItraceDataOperator主要方法有:/***業(yè)務(wù)聯(lián)查菜單下注冊菜單項的名字**return*/publicStringgetMenuItemName();/***擴展追蹤動作**return*/publicAction[]ctreateE*tensionActions();/***執(zhí)行業(yè)務(wù)聯(lián)查各業(yè)務(wù)模塊根據(jù)需求執(zhí)行聯(lián)查操作**paramcontainer*聯(lián)查過程中彈出對話框等需要的父組件。*paramparam*聯(lián)查參數(shù)*/publicvoidtraceData(Containercontainer,TraceDataParamparam);注冊方式業(yè)務(wù)模塊需要首先將接口TraceDataInterface的實現(xiàn)類注冊到iufo_tracedataregister表中。然后在“報表平臺-〉分析建模-〉語義模型管理〞節(jié)點中,為已經(jīng)建立的語義模型配置聯(lián)查接口實現(xiàn)類。聯(lián)查的執(zhí)行報表節(jié)點中,如果引用的語義模型中配置了聯(lián)查接口實現(xiàn)類的話,會在聯(lián)查菜單下出現(xiàn)具體業(yè)務(wù)聯(lián)查菜單項,每個菜單項會調(diào)用到對應(yīng)的聯(lián)查動作Action。工具方法在報表節(jié)點進展報表切換,可使用報表平臺提供的工具方法:publicclassFreeReportFuncletUtil{/***在發(fā)布后節(jié)點切換報表顯示**paramcontainer*paramreportID*paramdrillParam*return*/publicstaticbooleanshowReport(Containercontainer,StringreportID,FreeReportDrillParamdrillParam)方法參數(shù)說明:Containercontainer:父窗口。StringreportID:目標(biāo)報表的id。FreeReportDrillParamdrillParam:自由報表翻開時的穿透參數(shù)。穿透參數(shù)是自由報表進展報表數(shù)據(jù)加載的一種參數(shù)條件。在報表執(zhí)行的時候,如果發(fā)現(xiàn)上下文中有報表穿透參數(shù),則會執(zhí)行查詢交互接口IQueryAction的doQueryByDrill方法。此方法具體容詳見第六章的擴展機制介紹。如果需要翻開另一個報表節(jié)點,則推薦使用下面的工具方法:publicclassFreeReportFuncletUtil{/***通過聯(lián)查參數(shù)翻開報表節(jié)點中的指定報表**paramfuncode*paraminitData*return*/publicstaticbooleanopenReportNode(Stringfuncode,FuncletInitDatainitData)方法參數(shù)說明:Stringfuncode:目標(biāo)節(jié)點的功能編碼。FuncletInitDatainitData:這是UAP封裝的翻開節(jié)點時的初始數(shù)據(jù)對象。對于報表節(jié)點的翻開,要求這個FuncletInitData對象的initData屬性實現(xiàn)IReportNodeInitData接口,便于從中獲取穿透參數(shù):/***自由報表發(fā)布節(jié)點的初始數(shù)據(jù)對象接口,用于傳遞報表穿透參數(shù)*/publicinterfaceIReportNodeInitData{/***返回自由報表通用的穿透參數(shù)**return*/publicFreeReportDrillParamgetReportDrillParam();}報表節(jié)點的擴展除了上面介紹的聯(lián)查外,報表節(jié)點支持以查詢菜單的動作為入口的一系列業(yè)務(wù)擴展機制。查詢動作擴展查詢動作接口為:.IQueryAction,主要完成查詢菜單和查詢方案等界面交互功能。其實現(xiàn)類應(yīng)該在client中。報表平臺提供了此接口的默認實現(xiàn):.DefaultQueryAction。/***“查詢〞交互的擴展*/publicinterfaceIQueryAction{publicstaticfinalStringKEY_IQUERYACTION=IQueryAction.class.getName();/***“查詢〞菜單的執(zhí)行動作**paramparent*paramconte*t*paramreportModel*paramoldCondition*return*/publicabstractIQueryConditiondoQueryAction(Containerparent,IConte*tconte*t,AbsAnaReportModelreportModel, IQueryConditionoldCondition);/***查詢交互的對話框,需要從中獲取查詢方案面板**paramparent*paramconte*t*paramreportModel*paramoldCondition*return*/publicabstractQueryConditionDLGgetQueryConditionDlg(Containerparent,IConte*tconte*t, AbsAnaReportModelreportModel,IQueryConditionoldCondition);/***根據(jù)指定查詢方案進展查詢**paramparent*paramconte*t*paramreportModel*paramqueryScheme*return*/publicabstractIQueryConditiondoQueryByScheme(Containerparent,IConte*tconte*t,AbsAnaReportModelreportModel, IQuerySchemequeryScheme);/***根據(jù)外部送入的穿透參數(shù)進展查詢**paramparent*paramconte*t*paramreportModel*paramdrillParam*return*/publicabstractIQueryConditiondoQueryByDrill(Containerparent,IConte*tconte*t,AbsAnaReportModelreportModel, FreeReportDrillParamdrillParam);/***頁維度過濾的事件處理**paramparent*paramconte*t*paramreportModel*/publicabstractvoiddoPageDimFilter(Containerparent,IConte*tconte*t,AbsAnaReportModelreportModel);}查詢條件查詢擴展中查詢交互、按方案查詢和按穿透參數(shù)查詢?nèi)齻€方法的返回值都是查詢條件.IQueryCondition。報表執(zhí)行過程中會使用此查詢條件,并將其放在上下文中進展傳遞。例如語義模型執(zhí)行時就可以使用鍵值FreeReportConte*tKey.KEY_IQUERYCONDITION從上下文中獲取此條件對象。此接口的實現(xiàn)類應(yīng)該在public中。報表平臺提供了此接口的默認實現(xiàn):.BaseQueryCondition。/***“查詢〞交互返回的條件**/publicinterfaceIQueryConditione*tendsSerializable,Cloneable{/***是否繼續(xù)本次查詢**returnboolean*/publicabstractbooleanisContinue();/***返回針對各個區(qū)域的條件設(shè)置**paramareaName報表擴展區(qū)域名稱*paramsmartModel引用的語義模型*returnIAreaCondition*/publicabstractIAreaConditiongetAreaConditions(StringareaName,SmartModelsmartModel);/***返回報表格式模型的調(diào)節(jié)器**returnIReportAdjustor*/publicabstractIReportAdjustorgetReportAdjustor();/***返回業(yè)務(wù)邏輯對報表單元格式〔包括精度〕的處理器**returnIBusiFormat*/publicabstractIBusiFormatgetBusiFormat(StringareaName,SmartModelsmartModel);}區(qū)域條件自由報表中語義模型的執(zhí)行是以擴展區(qū)域為單位的,所以查詢條件中需要針對每個擴展區(qū)域獲取其語義模型執(zhí)行條件。此接口的實現(xiàn)類應(yīng)該在public中。報表平臺提供了此接口的默認實現(xiàn):.BaseAreaCondition。/***為報表中各個區(qū)域設(shè)置的“查詢〞條件**/publicinterfaceIAreaCondition{/***返回額外設(shè)置的語義模型描述器數(shù)組,包括:排序、篩選、匯總等*returnDescriptor[]*/publicabstractDescriptor[]getAllDescriptors();/***返回外部設(shè)置的報表區(qū)域參數(shù)數(shù)組*returnParameter[]*/publicabstractParameter[]getParameters();}業(yè)務(wù)格式業(yè)務(wù)格式接口.IBusiFormat,用于實現(xiàn)業(yè)務(wù)邏輯對報表數(shù)據(jù)的特殊格式要求。此接口的實現(xiàn)類應(yīng)該在public中。/***業(yè)務(wù)邏輯對報表格式的處理接口**/publicinterfaceIBusiFormat{publicstaticintBUSIFORMAT_TYPE_NONE=0;//沒有業(yè)務(wù)格式publicstaticintBUSIFORMAT_TYPE_COLUMN=1;//整列〔字段〕使用同樣的業(yè)務(wù)格式publicstaticintBUSIFORMAT_TYPE_ROW=2;//業(yè)務(wù)格式和行數(shù)據(jù)相關(guān)/***返回報表區(qū)域中,指定語義模型字段的業(yè)務(wù)格式類型,請使用本接口的常量定義**paramareaPK*paramsmartID*paramfldName*return*/publicabstractintgetFormatType(StringfldName);/***返回指定字段的整列精度,如果不需要重新指定則請返回TableConstant.UNDEFINED**paramareaPK*paramsmartID*paramfldName*return*/publicabstractintgetColumnDigital(StringfldName);/***根據(jù)行數(shù)據(jù)返回指定字段的精度,如果不需要重新指定則請返回TableConstant.UNDEFINED**paramareaPK*paramsmartID*paramfldName*paramrowData*return*/publicabstractintgetDataDigital(StringfldName,IRowDatarowData);/***返回字段新的整列格式**paramareaPK*paramsmartID*paramfldName*paramoldFormat*return*/publicabstractIFormatgetColumnFormat(StringfldName,IFormatoldFormat);/***根據(jù)行數(shù)據(jù)返回字段對應(yīng)新的單元格式**paramareaPK*paramsmartID*paramfldName*paramrowData*paramoldFormat*return*/publicabstractIFormatgetDataFormat(StringfldName,IRowDatarowData,IFormatoldFormat);}格式調(diào)整器格式調(diào)整器接口.IReportAdjustor,用于實現(xiàn)根據(jù)查詢條件動態(tài)更改報表格式的要求。但是一旦業(yè)務(wù)代碼進展了格式調(diào)整,意味著用戶自己定義的報表格式一定會有損失,請慎重使用。此接口的實現(xiàn)類應(yīng)該在public中。/***自由報表格式模型調(diào)節(jié)器*/publicinterfaceIReportAdjustor{/***進展單個擴展區(qū)域的格式模型調(diào)整**paramconte*t*paramareaPK*paramreportModel*/publicabstractvoiddoAreaAdjust(IConte*tconte*t,StringareaPK,IAreaConditionareaCond,AbsAnaReportModelreportModel);/***進展報表格式模型的調(diào)整**paramconte*t*paramreportModel*/publicabstractvoiddoReportAdjust(IConte*tconte*t,AnaReportModelreportModel);}如果業(yè)務(wù)邏輯需要對報表數(shù)據(jù)進展再加工處理,則可用上面的格式調(diào)整器同時實現(xiàn)報表數(shù)據(jù)調(diào)整接口.IReportDataAdjustor。/***自由報表數(shù)據(jù)模型的業(yè)務(wù)代碼擴展**/publicinterfaceIReportDataAdjustore*tendsIReportAdjustor{/***進展穿插表頭的處理**paramconte*t*paramareaPK*paramreportModel*/publicabstractCrossTableModeldoAdjustCrossHeader(StringareaPK,IConte*tconte*t,CrossTableModelcrossTabel, AbsAnaReportModelreportModel);}工具方法格式調(diào)整器中如果需要設(shè)置報表格式,建議使用報表平臺統(tǒng)一提供的工具類:/***區(qū)域容設(shè)置工具類*/publicclassAreaContentSetUtil{/***根據(jù)區(qū)域容設(shè)置重新設(shè)置擴展區(qū)**paramareaContentSet*paramanaModel*return*/publicstaticbooleanresetE*CellByAreaContent(AreaContentSetareaContentSet,AbsAnaReportModelanaModel);/****將擴展區(qū)域的語義模型參數(shù)增加為報表參數(shù),并設(shè)置該擴展區(qū)域參數(shù)的值取新報表參數(shù)的值.**paramareaname擴展區(qū)域名稱*paramanaModel報表模型*paramdoSetParamValue是否設(shè)置該擴展區(qū)域參數(shù)的值取新報表參數(shù)的值*return*/publicstaticbooleanaddReportParameter(AbsAnaReportModelanaModel,booleandoSetParamValue);/***根據(jù)穿插區(qū)容設(shè)置重新設(shè)置穿插區(qū)**paramcrossAreaContentSet*paramanaModel*return*/publicstaticbooleanresetCrossAreaByCrossAreaContent(CrossAreaContentSetcrossAreaContentSet, AbsAnaReportModelanaModel);/***根據(jù)區(qū)域容設(shè)置*些字段進展隱藏**paramareaContentSet*paramanaModel*return*/publicstaticbooleanresetE*CellByHideFields(AreaContentSetareaContentSet,booleanhideCalcFields,AbsAnaReportModelanaModel);/***直接設(shè)置表格中指定單元位置的容**paramcellInfos*paramanaModel*return*/publicstaticbooleanresetCellInfo(E*CellInfoSetcellInfos,AbsAnaReportModelanaModel);/****直接設(shè)置頁維度工程**paramsmartID*paramcondItems*return*/publicstaticbooleanresetReportCondition(StringsmartID,ReportConditionItem[]condItems,booleanclear, AbsAnaReportModelanaModel);/****設(shè)置指定字段的固定成員**paramfieldName*paramfi*Values*return*/publicstaticbooleansetFi*Values(StringareaPK,StringfieldName,Fi*ValueInfo[]fi*Values,AbsAnaReportModelanaModel);輔助開發(fā)工具手工導(dǎo)入導(dǎo)出自由報表提供報表格式和語義模型的導(dǎo)出和導(dǎo)入工具,目前掛接在開發(fā)平臺-〉報表平臺-〉自由報表-預(yù)置節(jié)點。根據(jù)配置文件容將指定的目錄名中的所有容導(dǎo)出到指定路徑下,并可從指定路徑中進展導(dǎo)入。在開發(fā)環(huán)境下,導(dǎo)入導(dǎo)出配置文件放在BI模塊的resources目錄下,分別是e*perties(導(dǎo)出配置文件),perties(導(dǎo)入配置文件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 礦用照明與安全標(biāo)識設(shè)備考核試卷
- 毛巾類制品的庫存控制與倉儲管理考核試卷
- 勞務(wù)派遣服務(wù)的客戶關(guān)系優(yōu)化策略制定與執(zhí)行評估考核試卷
- 石膏在輕質(zhì)隔墻板制造中的應(yīng)用考核試卷
- 生態(tài)環(huán)境監(jiān)測在環(huán)境教育中的重要性考核試卷
- 電視機修理操作流程考核試卷
- 堿金屬與水的反應(yīng)研究考核試卷
- 紡織機械的智能工廠運營管理策略優(yōu)化考核試卷
- 天津醫(yī)科大學(xué)臨床醫(yī)學(xué)院《舞蹈與健康》2023-2024學(xué)年第二學(xué)期期末試卷
- 吉林水利電力職業(yè)學(xué)院《清代宮廷文化史》2023-2024學(xué)年第二學(xué)期期末試卷
- 抗高血壓藥物研究進展頁PPT課件
- DB3212∕T 1098-2022 小微企業(yè)安全生產(chǎn)托管服務(wù)規(guī)范
- 診所備案申請表格(衛(wèi)健委備案)
- 環(huán)境土壤學(xué)PPT課件
- 辦公生活區(qū)臨時設(shè)施施工方案
- GB∕T 40262-2021 金屬鍍膜織物 金屬層結(jié)合力的測定 膠帶法
- 視頻監(jiān)控vcn3000系列技術(shù)白皮書
- 小學(xué)三年級西師大版數(shù)學(xué)下冊計算題專題練習(xí)題
- 最新獻身國防事業(yè)志愿書(士兵版)
- 基于三菱plc的電力系統(tǒng)無功補償設(shè)計說明
- 五金沖壓車間質(zhì)量管理規(guī)范(含表格)
評論
0/150
提交評論