




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、報表模式化開發(fā)手冊, for NC-V3)朱俊彬、賴宏偉、李媛媛NC-UAP第一章 總體介紹 21. 開發(fā)概述 2技術(shù)型報表與業(yè)務型報表 2一般報表開發(fā)存在的問題 2模式化報表開發(fā)思路 22. 應用模型 3數(shù)據(jù)模型與展現(xiàn)模型 3數(shù)據(jù)字典 4業(yè)務系統(tǒng)集成 5第二章 低開發(fā)難度報表 61. 概述 62. 查詢類報表 8明細報表 8匯總報表 17列結(jié)構(gòu)依賴于查詢條件的報表(動態(tài)23SQL) 3. 交叉類報表 30列向拼接查詢型報表(復合查詢) 31列向分支統(tǒng)計型報表( CASE-36WHE)N 動態(tài)行列交叉型報表(旋轉(zhuǎn)交叉) 404. 投影類報表 45單元格依賴于行列條件的報表(投影交叉) 45半錄
2、入半嵌入型報表(合并查詢) 515. 算法類報表 55數(shù)據(jù)加工預備知識 55非投影類占比報表(普通占比) 60投影類占比報表(投影占比) 65程序送數(shù)型報表 696. 高級應用 73支持穿透的非投影交叉類報表(普通穿透) 73支持穿透的投影交叉類報表(投影穿透) 79支持主從連動的報表 84支持統(tǒng)計圖表的報表 88第三章 高開發(fā)難度報表 921. 基于行業(yè)報表工具開發(fā)的報表92標準報表 92分塊填充報 1042.基于CELL REPORT具開發(fā)的報表 111CELL REPOIRTM#紹111CELL REPORT表 113附錄 1241模式一覽表 1242.查詢引擎FA0參數(shù)AW篇125第一
3、章 總體介紹1. 開發(fā)概述技術(shù)型報表與業(yè)務型報表我們將報表應用劃分為兩種類型, 一類應用的側(cè)重點在于出報表所蘊涵的技術(shù), 開發(fā)者 (程序員或?qū)嵤┤藛T) 通常憑借一定的數(shù)據(jù)庫和編程知識, 基于庫里的業(yè)務數(shù)據(jù), 做出符合用戶需求的報表展現(xiàn)和輸出, 此類應用稱為技術(shù)型報表; 另一類應用則著眼于整個報表生命周期中各環(huán)節(jié)的管理(包括出表、上報、審核、匯總、發(fā)布等流程) , 即把做報表的行為當成一項業(yè)務,對直接開發(fā)者的主要要求在于業(yè)務熟悉程度而非技術(shù),此類應用稱為業(yè)務型報表。前者通常由專業(yè)程序員、 二次開發(fā)人員或技術(shù)型實施顧問承擔開發(fā)工作, 早期工具如報表模板、自定義查詢等均面向此類應用, IUFO 則是
4、后者的代表性產(chǎn)品。本文檔作為集團平臺技術(shù)部對外發(fā)布的開發(fā)手冊,主要針對對象為技術(shù)型報表。一般報表開發(fā)存在的問題報表屬于ERP 項目中的關(guān)鍵應用,通常被用戶的高層領(lǐng)導用于企業(yè)業(yè)績評估、輔助決策或?qū)ν獍l(fā)布。 據(jù)統(tǒng)計, 在很多交付壓力較大的項目當中, 報表開發(fā)占有相當?shù)谋戎亍?就目前開發(fā)現(xiàn)狀而言,影響報表快速交付的主要問題有以下幾點:1 、 報 表開發(fā)本身的復雜性高。 中國式報表由于政策以及長期人工填報的原因具有極強的個性化特點,根據(jù)業(yè)務邏輯進行數(shù)據(jù)查詢、數(shù)據(jù)組織、表樣展現(xiàn)和界面處理的每個步驟都耗費了很高的開發(fā)代價;2 、 報 表開發(fā)的復用性低。 開發(fā)人員投入巨大努力完成第一批報表后, 發(fā)現(xiàn)第二批報
5、表依然要從頭做起,或者另一名開發(fā)人員遇到類似于第一批報表的需求,無法借鑒(甚至根本不知道)前人的開發(fā)成果;3 、 報 表開發(fā)對專業(yè)技能要求偏高。 很多二次開發(fā)人員雖然不是專門搞技術(shù)的, 但通常具有定的開發(fā)基礎(chǔ),而目前的二次開發(fā)平臺限制了他們發(fā)揮應有的作用。模式化報表開發(fā)思路所謂模式化開發(fā), 包含兩方面的工作: 專職人員將有代表性的應用進行歸納抽象, 提取出共性的部分形成代碼框架和方案,并以手冊的形式對外發(fā)布;報表開發(fā)人員拿到項目需求后,從手冊上找到匹配的模式, 通過編寫一些低技術(shù)含量的子類代碼或進行一些機械性的工具操作, 就能夠快速地完成開發(fā)工作。 以往大部分的重復性勞動已經(jīng)在模式的基類或者缺
6、省實現(xiàn)中處理,當開發(fā)人員需要體現(xiàn)個性化的時候,則可以通過自己對接口的特殊實現(xiàn)完成。隨著模式的逐步豐富, 開發(fā)人員開發(fā)各類模式報表的工作量都會明顯降低, 同時也實現(xiàn)了代碼復用和知識共享, 另一方面, 由于開發(fā)者的工作趨于簡單和機械, 他們的角色就可以由低專業(yè)技能人員所取代。 從這個角度上說, 模式化是解決上節(jié)所述三個問題從而真正實現(xiàn)報表快速開發(fā)的有效方案。本手冊介紹了兩大類NC 報表開發(fā)模式, 一類是基于查詢引擎的低開發(fā)難度報表, 其編碼量小, 操作簡單, 適合于開發(fā)數(shù)據(jù)和格式比較規(guī)律的報表; 另一類是基于行業(yè)報表工具的高開發(fā)難度報表,主要工作是編寫子類代碼,自由度高,適合于開發(fā)復雜報表。2.
7、應用模型數(shù)據(jù)模型與展現(xiàn)模型一般來說,報表是由數(shù)據(jù)和格式組成的整體。報表的數(shù)據(jù)模型通常包含以下信息:1、 數(shù) 據(jù)結(jié)構(gòu);2、 待 定參數(shù)描述;3、 取 數(shù)規(guī)則描述;4、 數(shù) 據(jù)加工算法描述;5、 多 個數(shù)據(jù)集合之間的數(shù)據(jù)關(guān)聯(lián)描述;可作為數(shù)據(jù)載體的常用 NC 數(shù)據(jù)結(jié)構(gòu)包括:1、一一循環(huán)訪問VO是由屬性和取值成對組成的集合,提供了根據(jù)屬性獲得/設(shè)置值的方法,是單據(jù)和報表模板采用的主要結(jié)構(gòu);2、 普通VO,包含多個屬性及每個屬性的getter和setter方法,是業(yè)務組主要數(shù)據(jù)結(jié)構(gòu)的父類;3、 存儲數(shù)據(jù)集, 由元數(shù)據(jù)和內(nèi)容數(shù)據(jù)兩部分組成, 元數(shù)據(jù)( Column )描述了各列的信息,內(nèi)容數(shù)據(jù)描述了一個二
8、維的數(shù)據(jù)集合,當游標 指向內(nèi)容數(shù)據(jù)的某行時,可以獲得該行指定列的數(shù)據(jù),用于查詢引擎;4、 內(nèi)存結(jié)果集 , 同樣 由元數(shù)據(jù)和內(nèi)容數(shù)據(jù)組 成 , 其中元 數(shù) 據(jù)( MemoryResultSetMetaData )描述各列信息,內(nèi)容數(shù)據(jù)( ArrayList )描述了一個二維數(shù)據(jù)集合,可以直接訪問其任何元素,目前被一些業(yè)務算法使用;5、 Object , Vector , ArrayList 這些都是 JDK 的常用結(jié)構(gòu),均可存儲二維數(shù)據(jù)。報表的展現(xiàn)模型通常包含以下信息:1、 控 件(核心控件是表格)屬性和布局;2、 控 件顯示內(nèi)容與顯示規(guī)則(綁定數(shù)據(jù)、參數(shù)、行列格式、界面資源等) ;3、 控 件
9、連動規(guī)則;4、 數(shù) 據(jù)處理規(guī)則(定位、排序、過濾、統(tǒng)計、公式、交叉、鉆取等) ;5、 動 態(tài)擴展規(guī)則;6、 輸 入輸出控制(待定參數(shù)設(shè)置,打印,導出等)第3 頁數(shù)據(jù)字典NC數(shù)據(jù)字典提供了統(tǒng)一的數(shù)據(jù)建模平臺,支持對各種數(shù)據(jù)庫對象進行管理,維護這些物理對象的邏輯屬性,并向外系統(tǒng)提供訪問數(shù)據(jù)庫邏輯信息的接口。以查詢引擎為例,查詢對象的定義是基于數(shù)據(jù)字典進行的,而這份數(shù)據(jù)字典來自查詢對象所指定的數(shù)據(jù)源。由于多數(shù)報表的列與業(yè)務數(shù)據(jù)庫的字段存在某種對應關(guān)系,因此數(shù)據(jù)字典的存在有助于提高查詢定義的直觀性和易用性。NC數(shù)據(jù)字典通常在安裝產(chǎn)品時候由系統(tǒng)生成,如果想自己為某些數(shù)據(jù)庫對象生成字典,可以采用數(shù)據(jù)字典管
10、理界面提供的導入方法。導入方式包括三種(詳細操作可參見數(shù)據(jù)字典導入說明)1、解析PDM文件(xml格式);2、解析NC標準建庫腳本;3、提取數(shù)據(jù)庫元數(shù)據(jù);如果需要給非 NC數(shù)據(jù)庫(比如用戶采用的第三方數(shù)據(jù)庫)生成數(shù)據(jù)字典,可以 利用PowerDesigner 提供的逆向工程功能將庫里的物理表生成PDM文件,修改其中表和字段的 中文名稱,然后以xml文件格式存儲,再使用上述第一種方法導入。業(yè)務系統(tǒng)集成對于直接使用查詢引擎開發(fā)出的報表, 可以使用以下兩種方式掛接到業(yè)務組的功能節(jié)點。 強烈建議把準備掛接節(jié)點的查詢對象和格式對象的編碼設(shè)為與業(yè)務系統(tǒng)相關(guān)的有意義字符串,以避免不同業(yè)務系統(tǒng)預置對象互相覆蓋
11、的危險性。報表管理節(jié)點掛接法:1、 注 冊功能節(jié)點,類名為;2、 下 掛一個參數(shù),參數(shù)名為folderId ,參數(shù)值為客戶化下查詢引擎管理中相關(guān)報表目錄的ID (可從數(shù)據(jù)庫表 pub_formatmodeldef 的i d字段查出)。獨立報表節(jié)點掛接法:1、 注 冊功能節(jié)點,類名為:2、下掛兩個參數(shù):pkQryNode界面模型對應的編碼(可從查詢引擎管理界面讀取), dsName查詢定義所在數(shù)據(jù)源。對于高開發(fā)難度模式的報表,則與普通功能節(jié)點一樣掛接ToftPanel 的子類即可。第5 頁第二章低開發(fā)難度報表1.概述本手冊列舉的低開發(fā)難度報表*II式統(tǒng)一由查詢引擎(V3版本)提供解決方案。查詢引
12、擎是一個面向高級實施人員和普通開發(fā)人員的查詢建模產(chǎn)品,延續(xù)并完善了自定義查詢體系的技 術(shù)路線,在全面支持復雜查詢的設(shè)計和個性化的報表展現(xiàn)的同時,大幅度降低了報表開發(fā)人員的編碼工作量和專業(yè)技能要求。我們再來看一下查詢引擎的適用性和不適用性。查詢引擎長期作為一個查詢工具發(fā)展,因此尤其適用于與數(shù)據(jù)庫查詢分析或數(shù)據(jù)挖掘關(guān)系密切的報表開發(fā),同時也支持程序員調(diào)用服務器端代碼對數(shù)據(jù)進行業(yè)務處理。 另一方面,自定義查詢體系與模板體系存在一個很大的不同, 模板體系在發(fā)布產(chǎn)品之前已經(jīng)由程序員錄入了大量初始化數(shù)據(jù),因此不同用戶能夠分配到不同的查詢模板、報表模板和打印模板,而自定義查詢體系是完全自定義的實時開發(fā),沒有
13、模板的預制數(shù)據(jù),因此在一個時刻只支持一種參數(shù)控制樣式、一種報表界面樣式和一種打印樣(或直接打?。?,但這些樣式均可在設(shè)計態(tài)修改。 在展現(xiàn)上,由于查詢引擎使用的是 SWING的表格 控件,因此對一些 EXCEL風格的需求支持不夠,這個薄弱環(huán)節(jié)將在 V31得到加強。 總體來 說,V3版本的查詢引擎暫不適用于以下兩類報表開發(fā):1、有多模板分配需求的報表,或?qū)Υ蛴∮懈叨纫蟮膱蟊恚?、存在表體合并單元格的報表。查詢引擎的查詢模型(數(shù)據(jù)模型)設(shè)計如下:舉 敬 控 制奉數(shù)控制第9頁查詢模型流程如下所示(設(shè)計態(tài)/運行態(tài)):我電否底定叉界面模型(展現(xiàn)模型)設(shè)計如下:查詢心Iffl連動規(guī)則(主從)數(shù)挺也處理向田出
14、艱里面嗅型設(shè)A患控件連動基=蜀.據(jù)隼的數(shù)據(jù)處理基于表格的蒯據(jù)處理報表輸出界面模型流程如下所示:本章共介紹了五大類報表的十五種開發(fā)模式。盡管這些模式之間存在相當差異, 但是針對以 前我們發(fā)現(xiàn)的一些用例雜亂導致的培訓效果問題,本章的所有范例集中面向兩個業(yè)務應用(單位費用統(tǒng)計和部門人事統(tǒng)計),即用不同方案解決相似問題,以便于讀者從中領(lǐng)會和比較這些模式的原理、特點和適用性。希望這種做法不會給讀者造成一個誤導:查詢引擎只能解決這兩類報表的應用。2.查詢類報表查詢類報表指通過一個或多個 SQL查詢結(jié)果形成的二維數(shù)據(jù)展現(xiàn)出來的報表, 由于SQL的 語法特點,此類報表通常具有固定的列結(jié)構(gòu)和動態(tài)的行結(jié)構(gòu),但模式
15、 也探討了一種根據(jù) 參數(shù)動態(tài)改變查詢列結(jié)構(gòu)的方案。明細報表【概述】 明細報表用于展現(xiàn)最基本維度上的數(shù)據(jù),即最細粒度的數(shù)據(jù)。通常明細總是相對于匯總而言的,如果我們把某商品每個月的總銷售額列表視為匯總數(shù)據(jù),那么該商品每天的詳細銷售情況就可視為明細數(shù)據(jù);如果我們把某部門當年的總薪資情況做成匯總表,那么該部門每位員工當年的薪資情況就可以做成明細表。查詢類報表中的明細表通常是指一些不含聚合函數(shù)的SQL語句直接能夠查詢出的數(shù)據(jù)形成的報表。【應用場景】開發(fā)人員需要通過多表聯(lián)查SQL 或者復合查詢獲得表體數(shù)據(jù),同時為報表展現(xiàn)提供待定條件設(shè)置、 欄位設(shè)置、 排序、 過濾、 定位、 小計合計及輸出等功能。 當明細
16、表與匯總表一起出現(xiàn)時,用戶通常還會有從匯總數(shù)據(jù)聯(lián)查明細數(shù)據(jù)的需求(又稱穿透或鉆取) , 此類應用將在模式 中介紹。【適用性和不適用性】適用于:明細數(shù)據(jù)的取數(shù)規(guī)則可用 SQL 描述;不適用于:通過行列條件統(tǒng)計單元取值的明細表。此類報表應遵循模式 解決;通過程序算法構(gòu)造明細數(shù)據(jù)的報表。此類報表應遵循算法類報表模式解決;【解決方案】取數(shù)由向?qū)絊QL 設(shè)計描述,查詢條件由參數(shù)控制機制解決,欄目在格式設(shè)計態(tài)設(shè)定,排序、過濾、定位、小計合計、輸出等功能均內(nèi)置于報表瀏覽態(tài)?!鹃_發(fā)步驟】第一步: 在查詢引擎管理中建立查詢對象Q1, 做向?qū)?SQL 設(shè)計 (通常不含聚合函數(shù)sum、avg 、 count 、
17、 max、 min 。) 對于一個 SQL 無法描述的查詢,比如指定單位在指定期間內(nèi)不同 科目的發(fā)生額,可以利用復合查詢(基于查詢對象的查詢,可參考模式) 進行描述。 Q1 中待定的信息由參數(shù)定義描述, 普通參數(shù)可以在向?qū)皆O(shè)計的篩選條件處引用, 替換型參數(shù) 可以在向?qū)胶褪止な皆O(shè)計的任意位置引用(參見 FAQ 文檔) ;第二步: 創(chuàng)建格式對象 F1 , 引用查詢對象 Q1 并嵌入表格, 做相關(guān)的欄位、 列格式和列表頭設(shè)計。表頭表尾可放置綁定參數(shù)的控件;第三步:瀏覽F1 (或掛功能節(jié)點),設(shè)置參數(shù),檢查數(shù)據(jù)與格式是否正確;【 FAQ】1、如何充分發(fā)揮查詢模型中參數(shù)的功能? 答:參見附錄提供的查
18、詢引擎FAQ 之參數(shù)篇 。2、格式設(shè)計中的16 種控件各有何種用途? 答:表格、圖表是核心控件,用于綁定數(shù)據(jù)集;面板、拆分窗格(分割面板) 、 多頁簽作為 界面容器;標簽、文本框、下拉框(組合框) 、 參照、文本域、復選框、單選框是表頭表尾控件, 需要放在容器上面, 用于綁定參數(shù); 下拉框、列表綁定枚舉型參數(shù), 參照綁定參照型參數(shù);主子表是已經(jīng)不推薦使用的連動展現(xiàn)控件;按鈕、樹暫無實際用處。3、如何控制報表的輸出格式?答:打印輸出利用格式設(shè)計中的打印設(shè)置功能控制,EXCEL輸出由界面表格的樣式控制?!痉独?單位費用明細表各單位在指定期間范圍內(nèi)的費用明細情況。報 表中要求包括公司、期間、制單日
19、期、科目、分錄摘要、發(fā)生額等信息,用戶可以根據(jù)年度和期間范圍進行查詢。第10 頁公司期間制單日期科目摘要借發(fā)生額貸發(fā)生額1、查詢引擎管理主界面創(chuàng)建查詢對象,編碼為 gldetail ,名稱為費用明細;2、進行參數(shù)定義,增加三個字符型參數(shù):年,起始期間,終止期間;進行SQL向?qū)гO(shè)計第10頁從第12頁4、在篩選條件頁簽增加待定條件,在右操作數(shù)框中按F12引用參數(shù);5、創(chuàng)建格式對象,編碼為 gldetail ,名稱為“費用明細表”;6、引用查詢“費用明細”;7、進行格式設(shè)計:添加表格和面板控件,表格停靠于中部,雙擊控件設(shè)置屬性,綁定數(shù)據(jù)集費用明細面板??坑诒辈?作為第13頁表 ,采用流式布局(Flo
20、wLayout )在面板上放 三個文本框控件,分別綁定費用明細的三個參第16頁(可選)定義一種列格式,用于顯示兩位小數(shù), 在表格屬性框的列格式分欄中由兩個金額 列引用此列格式;自定義列格式引用列名列業(yè)小由列格式是古顯不IINTTNAHE公司名稱缺管格式1ZAFEMOO會計期間雎扃EfREFmDDATE制單日期跳省格式0士業(yè)用AME科目名稱缺省格式0EJCFLANATION摘要內(nèi)容缺省格式IZ1DCA1DECIT.本市借發(fā)生領(lǐng)二位4嚏E JLOCALCRJDI.上移回貸沒韌二位小數(shù)癰定叵取消79、瀏覽費用明細表(先設(shè)置參數(shù))匯總報表【概述】 匯總數(shù)據(jù)通常與明細數(shù)據(jù)相對, 是指在明細數(shù)據(jù)基礎(chǔ)上指定
21、若干個有分類意義的字符型列進行分組, 并對另外若干個有統(tǒng)計意義的數(shù)值型列進行求和 (或求平均、 最值、 計數(shù)等) 獲得的數(shù)據(jù)。展現(xiàn)匯總數(shù)據(jù)的報表稱為匯總報表?!緫脠鼍啊?我們再細分為兩種應用:1 靜 態(tài)匯總設(shè)置:查詢數(shù)據(jù)的 SQL 中指定了分組列和匯總列,此設(shè)置在報表瀏覽狀態(tài)不再改變。要求提供待定條件設(shè)置、欄位設(shè)置、排序、過濾、定位、小計合計及輸出等功能。2 動 態(tài)匯總設(shè)置: 事先對數(shù)據(jù)設(shè)定某種缺省的匯總設(shè)置, 此設(shè)置在瀏覽態(tài)可做更改, 并重新計算匯總數(shù)據(jù)。 同時具備上述功能需求?!具m用性和不適用性】適用于:匯總數(shù)據(jù)的取數(shù)規(guī)則可用 SQL 描述;不適用于:通過行列條件統(tǒng)計單元取值的匯總表。此
22、類報表應遵循模式解決;通過程序算法構(gòu)造匯總數(shù)據(jù)的報表。此類報表應遵循算法類報表模式解決;【解決方案】取數(shù)由向?qū)絊QL 設(shè)計描述,查詢條件由參數(shù)控制機制解決,欄目在格式設(shè)計態(tài)設(shè)定,動 態(tài)匯總由旋轉(zhuǎn)交叉機制解決,排序、過濾、定位、小計、輸出等功能均內(nèi)置于報表瀏覽態(tài)?!鹃_發(fā)步驟】1、靜態(tài)匯總設(shè)置第一步:在查詢引擎管理中建立查詢對象Q2,做向?qū)?SQL設(shè)計,定義帶有聚合函數(shù)的SQL 語句。單個SQL 無法描述的查詢利用復合查詢描述。在Q2 的查詢模型中創(chuàng)建參數(shù)和引用參數(shù),用來描述待定的信息;第二步: 創(chuàng)建格式對象 F2 , 引用查詢對象 Q2 并嵌入表格, 做相關(guān)的欄位、 列格式和列表頭設(shè)計。表頭
23、表尾可放置綁定參數(shù)的控件;第三步:瀏覽F2 (或掛功能節(jié)點),設(shè)置參數(shù),檢查數(shù)據(jù)與格式是否正確;2、動態(tài)匯總設(shè)置第一步: 同上述第一步 (但也可以不設(shè)置聚合函數(shù), 而是在旋轉(zhuǎn)交叉設(shè)置中把缺省的分組列 放到行列表中,把缺省的匯總列放到值列表中) ;第二步: 同上述第二步, 因交叉表的列結(jié)構(gòu)不能在設(shè)計態(tài)確定, 因此只能指定非匯總列的列格式等信息;第三步:同上述第三步,需要改變匯總設(shè)置的時候,利用表頭右鍵菜單的交叉功能把新的匯總列移到交叉行列表,確定即可;(關(guān)于交叉的詳細說明參見下一節(jié))【FAQ1、行SQL向?qū)гO(shè)計時如何指定group by字段? 答:無需指定,系統(tǒng)自動 把不含聚合函數(shù)的查詢字段作為
24、 group by字段。2、行SQL手工設(shè)計時為何order by 字段無效? 答:需要顯式指定排序字段的排序方式(升序asc,降序 desc)【范例】單位費用匯總表一一各單位在指定期間范圍內(nèi)的費用匯總情況。報表中要求包括公司、期間、科目、匯總發(fā)生額等信息,用戶可以根據(jù)年度和期間范圍進行查詢。公司期間科目借發(fā)生額貸發(fā)生額1、創(chuàng)建查詢對象,編碼為glsum,名稱為費用匯總;2、進行參數(shù)定義,增加三個字符型參數(shù):年,起始期間,終止期間;3、進行SQL向?qū)гO(shè)計:從數(shù)據(jù)字典添加憑證表、 憑證分錄、科目表和公司目錄, 指定表間 連接關(guān)系、查詢字段、篩選條件和排序字段(除查詢字段外均與模式的范例相同);4
25、、在篩選條件頁簽增加待定條件,在右操作數(shù)框中按F12引用參數(shù);5、創(chuàng)建格式對象,編碼為 glsum,名稱為“費用匯總表”。引用查詢“費用匯總”;6、進行格式設(shè)計:添加表格和面板控件,表格??坑谥胁?,綁定數(shù)據(jù)集費用匯總,面板停 靠于北部(作為表頭容器),采用流式布局,在面板上放三個文本框控件,分別綁定費用匯 總的三個參數(shù);7、瀏覽費用匯總表(先設(shè)置參數(shù))8、當前匯總設(shè)置是對公司、期間、科目分組統(tǒng)計發(fā)生額,如果需要動態(tài)改變匯總依據(jù),則可以使用表頭右鍵菜單中的交叉功能。比如我們需要按照公司、期間重新匯總,則把公司和期間移至交叉行列表,發(fā)生額移至交叉值列表,確定即可;常由詢9年7 |F x返回載寬杷理
26、'制新輯出,費用匯點隸年,中覺始期目01轉(zhuǎn)止環(huán)間U夫司戈林會計祚臼1時撲注i司D1ImW 'TT6EL6和5 4孫用+制i卬3七心"口鉤竄內(nèi)現(xiàn)???1J有 KL5國則內(nèi)3M片件分會司DQ£ GMEU 31元愎分號周D1H玉粉TJ1白tU'JJS 13 .'H&良it)(n.ortBD.nE總撲分WF1D115609= 22sgLniS 4311T甥慟H司02&D0U 95040 5排祚回;1200M105用方找件9、如果我們把科目移至交叉行,期間移至交叉列,發(fā)生額移至交叉值,那么就實現(xiàn)了帶有數(shù)據(jù)旋轉(zhuǎn)的動態(tài)匯總,即展現(xiàn)各科目在不
27、同期間下匯總出來的發(fā)生額。關(guān)于旋轉(zhuǎn)交叉的詳細用可參看模式;多臺苗御季口叵區(qū)1謝科2件,行列t&M f我理處理刷翱 舸出靠用匯總表年才2004一暄期同L斜止時間科目名施上市錯龍十副事市府及土費01g01X51上再站H中心U 02BW. HS33A2瓶端電子制生】拈民.居法&#日*3主營業(yè)務住工23997 3注度 G. 33134主衛(wèi)業(yè)暫把人KJ 加D35EL SE0219S差5劉也比別t A為0Q.D40.0日口曲8其他應閔二151U03L 087其他熨.,齒吃加05CLDJULOU. (1MU Ue內(nèi)趕往生義工比一郎JaURCLdgZUCE. D1DE20. U£二.
28、出貨壕木1區(qū)0 0LQ0D.010內(nèi)耳銀行存學344Mo n英償 ciEbrni?2000 nn刊舄黨用22TC 8393D.n12卓度科5 4DOi;i回年更嚴04D52. MLJ廿GOg匏非通r2raL.tocna i14固定愛嚴脫寸古缶 SBO.DW覽理5社3MU. 015固定施產(chǎn)浩印n. J9369B5三際。OflD. 016司定煉產(chǎn)購入21ao_2®22.招二16696 S679IT理古鏟時主§ 65強A府際2002 綱0 0嗨司耳ME770 0l湖.0力引在他土15CM必1CRL4.Dar55T W4的由口 0用陸;12004-1 b 05用去揖件列結(jié)構(gòu)依賴于查
29、詢條件的報表(動態(tài)SQL)【概述】我們前邊提到過,SQL查詢的結(jié)果具有固定的列結(jié)構(gòu)和動態(tài)的行結(jié)構(gòu),前兩個模式中雖然都引入了參數(shù)來控制動態(tài)信息,但也只用于待定的篩選條件,即影響報表的行結(jié)構(gòu)。然而 有一類報表因查詢條件的不同而同時具有動態(tài)的列結(jié)構(gòu)和行結(jié)構(gòu),比如在供應鏈的一些單據(jù)查 詢報表中,如果用戶在查詢條件中勾選了聯(lián)查訂單或到貨單,那么報表會在靜態(tài)的列結(jié)構(gòu)(可能有10歹U)后面追加一些動態(tài)的列或列分組,用于顯示聯(lián)查單據(jù)的明細信息(此時報表可 能就變成了 20列:【應用場景】開發(fā)人員需要把靜態(tài)的查詢 SQL同用戶對查詢條件設(shè)置的取值結(jié)合起來,構(gòu)造出幾種不同的SQL分別對應于用戶希望看到的各種報表展
30、現(xiàn)結(jié)果。這些SQL不僅僅存在篩選條件的差異,也可能存在查詢字段、 查詢表、分組字段、排序字段的差異。由于本模式采用的技術(shù) 方案需要通過代碼片段來描述查詢SQL究竟被如何矯正,因此本模式僅建議熟悉JAA編程的報表開發(fā)人員使用?!具m用性和不適用性】適用于:第23頁耳SS嘉詢嚼5通過難以解想遍手工SQL 睛憚;5 卻,要求對動態(tài)增加出來的列結(jié)構(gòu)進行列格式設(shè)計的報表(因為這些列在設(shè)計態(tài)是未知的);麒裝生;計器間7.科司£神 長il二沅公司于行借力卻0 00C0市市行期主罰ME BC0工慟les();重醯歌S,QL設(shè)計鐳爵制機制嚼色肝可根據(jù)參數(shù)敢做 o mmQL釉的SQL SE理中的代碼此段南
31、描述。JU uwuD. UULU尚攝百4 、二:麒小常, !&詢套本定.1.國江工容金司1 II叫11口據(jù)結(jié)怖獴障法如下所送:吊0gB二:忙弗聲覺卻SflR。式??傤?QueryBaseDef,所提供方法包括:的而氟*50D. DOOO%DQW 0. Q0BimTableVO口 getFr收建油芭受托行裝 否托產(chǎn)款 聊系胃ab0受酚替司91Nil索田后卻秀R皿0H DODO芟托門禁J0王博爐支巾01艮江弟工立和用 S06&0. .0l03MH就|上理時士電01長工鞋上它期9. 75:0D. MOO主托f撥1藝1301(n長江柒1三竽口 01X0口口B口&dOD. 3JD
32、U姜瓶鄭委托付我代江豆芝巖卻B. DOW14另盼上司<31出工聚£惹即口 00C0其皿OOB秘就15!?不悔計公司QL01氏江#區(qū)金卻iso nmo$ro ooco0 rooof工程款王程分三劉員江東勤北即E COCO17陽網(wǎng)'山司01長江弟司總部Q dttiU強上國國律也量J&夫噓AIM由01也比比一£卻0 ODCOlwd. mm上班費他橫分當司長江豪卻ZBffl UURD. rjUDCl還貸2£|壬議分百at長江均雪區(qū)司50 0010o roco忖工程款I(lǐng)20CM1.Q5圖用太重件交叉類報表數(shù)據(jù)庫當中的表往往是象下面這樣存儲的:姓名月份銷
33、售業(yè)績張三12000張三月5000李四同3000李四用4000月第30頁但用戶要求的報表往往是象下面這樣的:姓名123張三2000月5姑0李四30004000類似這樣,把原始數(shù)據(jù)中一列(或幾列,通常有分組意義)數(shù)據(jù)的不同取值維持在表的左側(cè)不動(比如上表中的姓名),把另外一列(或幾列,通常有分類意義)數(shù)據(jù)的不同取值旋轉(zhuǎn) 到行的方向成為列標題(比如上表中的月份),再把另外一列(或幾列,通常有統(tǒng)計意義)數(shù)據(jù)對應匯總到旋轉(zhuǎn)出來的列標題下面(比如上表中的業(yè)績),就形成了交叉表。在上述過程中,我們根據(jù)交叉規(guī)則把原始數(shù)據(jù)中的列分成了三種,第一種稱為交叉行(其數(shù)據(jù)交叉后出現(xiàn)在行上),第二種稱為交叉列(其數(shù)據(jù)交
34、叉后出現(xiàn)在列頭上),第三種稱為交叉 值 (交叉前行、歹h值的數(shù)據(jù)出現(xiàn)在一行上,交叉后值的數(shù)據(jù)出現(xiàn)在行、列的交叉點上)。交叉報表比普通報表提出了很多新的問題, 比如:數(shù)據(jù)交叉如何實現(xiàn), 交叉后列數(shù)目的不確 定性如何處理,列的順序如何控制等等。 根據(jù)實現(xiàn)方法的不同, 以及能否預先確定交叉后的 列結(jié)構(gòu),本章節(jié)提供了以下三種交叉報表模式的解決方案。列向拼接查詢型報表(復合查詢)【概述】 報表在列向可以被劃分成幾個分組, 每組由若干個列構(gòu)成,每個列分組的數(shù)據(jù)能夠通過SQL查詢獲得,而不同列分組的數(shù)據(jù)出現(xiàn)在同一行的前提是它們對應于同一個行ID。即報表數(shù)據(jù)可以通過多個查詢結(jié)果集相互連接的方式獲得。【應用場景
35、】 開發(fā)人員需要從某個具有分類意義的列中提取若干不同的取值,將它們旋轉(zhuǎn)成為列標題,再對另外一些有統(tǒng)計意義的數(shù)值列進行匯總。用戶表樣明確規(guī)定了這些列標題及其順序,因此交叉后的列結(jié)構(gòu)是事先能夠確定的,無論這些列是否包含有效的統(tǒng)計數(shù)據(jù),它們都將在報表中存在,因此我們稱之為動態(tài)行固定列報表?!具m用性和不適用性】適用于:能夠預先確定交叉后列結(jié)構(gòu)的報表;報表的每行數(shù)據(jù)都具有一個唯一的行ID, tI D可能是某個字段或某幾個字段的組合;不適用于:動態(tài)列結(jié)構(gòu)的交叉報表;【解決方案】 利用復合查詢解決固定列結(jié)構(gòu)的交叉應用,每個交叉列對應一個查詢, 而用于連接多個查詢的行ID正是交叉行字段的組合?!鹃_發(fā)步驟】第一
36、步:分析交叉報表的結(jié)構(gòu), 找出交叉行字段、交叉列字段和交叉值字段。 假定交叉列字 段 有n個(因為是固定列結(jié)構(gòu)交叉,所以 n是定數(shù));第二步:創(chuàng)建n個查詢對象分別對應于 n個交叉列字段,通常這些對象會通過確定篩選條件與列標題掛鉤;第三步:創(chuàng)建復合查詢對象 Q4,通過增加臨時表的方式把上述n個查詢對象選為查詢表,這些臨時表的連接條件就是交叉行字段的組合,而Q4的參數(shù)應該是n個查詢對象的參數(shù)的并集,這樣才能保證 Q4的參數(shù)設(shè)置能夠分發(fā)給各個被引用查詢;第四步:創(chuàng)建格式對象F4,引用查詢對象Q4并嵌入表格,做相關(guān)的欄位、列格式和列表頭 設(shè) 計。表頭表尾可放置綁定參數(shù)的控件;第五步:瀏覽F4 (或掛功
37、能節(jié)點),設(shè)置參數(shù),檢查數(shù)據(jù)與格式是否正確;【FAQ1、定義復合查詢有什么注意事項?答:首先要保證復合查詢和各個子查詢都使用相同的執(zhí)行數(shù)據(jù)源(對于單數(shù)據(jù)源版查詢引擎無此問題),其次如果修改了子查詢的定義要保證復合查詢定義中的一致性。【范例】 部門員工民族統(tǒng)計表一一要求統(tǒng)計指定公司下各部門中不同民族的員工數(shù),民族預先指定為漢族、滿族和蒙古族,報表中包含部門編碼、 部門名稱、漢族人數(shù)、滿族人數(shù)和蒙古族人數(shù)。請注意,這里作為交叉行并可以承擔行ID角色的字段是部門信息,作為交叉列并可以承擔子查詢過濾角色的字段是民族,作為交叉值的字段是人數(shù)。部門編碼部門名稱人數(shù)漢族滿族家占族1、創(chuàng)建查詢對象,編碼為ha
38、n,名稱為漢族,在篩選條件頁簽設(shè)置確定條件 “民族=漢族 用于查詢各部門的漢族員工人數(shù);第52頁2、復制查詢對象han,修改編碼為 ma"名稱為滿族,修改確定條件為“民族 =滿族用于查詢各部門的滿族員工人數(shù);3、復制查詢對象han,修改編碼為menggu,名稱為蒙古族,修改確定條件為"民族二蒙古族用于查詢各部門的蒙古族員工人數(shù);4、創(chuàng)建查詢對象,編碼為nationalityA ,名稱為部門員工民族統(tǒng)計A,選擇表為部門檔案和上述三個查詢對象對應的臨時表,利用部門主鍵字段連接。部門檔案提供部門編碼和名稱信息,三個子查詢分別提供三個民族的員工人數(shù)。我們之所以沒有在子查詢中直接查出
39、部門編碼和名稱再在復合查詢中利用部門編碼進行連接,是因為這樣做可能導致最終數(shù)據(jù)只列出擁有漢、滿、蒙族員工的部門,而不列出全部的部門;婿告尚定義I選擇表在建篆件I郵字設(shè)端選條件排序字段t交叉屈性迪典型模式口高以理式JOIH都分01的年菱方式連董字段1匕秀花連接生段ZL部門襠窕左連按一漢族部門性篥工健邦門主健2部門者冕生線海底部門檔案壬建=部門主鍵3都門片空左連報蒙古誠部門檔宴主掛-都門主能±-#下一步確定取博5、創(chuàng)建格式對象,編碼為 nationalityA ,名稱為“部門員工民族統(tǒng)計表A;引用查詢“部門員工民族統(tǒng)計A6、進行格式設(shè)計:添加表格控件,綁定數(shù)據(jù)集部門員工民族統(tǒng)計A,進行列
40、表頭設(shè)計與合 計設(shè)置;7、瀏覽報表;列向分支統(tǒng)計型報表(CASE-WHEN【概述】 嚴格意義上來說,本模式與上一模式面向的是同一類報表,即預先能夠確定交叉后列結(jié)構(gòu)的交叉報表,或稱動態(tài)行固定列交叉表。但本模式采用了另一種解決方案一一結(jié)合SQL的分支函數(shù)和匯總函數(shù),把交叉列生成的各個列分組寫到一個查詢當中,簡化了復合查詢方案需要寫多個子查詢對象的工作,但要求交叉值為可匯總的數(shù)值型字段。 【應用場景】同上一模式?!具m用性和不適用性】適用于:能夠預先確定交叉后列結(jié)構(gòu)的報表;報表的每行數(shù)據(jù)都具有一個唯一的行ID, tId D可能是某個字段或某幾個字段的組合;不適用于:動態(tài)列結(jié)構(gòu)的交叉報表;交叉值不能用S
41、QL匯總函數(shù)統(tǒng)計的報表;【解決方案】CASE-WHENi數(shù)具有以下兩種語法:1、簡單CASE函數(shù):CASE輸入表達式WHEN取值1 THEN 返回表達式1WHEN取值2 THEN 返回表達式2ELSE返回表達式nEND2、CASE搜索函數(shù):CASEWHEN條件判斷表達式1 THEN 返回表達式1WHEN條件判斷表達式2 THEN 返回表達式2ELSE返回表達式nEND假定某張表T的數(shù)據(jù)如下所示:cornameseA公司韓千穗女A公司智銀圣男A公司金曉光女A公司土麗娜女B公司金賢成男B公司姜希燦女那么執(zhí)行以下SQL語句SELECT corp, (CASE sex WHEN '男'
42、THEN 1 ELSE 0 END) AS male,(CASE sex WHEN ' 女'THEN 1 ELSE 0 END) AS femaleFROM T將獲得如下結(jié)果集:cormalefemalA公司0eA公司10A公司01A公司01B公司10B公司01如果我們關(guān)注的是交叉統(tǒng)計結(jié)果的話,只需將上述SQL改造為SELECT corp, SUM(CASE sex WHEN ' 男'THEN 1 ELSE 0 END) AS male, SUM(CASE sex WHEN ' 女'THEN 1 ELSE 0 END) AS femaleFROM
43、 TEM_CASEGROUP BY corp則將查出以下結(jié)果:cormalefemalA公司13B公司11也就是說SUM(CASE WHEN)數(shù)能夠?qū)崿F(xiàn)交叉統(tǒng)計的效果,而且一個SQL就能達到復合查詢方案多個SQL的作用。在復合查詢方案中出現(xiàn)于各子查詢的確定篩選條件,就相當于 CASE-WHENT案中出現(xiàn)在CASE語句中的條件判斷表達式?!鹃_發(fā)步驟】 第一步:分析交叉報表的結(jié)構(gòu),找出交叉行字段、交叉列字段和交叉值字段。假定交叉行字段有m個,交叉列字段有n個(因為是固定列結(jié)構(gòu)交叉,所以 n是定數(shù));第二步:創(chuàng)建查詢對象Q5,定義 m 個字段表達式對應交叉行字段,再定義n 個帶有 SUM(CASE
44、WHEN)字段表達式對應交叉列字段,其中輸入表達式為交叉列字段,取值為預先確定的交叉列字段取值,返回表達式為交叉值字段或其統(tǒng)計表達式,ELSE分支返回0;第三步:創(chuàng)建格式對象F5,引用查詢對象Q5并嵌入表格,做相關(guān)的欄位、列格式和列表頭 設(shè) 計。表頭表尾可放置綁定參數(shù)的控件;第四步:瀏覽F5 (或掛功能節(jié)點),設(shè)置參數(shù),檢查數(shù)據(jù)與格式是否正確;【FAQ1、CASE WHENg法的條件判斷表達式能否使用非等值的表達式?答:在SQLSERVER沒有問題,在ORACLE下應利用大于等于或小于等于比較符取代大于或小于比較符。2、是否有辦法提高SUM(CASE WHEN)執(zhí)行效率? 答:可考慮在CASE
45、-WHEN選擇性高的字段上添加索引。【范例】部門員工民族統(tǒng)計表一一要求與模式完全相同。1、創(chuàng)建查詢對象,編碼為nationalityB,名稱為部門員工民族統(tǒng)計 B,請注意查詢字段表達式中三處CASE-WHEN!數(shù)的寫法:sum(case when 漢族'then 1 else 0 end)(漢族人數(shù))sum(case when 滿族then 1 else 0 end)(滿族人數(shù))sum(case when 蒙古族'then 1 else 0 end)(蒙古族人數(shù))2、創(chuàng)建格式對象,編碼為 nationalityB ,名稱為“部門員工民族統(tǒng)計表B':引用查詢“部門員工民族
46、統(tǒng)計B;3、完全類似于上一模式做格式設(shè)計:添加表格控件,綁定數(shù)據(jù)集部門員工民族統(tǒng)計B,進行列表頭設(shè)計與合計設(shè)置;4、瀏覽報表;動態(tài)行列交叉型報表(旋轉(zhuǎn)交叉)【概述】 與前兩種交叉模式不同, 本模式無法預先確定交叉后的列結(jié)構(gòu),而是根據(jù)數(shù)據(jù)完全真實地展現(xiàn)交叉結(jié)果,屬于動態(tài)行動態(tài)列應用。 這樣就存在一個設(shè)計態(tài)列格式與運行態(tài)列結(jié)構(gòu)之間的矛盾,因為設(shè)計態(tài)還沒有查詢數(shù)據(jù),不可能預知運行態(tài)到底會生成哪些列,因此作為此類模式動態(tài)體現(xiàn)交叉結(jié)果的代價,開發(fā)人員無法對交叉值字段對應的列做精確的格式設(shè)計?!緫脠鼍啊?在描述清楚交叉規(guī)則(指定交叉行、交叉列、交叉值字段)之后,報表要求全動態(tài)地實現(xiàn)數(shù)據(jù)交叉。多層列表頭常
47、用于輔助體現(xiàn)交叉的維度,且交叉規(guī)則能夠在運行態(tài)重新設(shè)定?!具m用性和不適用性】適用于:無法預先確定交叉后列結(jié)構(gòu)的報表;不適用于:對交叉值對應列有顯示順序等要求的報表;對交叉值對應列有界面統(tǒng)計功能(如小計、圖表等)預設(shè)置要求的報表;【解決方案】設(shè)計態(tài)使用查詢模型 SQL向?qū)гO(shè)計中的旋轉(zhuǎn)交叉設(shè)置功能來描述初始交叉規(guī)則,運行態(tài)使 用表格表頭右鍵菜單中的交叉功能實現(xiàn)再次交叉。交叉設(shè)置界面中的交叉祛碼的作用是,描述交叉值字段對應的列出現(xiàn)在交叉列展開后的哪個層次上。以我們前面做過的費用匯總表為例,采用以下的交叉設(shè)置:將得到以下的交叉結(jié)果:如果更改交叉設(shè)置中交叉祛碼的位置:IX建蔗轉(zhuǎn)交叉設(shè)置則將獲得以下交叉結(jié)
48、果:【開發(fā)步驟】 第一步:分析交叉報表的結(jié)構(gòu),找出交叉行字段、交叉列字段和交叉值字段;蒙三步:創(chuàng)建格式對象 F6,引用查詢對象Q6并嵌入表格;前四步:瀏覽F6 (或掛功能節(jié)點),設(shè)置參數(shù),檢查數(shù)據(jù)與格式是否正確;建FAQ#對綁定旋轉(zhuǎn)交叉數(shù)據(jù)集的表格綁定列表頭是否有效?網(wǎng):無效,系統(tǒng)將根據(jù)交叉設(shè)置自動生成列表頭。斗范例】部門員工民族統(tǒng)計表一一要求與模式完全相同。正 常 士 7E 義部門編碼部門名稱人數(shù)民族1民族2民族n1、創(chuàng)建查詢對象,編碼為nationalityC ,名稱為部門員工民族統(tǒng)計C,查詢字段中按部門、民族對人員計數(shù),旋轉(zhuǎn)交叉設(shè)置中指定部門編碼、名稱為交叉行,民族為交叉列,人數(shù) 為交叉值:潁茸詢定義2、創(chuàng)建格式對象,編碼為 nationalityC ,名稱為“部門員工民族統(tǒng)計表C引用查詢“部門員工民族統(tǒng)計C;3、進行格式設(shè)計:添加表格控件,綁定數(shù)據(jù)集部門員工民族統(tǒng)計C;4、瀏覽報表,請注意所有民族員工的人數(shù)均列示在表格中;4.投影類報表本手冊中提到的投影類報表, 就是固定行固定列的報表。 所謂投影是指其每個單元格內(nèi)部存放的內(nèi)容與該單元的坐標(行列位置)存在直接的關(guān)系。單元格依賴于行列條件的報表(投影交叉)【概述】列條件1列條件j列條件n行條件1(1,(1,(1,1)j)n)行條件i(i,(i,(i,行條件m(m, 1)(m,(m, n)本類報表具有以下特點:1、具有固定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年父母分家協(xié)議書模板
- 一年級下冊數(shù)學教案- 2024-2025學年“100以內(nèi)數(shù)的認識”青島版五四學制
- 一年級下冊數(shù)學教案-第一單元有趣的數(shù)西師大版
- 六年級下冊數(shù)學教案-1.5已知比一個數(shù)多(少)百分之幾的數(shù)是多少求這個數(shù) -青島版
- 2025年黑龍江農(nóng)業(yè)經(jīng)濟職業(yè)學院單招職業(yè)傾向性測試題庫完整
- 2025屆黑龍江佳木斯一中高三上學期五調(diào)生物試題及答案
- 2025年度工程咨詢中間人傭金支付規(guī)范合同
- 2025年度公司股份協(xié)議書:股權(quán)激勵與業(yè)績考核
- 2025年度車輛牌照租賃與汽車后市場服務合同
- 2025年度人工智能教育培訓合作協(xié)議書
- 住院患者長囑口服藥發(fā)藥流程 內(nèi)科
- 企業(yè)面試試題凝思科技quiz
- 少兒繪畫之《水粉畫葡萄》
- GB∕T 19924-2021 流動式起重機 穩(wěn)定性的確定
- ACUSONX150西門子彩色多普勒超聲系統(tǒng)
- 中國青年氣候意識與行為調(diào)研報告2020
- M701F燃氣輪機控制與保護
- 《物理化學》電子教案(上冊)(共84頁)
- berg平衡評定量表
- 一年級下學期開學家長會
- 中國控制會議論文模板英文
評論
0/150
提交評論