版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1.2.3.1.2.3.4.1.2.3.4.5.6.7.1.2.1.2.&9.SQL.SQL.3.1.2.1.2.3.4.1.2.3.4.5.6.SQL.1.2.3.4.5.6.FAQQE7.查詢引擎(,簡(jiǎn)稱QE)的功能定位是,一個(gè)面向高級(jí)實(shí)施人員和專業(yè)開發(fā)人員的查詢建模產(chǎn)品,可以全面支持復(fù)雜查詢的設(shè)計(jì)和個(gè)性化的報(bào)表展現(xiàn)。1.查詢引擎在功能流程和查詢模型方面參考了其前身產(chǎn)品“自定義查詢”的理念,在界面設(shè)計(jì)方面汲取了的思路,同時(shí)融入了的技術(shù),并依賴于通用的數(shù)據(jù)字典。()自定義查詢:于年開始研發(fā)的一個(gè)面向中級(jí)實(shí)施人員和二次開發(fā)人員的查詢報(bào)表工具,由查詢管理中心、報(bào)表格式設(shè)計(jì)、報(bào)表瀏覽、報(bào)表權(quán)限控制
2、和數(shù)據(jù)加工廠幾個(gè)模塊構(gòu)成,此工具首次提出了基于數(shù)據(jù)字典來管理數(shù)據(jù)并建立查詢對(duì)象的思路,能夠提供比較豐富的查詢分析、數(shù)據(jù)加工和報(bào)表展現(xiàn)功能。():于年開始研發(fā)的一種界面開發(fā)模式,定位于支持功能建模。()數(shù)據(jù)字典:一種管理數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)的機(jī)制,存在于物理數(shù)據(jù)庫(kù)和用戶接口之間。于年開始研發(fā)數(shù)據(jù)字典,最開始只用于自定義查詢,后來經(jīng)過功能強(qiáng)化和逐步推廣,成為現(xiàn)在的()。其功能包括數(shù)據(jù)庫(kù)對(duì)象的管理與編輯、數(shù)據(jù)字典的解析生成等。()數(shù)據(jù)倉(cāng)庫(kù):的一個(gè)獨(dú)立產(chǎn)品,能夠按照指定的入倉(cāng)規(guī)則從多個(gè)業(yè)務(wù)數(shù)據(jù)庫(kù)抽取數(shù)據(jù),并通過入倉(cāng)服務(wù)定期把數(shù)據(jù)加載到數(shù)據(jù)倉(cāng)庫(kù)。產(chǎn)品的需求背景如下所述。()復(fù)雜查詢報(bào)表的需求:在實(shí)際的業(yè)務(wù)查詢
3、中,開發(fā)人員經(jīng)常會(huì)遇到以下一些棘手的問題一一復(fù)雜的SQL,從不同的查詢條件得到完全不同的查詢結(jié)果,查詢結(jié)果的復(fù)合,業(yè)務(wù)邏輯代碼和大量數(shù)據(jù)加工算法的介入,各種各樣的數(shù)據(jù)交叉和數(shù)據(jù)處理手段等等;在展現(xiàn)格式方面,通常要求靈活、友好、可視化、個(gè)性化的設(shè)計(jì)界面,豐富的展現(xiàn)控件和統(tǒng)計(jì)圖表,依據(jù)數(shù)據(jù)對(duì)單元格、列表頭和行表頭的格式進(jìn)行設(shè)置,表單控件之間的連動(dòng)等等。這一切都對(duì)早期的查詢報(bào)表工具提出了艱巨的要求。()二次開發(fā)的需求:隨著對(duì)行業(yè)用戶的拓展,由業(yè)務(wù)組程序員在通用軟件中針對(duì)每個(gè)查詢報(bào)表需求進(jìn)行開發(fā)的方案已經(jīng)變得不太現(xiàn)實(shí),一線人員越來越頻繁的面臨來自用戶的個(gè)性化報(bào)表實(shí)施壓力。實(shí)施團(tuán)隊(duì)迫切要求一個(gè)強(qiáng)大而且易
4、用的二次開發(fā)工具,盡管功能的強(qiáng)大和易用往往存在著一些矛盾。()工具整合的需求:自定義查詢?cè)谕瞥龊?,在?shí)施中得到了一定的應(yīng)用,但局限于出復(fù)雜程度不太高的查詢報(bào)表。IUFO是公司的傳統(tǒng)報(bào)表產(chǎn)品,它更偏重于報(bào)表的管理方面,比如報(bào)表的發(fā)布、審核、校驗(yàn)等等。數(shù)據(jù)倉(cāng)庫(kù)使查詢的應(yīng)用由單數(shù)據(jù)源拓展到了多數(shù)據(jù)源,并且提供定時(shí)同步業(yè)務(wù)數(shù)據(jù)的功能。為了有效地實(shí)現(xiàn)資源共享,結(jié)合發(fā)揮各個(gè)工具的優(yōu)勢(shì),決策層一直在推動(dòng)相關(guān)產(chǎn)品的整合。()查詢分析軟件發(fā)展潮流的需求:近幾年來,查詢分析、數(shù)據(jù)挖掘、商業(yè)智能的研究不論在企業(yè)應(yīng)用還是在學(xué)術(shù)領(lǐng)域都成為熱點(diǎn),已經(jīng)成為代表產(chǎn)品水平的重要指標(biāo)。ERP軟件的數(shù)據(jù)建模和查詢建模功能2.現(xiàn)在讓
5、我們來看一個(gè)最基本的查詢樣例,作為入門,我們知道在任何司和用戶的概念,下面我們做一個(gè)查詢某公司下用戶的查詢。1.進(jìn)入客戶化自定義查詢查詢引擎管理界面ERP系統(tǒng)中都存在公2.在“查詢?cè)O(shè)計(jì)”樹下新建一個(gè)目錄,象一一用戶查詢。圖一“測(cè)試用例”,并在這個(gè)目錄下面創(chuàng)建一個(gè)查詢對(duì)圖一3.選擇參數(shù)定義,這里我們定義一個(gè)名為顯示名為“公司”的參數(shù),注意這里的數(shù)據(jù)類型選擇編碼參照,枚舉項(xiàng)中選擇這個(gè)編碼參照的類型,我們將根據(jù)這個(gè)參數(shù)選取的值來確定待選公司,并且在查詢中根據(jù)這個(gè)參數(shù)選取的值來進(jìn)行結(jié)果篩選。圖一4.制作查詢定義,制作一個(gè)查詢定義的具體流程實(shí)際上就是為了生成一條SQL語句,查詢數(shù)據(jù)源去獲取數(shù)據(jù),但是這個(gè)
6、生成SQL語句的過程被我們用圖形化界面代替了,用戶只需要了解基本的SQL規(guī)則就可以了,無需親自手動(dòng)去寫紛繁復(fù)雜的SQL語句,同時(shí)我們也支持手工SQL。圖一用戶可以通過增加表來增加數(shù)據(jù)字典中的數(shù)據(jù)表,也可以點(diǎn)擊臨時(shí)表引用前面做好的查詢定義對(duì)象,引用查詢定義對(duì)象相當(dāng)于設(shè)計(jì)了一個(gè)復(fù)合查詢,六節(jié)查詢集成。這里我們選擇增加表來增加一個(gè)的用戶信息。關(guān)于復(fù)合查詢的定義參見第二章第表,這張表里面存儲(chǔ)的是系統(tǒng)圖一在選擇字段頁簽下選擇“用戶名”等字段,這里的字段表達(dá)式可以是某表的字段,也可以是字段的運(yùn)算或者函數(shù)處理表達(dá)式,例如:,就是代表這個(gè)字段的字符串長(zhǎng)度。顯示名可以是用戶自定義的字符串,將來顯示在報(bào)表的列表頭
7、區(qū)域。圖一前面我們提到這個(gè)查詢必須按照公司為條件,過濾查詢出來的用戶,實(shí)際上就是為SQL語句生成一個(gè)條件,我們支持兩種條件,固定和待定,顧名思義固定條件寫好之后就不能變化,而待定條件是跟參數(shù)設(shè)置相關(guān)的,可以根據(jù)用戶輸入?yún)?shù)變化。我們?cè)谶@里選取待定條件,用戶表的公司編碼字段等于前面我們?cè)O(shè)置過的節(jié)將有更詳細(xì)的論述,這里只介紹最基本的功能。5.制作格式設(shè)計(jì)。關(guān)于查詢定義的設(shè)計(jì)后面的章圖一新建格式設(shè)計(jì)文件夾以及對(duì)象的方式與新建查詢對(duì)象的方法一樣,這里略去不講。生成新的格式設(shè)計(jì)對(duì)象之后可點(diǎn)菜單中的界面模型“用戶查詢”。引用查詢,來綁定我們剛才做好的查詢?cè)O(shè)計(jì)對(duì)象選取剛才做好的查詢之后我們?cè)邳c(diǎn)擊界面模型圖一
8、格式設(shè)計(jì),這里可以選取我們預(yù)置的幾種界面模型之一,例如這張表我們選取表頭+表體格式。圖一最后點(diǎn)菜單中的瀏覽,讓我們?yōu)g覽一下制作出的第一張報(bào)表,圖一點(diǎn)瀏覽之后我們會(huì)看到一個(gè)選擇參數(shù)的對(duì)話框,在這個(gè)參數(shù)對(duì)話框中我們可以設(shè)置自己的參數(shù)值,比如我們選取這個(gè)公司,點(diǎn)確定,則可以瀏覽這個(gè)公司下的所有用戶,如下圖。?傳:?傳:圖一選擇表頭區(qū)域的公司參照,我們可以瀏覽不同公司下的用戶。已經(jīng)制作完畢,我們可以將做好的查詢作為獨(dú)立節(jié)點(diǎn)發(fā)布到3.至此一個(gè)最簡(jiǎn)單的自定義查詢系統(tǒng)下供用戶使用。在本章中我們介紹了查詢引擎的發(fā)展歷史以及產(chǎn)品的需求背景,通過一個(gè)入門樣例,讓用戶初步了解了查詢引擎的基本功能,在后面的章節(jié)中我們
9、將詳細(xì)介紹查詢引擎的各項(xiàng)功能,并通過一些樣例使得用戶能夠使用本產(chǎn)品進(jìn)行快速便捷的二次開發(fā)。F圖是對(duì)查詢引擎開發(fā)流程的一個(gè)示意:創(chuàng)建創(chuàng)建十發(fā)布查詢格式圖一查詢建模體系報(bào)表1.查詢引擎的管理調(diào)度功能由主界面完成,主界面左側(cè)為一棵對(duì)象樹,樹上掛有代表查詢對(duì)象和界面對(duì)象的節(jié)點(diǎn),右側(cè)為顯示當(dāng)前選中對(duì)象基本屬性的屬性框。圖二管理調(diào)度主界面對(duì)象樹():對(duì)象樹是一個(gè)支持層次管理的數(shù)據(jù)結(jié)構(gòu),它維護(hù)自身的加載、存儲(chǔ)和節(jié)點(diǎn)的目錄管理,每個(gè)節(jié)點(diǎn)的信息主體存儲(chǔ)在數(shù)據(jù)庫(kù)的一個(gè)BLOB字段中。對(duì)象樹上的節(jié)點(diǎn)通常分為目錄()和對(duì)象兩類,并支持快速定位(在樹獲得焦點(diǎn)時(shí)用。屬性框():一個(gè)自動(dòng)顯示對(duì)象的屬性和取值的控件,取值部分
10、會(huì)根據(jù)屬性的數(shù)據(jù)類型采用不同的渲染器來展示,不同的編輯器來編輯。目錄的編輯操作如下:()增加/刪除/修改:在根節(jié)點(diǎn)或目錄節(jié)點(diǎn)之下可以增加目錄,刪除目錄時(shí)會(huì)刪除目錄下的所有對(duì)象。目錄的可修改屬性為目錄名稱。同一目錄下的目錄和對(duì)象不能重名。()復(fù)制/剪切/粘貼:在查詢子樹或格式子樹下,移動(dòng)到另一個(gè)位置。對(duì)象分為查詢對(duì)象和格式對(duì)象,其編輯操作如下:可以將一個(gè)目錄及其下屬內(nèi)容從某位置拷貝或()增加/刪除/修改:在根節(jié)點(diǎn)或目錄節(jié)點(diǎn)之下可以增加查詢對(duì)象或者界面對(duì)象。前者的屬性為編碼、名稱和數(shù)據(jù)源,后者的屬性為編碼和名稱,其中編碼一經(jīng)使用,就不再建議作任何修改,因?yàn)榇司幋a可能被其它對(duì)象引用。請(qǐng)注意對(duì)象的唯一
11、標(biāo)識(shí)是編碼而不是顯示名稱,一個(gè)查詢對(duì)象或是格式設(shè)計(jì)對(duì)象可以有多個(gè)顯示名稱但是只能有唯一的編碼。()復(fù)制/剪切/粘貼:在查詢或格式子樹下,可以將一個(gè)對(duì)象從某位置拷貝或移動(dòng)到另一個(gè)位置。請(qǐng)注意這里的復(fù)制粘貼都是在同一棵樹下的,如果復(fù)制格式設(shè)計(jì)對(duì)象到查詢對(duì)象樹下則會(huì)出錯(cuò)。()導(dǎo)出:選中某個(gè)對(duì)象,可將其導(dǎo)出為文件,文件里描述了對(duì)象的所有信息;也可選中某個(gè)目錄,將該目錄下所有的子目錄和對(duì)象都導(dǎo)出到指定位置(保持原有的目錄級(jí)次)。()導(dǎo)入:在選中某個(gè)目錄之后,導(dǎo)入功能可用。導(dǎo)出的文件,可以導(dǎo)入到當(dāng)前目錄下。此功能可用于對(duì)象的跨數(shù)據(jù)庫(kù)復(fù)制。導(dǎo)入時(shí),我們可以選擇單個(gè)文件,也可以選擇一組文件或目錄,導(dǎo)入后會(huì)保留
12、原目錄的級(jí)次結(jié)構(gòu)。需要注意的是:在導(dǎo)出查詢對(duì)象或界面對(duì)象時(shí),需將其引用的導(dǎo)入不能違反對(duì)象主鍵及名稱的唯一性約束。文件。查詢對(duì)象一并導(dǎo)出才有意義;下圖顯示了某查詢對(duì)象所導(dǎo)出的C:=!C:entEandStirissVyESi細(xì)信包.1BM/c.si.aTIEB,BEE/Mm._25”,1/c.sex,H,J/siscassnaasassBB/圖二導(dǎo)岀文件)在導(dǎo)入導(dǎo)出的過程中需要注意的一個(gè)問題是數(shù)據(jù)源的問題,在實(shí)際應(yīng)用中經(jīng)常出現(xiàn)這樣的場(chǎng)景:實(shí)施人員在自己的環(huán)境(數(shù)據(jù)源為)下做了一對(duì)查詢模型設(shè)計(jì)和格式設(shè)計(jì),然后導(dǎo)出這一對(duì)設(shè)計(jì)對(duì)象為文件,然后到用戶的環(huán)境(數(shù)據(jù)源為)下執(zhí)行導(dǎo)入,發(fā)現(xiàn)無法查出數(shù)據(jù),并且提
13、示“找不到查詢所用數(shù)據(jù)源”,這是因?yàn)閷?dǎo)出成文件的時(shí)候,記錄在文件中的執(zhí)行數(shù)據(jù)源是,而客戶的數(shù)據(jù)源名稱是,與查詢模型設(shè)計(jì)中的數(shù)據(jù)源不符合,這樣查詢模型就無法到正確的數(shù)據(jù)源下去取數(shù),可以在彈出的提示框“是否修改執(zhí)行數(shù)據(jù)源為當(dāng)前數(shù)據(jù)源”,選擇“是”,則該查詢?cè)O(shè)計(jì)模型的數(shù)據(jù)源被修改為當(dāng)前賬套的數(shù)據(jù)源,這樣就可以在客戶的數(shù)據(jù)源中正確取數(shù)了。2.查詢引擎的數(shù)據(jù)源關(guān)系如下圖所示:圖二查詢引擎數(shù)據(jù)源關(guān)系模型圖多數(shù)據(jù)源運(yùn)作機(jī)制:查詢引擎支持這樣的模式一一業(yè)務(wù)在數(shù)據(jù)源下運(yùn)行,查詢引擎的定義放在數(shù)據(jù)源B,通過引擎定義的查詢可以到數(shù)據(jù)源注:只有數(shù)據(jù)倉(cāng)庫(kù)下的查詢引擎有切換定義數(shù)據(jù)源和跨庫(kù)查詢的功能,只能查詢當(dāng)前賬套數(shù)據(jù)
14、源的數(shù)據(jù)。C去執(zhí)行。客戶化下的查詢引擎圖二切換定義數(shù)據(jù)源各種數(shù)據(jù)源的概念區(qū)分:業(yè)務(wù)數(shù)據(jù)源(上面說的)通常指當(dāng)前登錄賬套的數(shù)據(jù)源,是運(yùn)行所需要的業(yè)務(wù)數(shù)據(jù)源。定義數(shù)據(jù)源(上面說的B)是指查詢引擎自身的系統(tǒng)表所在的數(shù)據(jù)源,執(zhí)行切換功能后,主界面上的對(duì)象樹的內(nèi)容會(huì)作相應(yīng)改變。請(qǐng)注意查詢引擎自身的系統(tǒng)表可以和當(dāng)前的業(yè)務(wù)數(shù)據(jù)源不是同一個(gè)數(shù)據(jù)源,例如當(dāng)前登陸賬套是,數(shù)據(jù)源是,而查詢引擎的系統(tǒng)表可以不在該數(shù)據(jù)源下,而在另一個(gè)數(shù)據(jù)源下,可能是賬套的數(shù)據(jù)源,也可能是任何其他的數(shù)據(jù)源。但是前提是該數(shù)據(jù)源中必須含有查詢引擎自身的系統(tǒng)表。ITTSMWinperiodendperiodcorp7subj圖三參數(shù)引用圖三參
15、數(shù)設(shè)置替換型參數(shù):是指參數(shù)名以開頭并以結(jié)尾的參數(shù),多用于手工SQL設(shè)計(jì)中,也可用于向?qū)QL的非待定條件部分。這種參數(shù)通常相當(dāng)于中的占位符,關(guān)于替換型參數(shù),后面的章節(jié)中還有詳細(xì)介紹。在設(shè)置替換型參數(shù)的時(shí)候,不輸入值將不被認(rèn)為是忽略此參數(shù)對(duì)應(yīng)的條件。2.SQLSQL設(shè)計(jì)包括向?qū)гO(shè)計(jì)方式和手工設(shè)計(jì)方式,無論采用哪種,在完成設(shè)計(jì)時(shí)系統(tǒng)均會(huì)對(duì)SQL進(jìn)行合法性校驗(yàn),如未通過校驗(yàn)則不能保存設(shè)計(jì)。作為向?qū)гO(shè)計(jì)的一個(gè)重要組成環(huán)節(jié),我們有必要先介紹一下數(shù)據(jù)字典。前面已經(jīng)提到過,查詢對(duì)象的屬性中包含數(shù)據(jù)源信息,因此在設(shè)計(jì)查詢的時(shí)候需要加載相應(yīng)數(shù)據(jù)源的數(shù)據(jù)字典。我們知道,的數(shù)據(jù)庫(kù)以作為數(shù)據(jù)字典,但非的數(shù)據(jù)庫(kù)則沒有,
16、此時(shí),系統(tǒng)會(huì)根據(jù)執(zhí)行數(shù)據(jù)源是、IUFO或其它數(shù)據(jù)庫(kù)三種情況分別加載不同的數(shù)據(jù)字典,而且這一機(jī)制已經(jīng)預(yù)留了擴(kuò)展的接口,其目的就是可以面向各種類型的數(shù)據(jù)庫(kù)執(zhí)行取數(shù)功能。數(shù)據(jù)字典提供了統(tǒng)一的數(shù)據(jù)建模平臺(tái),支持對(duì)各種數(shù)據(jù)庫(kù)對(duì)象進(jìn)行管理,維護(hù)這些物理對(duì)象的邏輯屬性,并向外系統(tǒng)提供訪問數(shù)據(jù)庫(kù)邏輯信息的接口。以查詢引擎為例,查詢對(duì)象的定義是基于數(shù)據(jù)字典進(jìn)行的,而這份數(shù)據(jù)字典來自查詢對(duì)象所指定的數(shù)據(jù)源。由于多數(shù)報(bào)表的列與業(yè)務(wù)數(shù)據(jù)庫(kù)的字段存在某種對(duì)應(yīng)關(guān)系,直觀性和易用性。因此數(shù)據(jù)字典的存在有助于提高查詢定義的萱找増加確定圖三數(shù)據(jù)字典取消數(shù)據(jù)字典通常在安裝產(chǎn)品時(shí)候由系統(tǒng)生成,如果想自己為某些數(shù)據(jù)庫(kù)對(duì)象生成字典,可
17、以采用數(shù)據(jù)字典管理界面提供的導(dǎo)入方法。導(dǎo)入方式包括三種(詳細(xì)操作可參見數(shù)據(jù)字典導(dǎo)入說明):、解析文件(格式);、解析標(biāo)準(zhǔn)建庫(kù)腳本;、提取數(shù)據(jù)庫(kù)元數(shù)據(jù);如果需要給非數(shù)據(jù)庫(kù)(比如用戶采用的第三方數(shù)據(jù)庫(kù))生成數(shù)據(jù)字典,可以利用提供的逆向工程功能將庫(kù)里的物理表生成文件,修改其中表和字段的中文名稱,然后以文件格式存儲(chǔ),再使用上述第一種方法導(dǎo)入。查詢引擎中用到的數(shù)據(jù)字典都以一棵對(duì)象樹的形式存在,樹節(jié)點(diǎn)包括目錄、表、視圖、字段、外鍵等信息,通過雙擊對(duì)象節(jié)點(diǎn)可以協(xié)助錄入SQL語句的成分。向?qū)гO(shè)計(jì)參考典型SQL的構(gòu)成規(guī)則,充分利用數(shù)據(jù)字典的功能,引導(dǎo)用戶一步步完成SQL的設(shè)計(jì),因此是推薦使用的方式。它由以下六個(gè)
18、環(huán)節(jié)構(gòu)成,其中最后一步“交叉屬性”超出了SQL的涵義,我們?cè)诤竺娴膶iT章節(jié)中進(jìn)行介紹。()表定義:即SQL語句中的部分,可以利用數(shù)據(jù)字典選擇庫(kù)里的數(shù)據(jù)表,也可以選擇查詢對(duì)象,從而實(shí)現(xiàn)查詢的集成(基于查詢結(jié)果定義新的查詢)。圖三表定義IBPMBhiBhrBeBBBro圖三增加表(物理表)與臨時(shí)表)連接定義:即SQL語句中的部分(表間連接關(guān)系),支持典型模式和高級(jí)模式,典型模式實(shí)際就是關(guān)系數(shù)據(jù)庫(kù)中的單鍵連接,連接字段只有一個(gè),并且操作符都是常見的而高級(jí)模式可以自由設(shè)置連接表達(dá)式,支持多鍵連接。圖三連接定義典型模式圖三連接定義高級(jí)模式,請(qǐng)字段定義:即SQL語句中的部分,可以定義任何SQLSERVER
19、語法支持,請(qǐng)的查詢表達(dá)式,但要保證字段別名不重復(fù)且使用規(guī)范名稱(以字母開頭、由字母、數(shù)字、下劃線組成的字符串,且不能使用SQL保留字)。如果使用了聚集函數(shù),則由系統(tǒng)自動(dòng)完成部分。中增添了這樣的功能,可以在查詢字段中添加的公式,但是這些公式需要特定的格式,例如取得前臺(tái)數(shù)據(jù)庫(kù)緩存中某表的一個(gè)或多個(gè)字段,可以使用注意單引號(hào)和大括號(hào)是必須的。這里的處理機(jī)制是先將上述公式作為一個(gè)字符串,在查出結(jié)果集之后再把公式翻譯執(zhí)行。所以這里的公式是基于最終結(jié)果集的。12346bd_corp.unitnamegl_voucher.periodgl_voucher.prp3reddalebd_accsubi.subjn
20、amegl_dtail.expisnationgl_detailocaldetiitmountgLdEtail0calcreditamountunitnameperiodprapareddatesubjnameexplanlionlocaldebihm.localereditam.1圖三字段定義圖三表達(dá)式生成器篩選條件定義:即SQL語句中的部分,可定義確定條件和待定條件。如果是待定條件,在值編輯框獲得焦點(diǎn)時(shí)雙擊編輯框可彈出參數(shù)界面并作引用者在值編輯框獲得焦點(diǎn)時(shí)按件,在值編輯框獲得焦點(diǎn)時(shí)按F12鍵或者雙擊彈出參數(shù)引用框);如果是固定條F11鍵或者雙擊可彈出環(huán)境變量引用框,按F12鍵可彈出所引用的
21、基礎(chǔ)數(shù)據(jù)表的參照。對(duì)于在查詢字段里使用了聚集函數(shù)的SQL設(shè)計(jì),篩選條件可能需要使用子句。頁簽?zāi)J(rèn)是隱藏的,可以在查詢定義框的南部面板按鼠標(biāo)左鍵彈出隱藏的頁簽。L0102=0=丘回45n三inperiodFendperiod圖三篩選條件定義(典型模式參見圖)排序字段定義:即SQL語句中的部分。圖三排序字段定義()向?qū)гO(shè)計(jì)完成后在查詢定義框的南部面板鼠標(biāo)雙擊可彈出向?qū)傻牡刃Вùl件全用(仁代替)。該功能可以用來檢查SQL語句是否有錯(cuò)。實(shí)際上,每次做完查詢?cè)O(shè)計(jì)之后點(diǎn)擊確定時(shí),我們都會(huì)試執(zhí)行一下您的SQL語句,但是SQL并不查出數(shù)據(jù)來,如果您的查詢?cè)O(shè)計(jì)最終生成的相應(yīng)的出錯(cuò)提示。SQL語句有問題,
22、那么就會(huì)有$eiectbd_corp.uniinamegl_youthenperiodasunltname,period,gl_voucher.prepareddateasprepareddate,bd_accsutisubjnameassubjname,5i_deta11.expi-anationenuianatlon.gl_detailocNlciEbitamciuntaslocaldebitamouni,gl_detail.localcreditamountasIacaIcreditamountframgivoucherinnerjoinbdcorpongij*oucher.pk_c:a
23、rp=bd_corp.pk_cor|)innerjamgl_detailiongl_voucher.pk_VDucher=gl_detail.pk_voucherinnsrCD圖三由查詢?cè)O(shè)計(jì)生成的SQL語句)數(shù)據(jù)交叉屬性:交叉是一種常用的多維數(shù)據(jù)分析手段,詳見后文。手工設(shè)計(jì)是支持自由SQL的方式,由于復(fù)雜SQL在解析、適配、執(zhí)行等方面的不穩(wěn)定性較大,因此不推薦普通用戶使用。手工設(shè)計(jì)分為以下兩個(gè)環(huán)節(jié):SQL錄入:用戶可以在數(shù)據(jù)字典的輔助下錄入SQL語句,要求遵循SQLSERVER語法。如圖,注意,我們?cè)赟QL定義里用到了一個(gè)替換型參數(shù)(),這里替換型參數(shù)也必須在前面參數(shù)定義中定義,于替換型參數(shù)的
24、具體說明參見附錄);并且參數(shù)名要以開頭并且以圖三SQL錄入SQL翻譯:實(shí)際上最終到數(shù)據(jù)庫(kù)中執(zhí)行的SQL語句都是經(jīng)過翻譯的,系統(tǒng)有專門的SQL翻譯器對(duì)各種SQL方言進(jìn)行翻譯,在手工設(shè)計(jì)中可以選擇是否啟用翻譯器這個(gè)功能,通常建議啟用。圖三SQL錄入字段顯示名設(shè)置:系統(tǒng)通過對(duì)用戶錄入SQL的解析獲得字段信息,并向用戶提供輸入字段顯示名的機(jī)會(huì),顯示名的默認(rèn)值與查詢字段的物理名相同。圖三字段顯示名設(shè)置3.什么叫做數(shù)據(jù)交叉?在怎樣的場(chǎng)景下需要用到數(shù)據(jù)交叉?讓我們來看兩個(gè)應(yīng)用場(chǎng)景:.我們從數(shù)據(jù)庫(kù)的原始數(shù)據(jù)表中經(jīng)過連接得到這樣一個(gè)結(jié)果集,該表共有三行三列,現(xiàn)在我們想得到部門的員工民族統(tǒng)計(jì)表,圖三F圖是我們想要
25、得到的最終結(jié)果:圖三我們知道這樣的查詢實(shí)際上是不能通過SQL語句來實(shí)現(xiàn)的,因?yàn)橥ㄟ^SQL語句查詢出來的列中不可能存在像漢族,滿族,蒙古族這樣的列,這些數(shù)值是原始數(shù)據(jù)庫(kù)表中某列中的值。但是這個(gè)功能我們可以通過投影交叉來實(shí)現(xiàn)。.還是剛才那個(gè)例子,我們現(xiàn)在想要得到的結(jié)果需要按照民族列中的民族數(shù)動(dòng)態(tài)擴(kuò)展,也就是說,不能只有漢族,滿族,蒙古族這些固定好的值,如果添加了一筆數(shù)據(jù),民族的值為苗族,我們最終的報(bào)表能夠動(dòng)態(tài)的呈現(xiàn)出這樣的變化,理想中的結(jié)果如下圖所示:圖三實(shí)際上這樣的例子可以用旋轉(zhuǎn)交叉來實(shí)現(xiàn)。下面我們要分別介紹這兩種交叉功能。投影交叉第一類交叉:假定有一個(gè)查詢SQL,其查詢結(jié)果是單行單列的匯總值,
26、另外還有兩組WHERE條件的序列,分別為橫向序列(、)和縱向序列(、),則數(shù)據(jù)矩陣(a)對(duì)應(yīng)的結(jié)果集成為投影交叉,如果a是和同時(shí)作用在上述SQL上獲得的結(jié)果。數(shù)據(jù)模型如圖所示:SELECT圖三投影交叉數(shù)據(jù)模型比如,查詢某公司下各部門各民族的人數(shù),原始SQL(由查詢向?qū)傻牡刃QL)為:asasas=?查出的結(jié)果如下表所示:現(xiàn)在我們把查詢字段中只保留人數(shù)設(shè)置:圖三原始數(shù)據(jù)(無交叉)項(xiàng),然后進(jìn)行如下的投影交叉圖三圖三投影交叉設(shè)置則交叉后的結(jié)果如下表所示:圖三投影交叉結(jié)果通過投影交叉,我們可以完成純粹的SQL語句無法完成的功能一一把行中的數(shù)值放置在列頭,但是,這類交叉也有不足之處,例如,我們新增
27、了一筆數(shù)據(jù),這筆數(shù)據(jù)中人員的民族屬性是苗族,由于我們?cè)诮徊娑x中列頭沒有苗族,所以如果我們想要增加一列,則必須修改原先的查詢定義,如果增加的數(shù)據(jù)非常多,那么我們需要重新修改的列頭將會(huì)變的紛繁復(fù)雜,大大降低了效率,如果能夠動(dòng)態(tài)擴(kuò)展列,不必再去修改原始的查詢定義,這樣會(huì)給我們帶來極大的方便。旋轉(zhuǎn)交叉為我們提供了這樣的功能。旋轉(zhuǎn)交叉第二類交叉:此類交叉用于顯示表中某幾個(gè)字段(稱為交叉值字段)的統(tǒng)計(jì)值,并將其分組放臵在查詢結(jié)果中,一組列在數(shù)據(jù)表的左側(cè)(稱為交叉行字段),一組列(稱為交叉列字段)旋轉(zhuǎn)到數(shù)據(jù)表的上部成為列表頭,統(tǒng)計(jì)值則放在對(duì)應(yīng)的交叉單元。旋轉(zhuǎn)交叉數(shù)據(jù)模型圖如圖所示:BCCcl圖三旋轉(zhuǎn)交叉數(shù)
28、據(jù)模型圖兩類交叉的最大差別在于:第一類交叉屬于查詢行為,適用于行列設(shè)置都已在表樣中固定的報(bào)表,其交叉結(jié)果嚴(yán)格遵循表樣格式,其行列結(jié)構(gòu)不會(huì)受查詢數(shù)據(jù)的影響;第二類交叉屬于數(shù)據(jù)加工行為,其交叉后的行列結(jié)構(gòu)在查詢出數(shù)據(jù)之前不可預(yù)料,始數(shù)據(jù)進(jìn)行動(dòng)態(tài)處理。沿用使用的例子,假定我們進(jìn)行如下的旋轉(zhuǎn)交叉設(shè)置:多用于完全真實(shí)地對(duì)原圖三旋轉(zhuǎn)交叉設(shè)置這里交叉砝碼的意思是指交叉值列在旋轉(zhuǎn)后的位置。則交叉后的結(jié)果如下表所示:0105ERPERPEEFERFEFPERPJKSapERPHF?11aa圖三旋轉(zhuǎn)交叉結(jié)果在旋轉(zhuǎn)交叉設(shè)臵界面上單擊行,列,值標(biāo)簽(在圖中用藍(lán)色框標(biāo)示的位臵),可彈出交叉行列復(fù)合維度設(shè)臵和是否小計(jì)的設(shè)
29、臵框。圖三交叉設(shè)置圖三交叉復(fù)合維度設(shè)置圖三是否小計(jì)設(shè)置復(fù)合維度:設(shè)置復(fù)合維度是為了減少冗余數(shù)據(jù)的出現(xiàn),舉例說明如下圖是沒有設(shè)置復(fù)合圖三沒有設(shè)置復(fù)合維度維度的交叉結(jié)果,我們把交叉行和交叉列中的每一項(xiàng)當(dāng)作一個(gè)數(shù)據(jù)維度,則該原始表就存在三個(gè)維度,分別是部門編碼、部門名稱和民族,然后我們把處于交叉值的人數(shù)列中的數(shù)據(jù)影”到這個(gè)三維的數(shù)據(jù)空間中。如圖三“投圖三這樣,即使原始表中不存在部門名稱為ERP事業(yè)部,部門編碼為的記錄,在交叉過后也會(huì)出現(xiàn)多余的一條記錄,如表中紅框所示,如果在交叉行上設(shè)置復(fù)合維度,實(shí)際上就等于把部門編碼和部門名稱合起來形成了一個(gè)維度,如錯(cuò)誤!未找到引用源。ERP事業(yè)部ERP產(chǎn)品市場(chǎng)部漢
30、滿蒙苗圖三設(shè)置復(fù)合維度后的數(shù)據(jù)空間ERFSERFERFERFERFERPEPRfttS-HR312307304HRHR5014Saa11SOS圖三設(shè)置復(fù)合維度后的交叉結(jié)果交叉值合計(jì):在點(diǎn)擊交叉設(shè)置中的“值”字樣,可以彈出如圖交叉值進(jìn)行合計(jì),如是設(shè)置過合計(jì)的結(jié)果:三的對(duì)話框,在這里可以設(shè)置是否對(duì)圖三旋轉(zhuǎn)交叉結(jié)果(設(shè)置了合計(jì))關(guān)于旋轉(zhuǎn)交叉的更細(xì)節(jié)的內(nèi)容,請(qǐng)參考附錄的交叉表使用樣例。4.SQLSQL整理(SQLSQL查詢之前,對(duì)SQL所作的調(diào)整。通常會(huì)根據(jù)參數(shù)的不同,對(duì)查詢的表、字段或條件等信息進(jìn)行增補(bǔ)或修改。SQL整理的具體內(nèi)容由內(nèi)嵌的代碼片段描述代碼的錄入可通過編碼向?qū)f(xié)助完成,(這與后面將介紹
31、的數(shù)據(jù)加工和穿透規(guī)則一樣)盡管如此,這幾種功能仍然推薦由高級(jí)實(shí)施人員或程序員使用。在SQL整理中把新的查詢基本定義設(shè)置為整理成果的方法是:圖三SQL整理代碼在圖示的SQL整理代碼中,表達(dá)了這樣一個(gè)整理愿望:當(dāng)參數(shù)的取值等于“明細(xì)”時(shí),取出所有定義的查詢字段表達(dá)式,并且去除匯總函數(shù),然后增加一個(gè)分錄摘要字段,并且設(shè)置分組列為空,實(shí)際上這里不僅僅能夠修改查詢字段及其表達(dá)式,更可以增加或者刪除查詢所引用的表,連接條件,排序分組字段,甚至可以手工寫一個(gè)查詢定義,并且把手寫的查詢定義設(shè)置為主查詢定義。請(qǐng)注意如果在這里替換了查詢定義,則原先在向?qū)е谢蛘咴谑止QL設(shè)計(jì)中的查詢定義就不再生效。以下簡(jiǎn)單介紹幾
32、種SQL整理算法的編碼向?qū)褂梅椒?()追加查詢表:參數(shù)為待追加的表物理名。圖三追加表向?qū)ё芳舆B接條件:與追加表同時(shí)使用,參數(shù)為連接模式、追加表物理名和追加的表間連接條件。圖三追加連接條件向?qū)?追加查詢字段:與追加表同時(shí)使用,參數(shù)為追加字段的表達(dá)式、顯示名和別名。圖三追加字段向?qū)?按參數(shù)追加條件:根據(jù)參數(shù)取值的不同追加不同的篩選條件,參數(shù)為參數(shù)名和篩選字段。圖三按參數(shù)追加條件向?qū)Р樵兘Y(jié)果集():由二維數(shù)據(jù)集合(數(shù)據(jù)體)及其列信息(元數(shù)據(jù),包括列名、列數(shù)據(jù)類型等信息)構(gòu)成的一個(gè)數(shù)據(jù)載體。數(shù)據(jù)加工():數(shù)據(jù)加工是指某個(gè)(或某幾個(gè))結(jié)果集在經(jīng)過一系列加工算法的變換后得到另一個(gè)結(jié)果集,而后者通常是業(yè)務(wù)
33、上要求的展現(xiàn)結(jié)果。相關(guān)的算法又稱為加工濾鏡,濾鏡通常支持輸入多個(gè)結(jié)果集和輸出一個(gè)結(jié)果集,并可以嵌套使用。數(shù)據(jù)加工與SQL整理的區(qū)別在于:前者在SQL查詢之后進(jìn)行,作用的對(duì)象是結(jié)果集;后者在查詢之前進(jìn)行,作用的對(duì)象是SQL定義。在數(shù)據(jù)加工中把新的數(shù)據(jù)集設(shè)置為加工成果的方法是:在數(shù)據(jù)加工的編碼向?qū)е?,提供了多種實(shí)用加工濾鏡。圖示的數(shù)據(jù)加工代碼把“”和“”的兩個(gè)結(jié)果集按照字段為鍵進(jìn)行了左外連接,中保留了”、“”、“”三列。分別為并在連接結(jié)果圖三數(shù)據(jù)加工代碼以下簡(jiǎn)單介紹幾種數(shù)據(jù)加工算法的編碼向?qū)褂梅椒ǎ?)由查詢獲得結(jié)果集:根據(jù)查詢和參數(shù)變量獲得查詢結(jié)果集,這里的參數(shù)變量是指需要傳給目標(biāo)查詢的參數(shù)哈
34、希表,默認(rèn)可以是當(dāng)前查詢的參數(shù)哈希表,見圖,不需修改。這里版本號(hào)的意思是使用查詢引擎的哪種版本,默認(rèn)是單數(shù)據(jù)源版本,這樣取數(shù)據(jù)加工數(shù)據(jù)源實(shí)際上就是用戶在查詢引擎環(huán)境變量設(shè)置中設(shè)置的數(shù)據(jù)加工默認(rèn)數(shù)據(jù)源,也可以選擇數(shù)據(jù)源和數(shù)據(jù)源,這兩種數(shù)據(jù)源屬于查詢引擎高級(jí)版本應(yīng)用。圖三獲得結(jié)果集向?qū)?公式設(shè)置:參數(shù)為公式列名、返回值數(shù)據(jù)類型和公式,如果公式列名不存在則新增一列,否則將該列的內(nèi)容更新為公式返回值。一個(gè)公式也可以引用另一個(gè)公式列的計(jì)算結(jié)果。圖三公式編輯圖三公式定義結(jié)果集連接:指定兩個(gè)結(jié)果集的連接字段、連接方式和連接后的保留字段,得到連接后的結(jié)果集。圖三結(jié)果集連接向?qū)?結(jié)果集聯(lián)合:指定兩個(gè)列結(jié)構(gòu)相兼容
35、的結(jié)果集,得到聯(lián)合()后的結(jié)果。圖三結(jié)果集聯(lián)合向?qū)Ю碚撋仙辖Y(jié)果集加工算法是無窮盡的,并且這些算法可以組合而成為一道或者多道工序,這里僅僅列舉幾種簡(jiǎn)單常用的算法,更多更復(fù)雜的算法需要讀者在實(shí)際應(yīng)用開發(fā)中按照不同情況和場(chǎng)景靈活使用。數(shù)據(jù)穿透:假定報(bào)表R1上存在某個(gè)區(qū)域,內(nèi)部有若干業(yè)務(wù)數(shù)據(jù),如果以為出發(fā)點(diǎn)能夠切換到另一張報(bào)表R2的上的區(qū)域,而且和的內(nèi)部數(shù)據(jù)存在著某種內(nèi)在聯(lián)系,則稱可以從R1穿透到R2。當(dāng)這種穿透行為傳遞下去,我們就可以了解某張報(bào)表的數(shù)據(jù)明細(xì),甚至追溯到它的數(shù)據(jù)來源。通常我們會(huì)把上述的區(qū)域選為一個(gè)表格行或者一個(gè)表單元,而上述的內(nèi)在聯(lián)系就稱為穿透規(guī)則。一個(gè)查詢上可以定義多個(gè)穿透規(guī)則,每個(gè)
36、規(guī)則需要指定穿透的目標(biāo)查詢,同時(shí)目標(biāo)查詢上要?jiǎng)?chuàng)建一個(gè)過濾參數(shù),用于接收穿透區(qū)域的取值。如我們現(xiàn)在定義了兩個(gè)查詢:公司部門和部門人員,如圖。我們希望在瀏覽公司部門的時(shí)候選中某個(gè)部門能穿透到部門人員查詢查看這個(gè)部門下的所有員工。公司部門的查詢列和部門人員的查詢參數(shù)之間建立一個(gè)關(guān)聯(lián)關(guān)系。部門編碼()列;在部門人員查詢里加入一個(gè)查詢參數(shù)部門編碼(這首先需要我們?cè)谶@里我們選擇公司部門的,源查詢列和目標(biāo)查詢參數(shù)名字不一定要相同,但是含義要一致)為過濾條件。下面來看一個(gè)簡(jiǎn)單的穿透用例,假定我們做好了一個(gè)查詢定義,并在查詢定義里引用該參數(shù)作是根據(jù)公司查詢?cè)摴鞠碌挠脩?,另外我們還有一個(gè)查詢,是查詢某公司,現(xiàn)在
37、的我們想要得到這樣一種效果,即在瀏覽公司報(bào)表的時(shí)候想動(dòng)態(tài)的知道公司下所有用戶的信息,戶查詢?nèi)?。可以這樣定義穿透規(guī)則:也就是說根據(jù)選中的公司穿透到用圖三公司查詢圖三用戶查詢的參數(shù)定義Cwlhera=圖三參數(shù)引用圖三用戶查詢的結(jié)果定義公司部門的穿透規(guī)則,選擇查詢模型穿透規(guī)則圖三穿透規(guī)則設(shè)置點(diǎn)擊編輯按鈕進(jìn)入穿透規(guī)則代碼向?qū)Вx擇查詢間穿透向?qū)?,設(shè)置如下圖三穿透規(guī)則代碼向?qū)?shù)提示穿透字段參數(shù)值公彳査雪中的字靈目標(biāo)查詢參數(shù)名戶查詢圖三穿透規(guī)則代碼確定取消圖三穿透規(guī)則定義向?qū)聢D顯示了一個(gè)由人員信息穿透到薪資信息再穿透到同姓員工工資信息,最后穿透到每月明細(xì)的用例,其中第一步穿透是單列等值穿透(相當(dāng)于“人
38、員=李滌非”),第二步是非等值穿透(相當(dāng)于“姓名李”),第三步是多列聯(lián)合穿透(相當(dāng)于“人員=李屏年份=。查詢結(jié)果預(yù)覽(共燈行g(shù)列)Q001002QG030004Q005,|查詢結(jié)果預(yù)覽(共燈行g(shù)列)000100Q1001000103G45C63275.100000003275100000003260.100000003275100000009S3.74000000100E.880000001006.500000001009.500000002281.36002263.22002273.60002265.6000圖三穿透效果示意隨著產(chǎn)品的推廣使用,不少程序員和實(shí)施人員開始利用查詢引擎開發(fā)報(bào)表并發(fā)
39、布為功能節(jié)點(diǎn),從QE報(bào)表穿透到業(yè)務(wù)節(jié)點(diǎn)的需求應(yīng)運(yùn)而生。很多業(yè)務(wù)希望根據(jù)報(bào)表追溯來源數(shù)據(jù),比如從報(bào)表聯(lián)查訂單,從財(cái)務(wù)報(bào)表聯(lián)查憑證,從種需求的典型應(yīng)用。HR報(bào)表聯(lián)查卡片等等,都可以作為這界面關(guān)聯(lián)操作方案為上述需求提供了平臺(tái)級(jí)的技術(shù)依據(jù)。通過把查詢引擎報(bào)表作為調(diào)用方節(jié)點(diǎn),業(yè)務(wù)節(jié)點(diǎn)作為被調(diào)用方節(jié)點(diǎn),擴(kuò)充穿透規(guī)則機(jī)制和組織傳遞參數(shù)結(jié)構(gòu),就能夠支持基于功能節(jié)點(diǎn)的關(guān)聯(lián)查詢。原先已開發(fā)好的功能節(jié)點(diǎn)只需實(shí)現(xiàn)聯(lián)查接口即可應(yīng)用此功能。查詢引擎版本支持從查詢穿透到節(jié)點(diǎn)的功能,繼續(xù)讓我們來看前面提到的查詢公司下用戶的樣例。在圖三穿透規(guī)則設(shè)置中增加一個(gè)穿透規(guī)則:圖三穿透到節(jié)點(diǎn)規(guī)則設(shè)置在目標(biāo)節(jié)點(diǎn)參照中,可以選擇穿透的目的節(jié)
40、點(diǎn),目的節(jié)點(diǎn)是已注冊(cè)到系統(tǒng)的可執(zhí)行功能節(jié)點(diǎn),特別的,該節(jié)點(diǎn)如果實(shí)現(xiàn)了特定的查詢接口,則可以根據(jù)當(dāng)前選中行中的某字段的值執(zhí)行特定的查詢功能,對(duì)于一般節(jié)點(diǎn),穿透僅僅是打開該節(jié)點(diǎn),與用戶雙擊打開一樣。具體操作可參見附錄。5.在建立好查詢模型之后,系統(tǒng)提供預(yù)覽查詢執(zhí)行結(jié)果的功能。用戶首先輸入執(zhí)行查詢所需要的參數(shù)取值(如果有參數(shù)的話),查詢引擎會(huì)根據(jù)該查詢對(duì)象的數(shù)據(jù)源去對(duì)應(yīng)的數(shù)據(jù)庫(kù)執(zhí)行查詢,在經(jīng)過查詢結(jié)果集評(píng)估(對(duì)于查詢記錄數(shù)過大的情況允許用戶優(yōu)化或放棄查詢)把結(jié)果集展現(xiàn)給用戶。在展現(xiàn)之后,用戶可以繼續(xù)進(jìn)行穿透、交叉等工作。之后,圖三查詢預(yù)覽請(qǐng)注意版本提供了查詢優(yōu)化的設(shè)置,例如用戶如果執(zhí)行了一個(gè)數(shù)據(jù)量非
41、常大的查詢,這個(gè)查詢本身耗費(fèi)了相當(dāng)長(zhǎng)的時(shí)間,但是用戶只是想瀏覽一下該報(bào)表的大致情況,并不想查看每條數(shù)據(jù),我們?cè)谑走x項(xiàng)定義中可以配置只查詢有限行數(shù)返回給用戶,如下圖所示,用戶可以選擇是否評(píng)估結(jié)果集,因?yàn)樵u(píng)估結(jié)果集要執(zhí)行一條的語句,如果行數(shù)過多這條語句可能會(huì)耗時(shí)非常多,用戶可以根據(jù)自己的需要選擇是否評(píng)估,同時(shí)可以設(shè)置警戒行數(shù),超過警戒行數(shù)的查詢只顯示警戒行數(shù)以內(nèi)的數(shù)據(jù)。消息中柱查詢引擎管理直詢引攣環(huán)境設(shè)置刷新保存F匸査詢引擎數(shù)據(jù)查詢?cè)O(shè)置L湄設(shè)萱查詢?cè)O(shè)這物化臨吋表刷新設(shè)置:提示是否刷新7具J數(shù)據(jù)游設(shè)置注冊(cè)任務(wù)生瓦查詢結(jié)果集警戒行數(shù):查詢?yōu)g覽是否評(píng)估結(jié)果集:為不限制行數(shù)是否顯示格式設(shè)計(jì)預(yù)置對(duì)話框圖三查
42、詢引擎環(huán)境設(shè)置查詢預(yù)覽界面支持將數(shù)據(jù)導(dǎo)出為文本文件,并可進(jìn)而用EXCEL打開。后面會(huì)提到,當(dāng)查詢定義與格式定義綁定之后可以從格式界面導(dǎo)出EXCEL,報(bào)表獨(dú)立節(jié)點(diǎn)也支持導(dǎo)出EXCEL。隨著產(chǎn)品的發(fā)展,數(shù)據(jù)導(dǎo)出的格式會(huì)逐步豐富。6.復(fù)合查詢,顧名思義就是基于已定義的查詢繼續(xù)做查詢,從這個(gè)角度來說,那些已有查詢和數(shù)據(jù)庫(kù)里的物理表的地位和角色是一樣的。復(fù)合查詢常應(yīng)用于這樣的場(chǎng)景:報(bào)表在列向可以被劃分成幾個(gè)分組,每組由若干個(gè)列構(gòu)成,每個(gè)列分組的數(shù)據(jù)能夠通過SQL查詢獲得,而不同列分組的數(shù)據(jù)出現(xiàn)在同一行的前提是它們對(duì)應(yīng)于同一個(gè)行(該通常是某個(gè)字段或某幾個(gè)字段的組合)。即報(bào)表數(shù)據(jù)可以通過多個(gè)查詢結(jié)果集相互連
43、接的方式獲得。復(fù)合查詢的參數(shù)設(shè)置能夠傳遞到它所引用的子查詢的參數(shù),同參數(shù)名的參數(shù)將共享傳入的參數(shù)值。所以,通常復(fù)合查詢的參數(shù)會(huì)包含它所引用的所有子查詢的參數(shù)的并集。查詢引擎可以根據(jù)預(yù)覽數(shù)據(jù)直接到數(shù)據(jù)庫(kù)創(chuàng)建物化表,同時(shí)將物化表的結(jié)構(gòu)注冊(cè)到數(shù)據(jù)字典(物化表會(huì)注冊(cè)到的物化臨時(shí)表目錄下)中,以后的SQL設(shè)計(jì)就可以基于新創(chuàng)建的物化表進(jìn)行,從而擴(kuò)充了查詢集成的范圍。選擇是否在執(zhí)行時(shí)提示同步刷新物化臨時(shí)表,引用了物化表的查詢,用戶可以在首選項(xiàng)配置中如果選擇了提示刷新,則會(huì)按當(dāng)前的參數(shù)設(shè)置傳遞給產(chǎn)生物化表的查詢,重新執(zhí)行得到結(jié)果并更新物化表,再在此基礎(chǔ)上執(zhí)行當(dāng)前查詢;如果未選擇刷新,則直接基于物化表里的已有數(shù)
44、據(jù)執(zhí)行查詢。由一個(gè)查詢生成物化表,該表會(huì)創(chuàng)建到查詢定義所在的數(shù)據(jù)源(如果是數(shù)據(jù)倉(cāng)庫(kù)下,可通過切換定義數(shù)據(jù)源查看當(dāng)前所在數(shù)據(jù)源),而不是查詢?nèi)?shù)數(shù)據(jù)源(就是選中查詢后在右邊屬性列表里的數(shù)據(jù)源)。如果是客戶化下的查詢引擎,這兩者是一致的,因?yàn)榭蛻艋碌牟樵円嬷恢С謫螖?shù)據(jù)源,就是當(dāng)前登錄賬套所在數(shù)據(jù)源。圖三創(chuàng)建物化表圖三在定義查詢時(shí)引用創(chuàng)建的物化表物化臨時(shí)表實(shí)際上就是一張數(shù)據(jù)庫(kù)中的物理表,一旦用戶的業(yè)務(wù)數(shù)據(jù)發(fā)生了改變,那么刷新物化臨時(shí)表是一件非常耗時(shí)的操作,如果用戶的查詢中使用了過多的物化臨時(shí)表并且選擇了每次刷新,那么效率就會(huì)降低,所以請(qǐng)慎重使用這種功能。只有在查詢數(shù)據(jù)并非經(jīng)常變化,而且查詢引用關(guān)
45、系比較復(fù)雜的情況下物化臨時(shí)表才能發(fā)揮其最大用途。有這樣一類固定行列結(jié)構(gòu)表樣,在表的不同區(qū)域有不同的數(shù)據(jù)塊(這些塊之間甚至可能沒有什么聯(lián)系),另外一些區(qū)域還放著一些人為性很強(qiáng)的提示性文字(可能根本無法從數(shù)據(jù)庫(kù)中查出來),象這樣的無規(guī)律報(bào)表其實(shí)是報(bào)表開發(fā)中很難處理。合并查詢方案是對(duì)解決這類報(bào)表所做的一個(gè)嘗試,它支持開發(fā)者把利用其它方式定義的查詢嵌入到表體的某個(gè)區(qū)域,以把那些無法查出的文字直接錄入到需要的位置。合并查詢通常適用于以下兩類報(bào)表:()獨(dú)立查詢數(shù)據(jù)與獨(dú)立錄入數(shù)據(jù)相結(jié)合的報(bào)表;()由共用一組參數(shù)的多個(gè)查詢嵌入構(gòu)成報(bào)表;()其設(shè)計(jì)效果如下圖所示:也可圖三合并查詢?cè)O(shè)計(jì)示意但總體來說,基于單元取數(shù)
46、公式的EXCEL風(fēng)格報(bào)表更適合用IUFO產(chǎn)品進(jìn)行開發(fā)。7.數(shù)據(jù)權(quán)限的行權(quán)限一般是通過參照型參數(shù)來控制的。當(dāng)基本檔案數(shù)據(jù)權(quán)限開關(guān)打開的時(shí)候,公司用戶在參數(shù)設(shè)置時(shí)點(diǎn)開的參照記錄是經(jīng)過了權(quán)限控制的,因此他也就無法查詢?cè)摰卿浻脩羲哂袡?quán)限之外的數(shù)據(jù)(比如他可訪問的部門集合之外的部門相關(guān)數(shù)據(jù))。上述策略通常是結(jié)合SQL設(shè)計(jì)中待定篩選條件以及必輸標(biāo)志數(shù)據(jù)前線控制標(biāo)志一起使用的。以下內(nèi)置的系統(tǒng)參量(也可以說是一種無須聲明的替換型參數(shù))也常用來控制行權(quán)限。這些參量在查詢執(zhí)行時(shí)會(huì)被自動(dòng)替換成為相應(yīng)的環(huán)境變量取值。.登錄帳套編碼-.登錄公司主鍵-.登錄用戶主鍵-.登錄日期一一數(shù)據(jù)權(quán)限的列權(quán)限控制比較復(fù)雜,一般可以
47、考慮通過SQL整理或者掛接報(bào)表模板的方式來解決。前者把不同登錄用戶能夠查詢不同數(shù)據(jù)列的邏輯寫在代碼腳本里,配機(jī)制來實(shí)現(xiàn)不同用戶瀏覽不同列結(jié)構(gòu)報(bào)表的效果。后者則通過模板分格式模型(又稱界面模型)節(jié)點(diǎn)的新建和管理參見第二章。我們可以設(shè)計(jì)新的界面模型,也可以對(duì)已有的界面模型進(jìn)行修改。模型的設(shè)計(jì)包括引用查詢,界面可視化設(shè)計(jì),綁定數(shù)據(jù)集,數(shù)據(jù)預(yù)處理等部分??蚣苋缦滤荆翰樵児瓋羞B動(dòng)規(guī)則(主從)數(shù)據(jù)預(yù)處理飄面模型設(shè)計(jì)態(tài)圖四圭基于數(shù)據(jù)集的數(shù)據(jù)牡理基于表格的數(shù)掲處理畀面模型運(yùn)行瀏賢)態(tài)圖四模型設(shè)計(jì)態(tài)和運(yùn)行態(tài)的基本流程如下圖所示(設(shè)計(jì)態(tài)的操作并沒有嚴(yán)格意義上的順序限制)圖四界面模型流程1.引用查詢是指將界面模型
48、所要展現(xiàn)的查詢結(jié)果集對(duì)應(yīng)的查詢定義引用到模型中來。由于同一查詢定義根據(jù)不同參數(shù)設(shè)置也可以得到不同結(jié)果集,所以為了區(qū)分這種綁定基于同一查詢定義的不同結(jié)果集時(shí),我們對(duì)每一個(gè)查詢結(jié)果集起一個(gè)單一的別名來標(biāo)志。圖四查詢引用界面對(duì)于數(shù)據(jù)集之間存在的某種一對(duì)多的關(guān)系,我們還可以根據(jù)需要建立主從關(guān)系(即主子表)查詢引擎支持兩個(gè)數(shù)據(jù)集之間按照多列關(guān)聯(lián)建立主從關(guān)系。圖四主子連接設(shè)置界面2.界面模型的格式設(shè)計(jì)包括了控件拖放,編輯控件屬性及數(shù)據(jù)綁定屬性,定義列格式,列表頭,行表頭等行列格式以及數(shù)據(jù)預(yù)處理等幾部分。分別介紹如下。SfltlEftJa3301|(11_第條L靜跳到|d?JrtJS-圖四儀表圖列表,下拉框
49、、文本框,標(biāo)簽,參照等簡(jiǎn)單控件提供了綁定到多種內(nèi)容的屬性。其中,列表和下拉框可以綁定到查詢結(jié)果集中某列(導(dǎo)航或枚舉),綁定查詢結(jié)果集對(duì)應(yīng)的參數(shù)(即查詢參數(shù));文本框可以綁定查詢參數(shù)和環(huán)境變量;參照控件可以綁定查詢參數(shù)。下面是設(shè)置一個(gè)文本框綁定到查詢參數(shù)的截圖。圖四綁定查詢參數(shù)的文本框?qū)嵤┰趹?yīng)用的過程中經(jīng)常會(huì)出現(xiàn)這樣的問題,已經(jīng)在查詢?cè)O(shè)計(jì)中定義過了某參數(shù),但是在格式設(shè)計(jì)中對(duì)某控件綁定該參數(shù)時(shí)發(fā)現(xiàn)查詢參數(shù)下拉框中沒有該參數(shù),這往往是因?yàn)閰?shù)類型不匹配導(dǎo)致,或者該控件的綁定類型不對(duì)。我們通過下面這張表來列舉各種控件的綁定類型,以及當(dāng)綁定類型選擇為查詢參數(shù)時(shí)的情況。文本框查詢列,查詢參數(shù),環(huán)境變量字符
50、型,數(shù)值型字符枚舉,數(shù)值枚舉下拉式列表框列表參照文本域?qū)Ш浇壎?,枚舉綁定列,查詢參數(shù)導(dǎo)航綁定列,枚舉綁定列,查詢參數(shù)查詢參數(shù)查詢列,查詢參數(shù),環(huán)境變量表格四字符枚舉,數(shù)值枚舉字符枚舉,數(shù)值枚舉所有參照類型字符型,數(shù)值型字符枚舉,數(shù)值枚舉這里導(dǎo)航綁定列是指將綁定列的數(shù)據(jù)列舉出來,當(dāng)你點(diǎn)選其中一條數(shù)據(jù)的時(shí)候,據(jù)集的表格或者圖表也能夠跟隨你選中的那一條數(shù)據(jù)把焦點(diǎn)定為到自己的該數(shù)據(jù)行上。口口口同時(shí)綁定該數(shù)圖四枚舉綁定列則將該列的數(shù)據(jù)枚舉出來,點(diǎn)選枚舉的值時(shí),會(huì)自動(dòng)過濾表格中的數(shù)據(jù)。(注意重復(fù)的值不會(huì)出現(xiàn)兩次,是為枚舉)然后根據(jù)iBEJSBT圖四行列格式設(shè)計(jì)包括列格式定義,列表頭定義和行表頭定義三部分
51、,分別說明如下。列格式定義圖四列格式定義界面我們可以定義四種類型的列格式:字符型,數(shù)值型,貨幣型,百分比型,后三種實(shí)際上都屬于數(shù)值型數(shù)據(jù)的不同展現(xiàn)。格式定義包括對(duì)齊方式,文本顏色,前導(dǎo)符號(hào)等等。對(duì)于數(shù)值型的列格式還可以設(shè)置保留小數(shù)位數(shù),是否加千分位等格式。這些格式非常容易理解,實(shí)施人員可以自行設(shè)置,然后在樣本數(shù)據(jù)框中輸入樣本數(shù)據(jù),點(diǎn)擊預(yù)覽觀察設(shè)置后的效果。列格式的一個(gè)比較重要的設(shè)置就是設(shè)置預(yù)警顯示,預(yù)警顯示就是將符合指定條件的數(shù)據(jù)按指定顏色來顯示。如銷售額這樣的數(shù)據(jù)通過分段預(yù)警就很容易體現(xiàn)出高中低來,方便瀏覽數(shù)據(jù)。圖中所示預(yù)警設(shè)置就是將小于的數(shù)用藍(lán)色顯示,到之間的數(shù)用黃色顯示,大于的數(shù)用紅色顯
52、示。預(yù)警條件中除支持用常量表達(dá)式進(jìn)行比較之外,也支持用含變量的表達(dá)式進(jìn)行比較,其中的變量名必須是表中某列的列名。如表中有,B,C三列,要求某行中列中的值大于B列和C列的值之和時(shí)該行列按某種指定顏色顯示,我們可以給列綁定列格式,在列格式的預(yù)警設(shè)置中設(shè)置預(yù)警條件為的列名,不是列顯示名,參見圖。注:這里的,B,C都是指圖四預(yù)警設(shè)置界面列表頭定義圖四表頭設(shè)計(jì)界面有時(shí)候?yàn)榱朔奖銡w類和分組列數(shù)據(jù),我們需要定義多表頭來加強(qiáng)展現(xiàn)。如圖,我們可以根據(jù)自己的需要定義一個(gè)多表頭用來展現(xiàn),表頭格式存在數(shù)據(jù)庫(kù)中,并有一個(gè)表頭在這里,可以很方便的組合表中列,定義好的與之對(duì)應(yīng)。通過表頭該列表頭格式可以被表綁定(綁定了列表頭
53、的表效果參見圖)。小技巧:定義對(duì)應(yīng)某一查詢的列表頭展現(xiàn)時(shí),我們可以通過參照,選中該查詢來快速引入該查詢定義的列,而不用手工錄入。這里經(jīng)常碰到的一個(gè)問題是,為什么我們定義了一種列格式,參照不出來這種列格式呢?在表格控件的屬性設(shè)置中,卻這通常是因?yàn)樵O(shè)置定義列格式的時(shí)候,列格式樹中葉子節(jié)點(diǎn)的數(shù)目必須與表格控件中綁定結(jié)果集的列數(shù)目一致,否則無法參照出來,這在業(yè)務(wù)上是合理的,試想要給一個(gè)表格控件戴列表頭,實(shí)際上就是改變?cè)瓉淼牧酗@示方式,但是我們并沒有真實(shí)的增加或者減少表格中的列,所以,設(shè)計(jì)的列表頭就必須與原來綁定數(shù)據(jù)集中的列數(shù)保持一致。表格列發(fā)生錯(cuò)位。行表頭定義否則列表頭就會(huì)與真實(shí)的如果設(shè)置表的綁定數(shù)據(jù)
54、集屬性到一個(gè)定義了第一類交叉現(xiàn)與查詢中定義的列和行相對(duì)應(yīng)的列頭和行頭。圖所示。(投影交叉)的查詢,那么表中會(huì)出默認(rèn)的列頭和行頭沒有任何附加的格式,如圖四綁定到第一類交叉查詢定義的表就像可以給列分組定義列表頭一樣,我們也可以給行分組定義行表頭。如圖所示,類似于列表頭的定義,我們也可以合并行,還可以定義行號(hào)顯示與否,行號(hào)顯示的位置,甚至可以為定義好的表頭綁定列表頭。保存后我們可以看到界面上的表已經(jīng)顯示了新定義的行表頭格式。圖四行表頭設(shè)計(jì)界面圖四定義了行表頭格式的表(承圖)界面模型中支持兩種數(shù)據(jù)預(yù)定義的處理:定義公式列和定義小計(jì)合計(jì)。其中,公式列定義是基于查詢結(jié)果集的,定義的公式列對(duì)于所有綁定該查詢
55、結(jié)果集的控件都是可見的。是基于表控件的,定義的小計(jì)合計(jì)只對(duì)該表起作用,不影響其他綁定到相同數(shù)據(jù)集的控件。公式列點(diǎn)擊數(shù)據(jù)處理菜單下的公式列菜單項(xiàng),就會(huì)彈出如圖所示的公式列定義界面。小計(jì)合計(jì)圖四公式列定義界面在查詢結(jié)果集下拉框中選中要定義公式列的數(shù)據(jù)集,如果是添加公式列,則數(shù)據(jù)集中可選的列名會(huì)出現(xiàn)在可選列列表中(如果是預(yù)定義的公式列,則可選列是數(shù)據(jù)集的原始列,如果是運(yùn)行態(tài)定義的公式列,可選列還包括已經(jīng)定義的公式列),雙擊列項(xiàng)可將該列添加到公式表達(dá)式中,公式列中可用函數(shù)和操作符也已列出,均是通過雙擊可以添加到表達(dá)式中。添加公式列需要指定公式列名和公式類型,也可以給公式列指定列格式。公式列表達(dá)式只支持
56、字符,不支持中文,如果表達(dá)式有誤,則運(yùn)行態(tài)下公式列內(nèi)各行的值均為空。如果是刪除公式列,列表中列出了當(dāng)前數(shù)據(jù)集已定義的公式列,式列類似。選中即可刪除。修改公式列界面與添加公小計(jì)合計(jì)設(shè)計(jì)界面模型時(shí)在表控件的表頭上彈出右鍵菜單,點(diǎn)擊小計(jì)合計(jì)菜單項(xiàng)可彈出設(shè)置小計(jì)合計(jì)的界面,如圖。其中,根據(jù)表綁定的查詢定義的不同,界面會(huì)稍有區(qū)別,分別說明如下。普通表:1.2.可以設(shè)置根據(jù)什么列分組,進(jìn)行小計(jì)合計(jì),以及分組列的升降序;可以設(shè)置小計(jì)合計(jì)計(jì)算與否,以及小計(jì)行和合計(jì)行標(biāo)志展現(xiàn);這里的展現(xiàn)格式可以自行定義,我們默認(rèn)使用的格式是圖中所示,表小計(jì)的級(jí)次和同一分組的分組值,計(jì)行的展現(xiàn)標(biāo)志格式;和實(shí)際上都是變量,分別代用
57、戶也可以不使用這種格式,從而自行定義小計(jì)合3.4.可以設(shè)置需要小計(jì)合計(jì)的列,以及統(tǒng)計(jì)運(yùn)算的類型,目前數(shù)值型的列支持的運(yùn)算類型有求和、最大值、最小值、平均值,以及公式;字符型的列支持承前;可以設(shè)置統(tǒng)計(jì)數(shù)據(jù)放置在原始數(shù)據(jù)之前還是放置在后。圖四小計(jì)合計(jì)設(shè)置2JU0?1WHZI4呂LlfJtUJ.UTKHJIIW=1j*ZW405EZW4052ffi4-Ce-OGffiWt?000.000.00A145;0002145;0002WJ33:4.CO440220(M-(E-095.00時(shí)G,OZffiK-Oe-LDD.DOKD.DO2ffiM-O-lDD.DO0io.mooA釐KSWi-K-16l.OOT
58、.OO1DO21)(M-Ot-201DO2KM-0.003.DO3DQ4-(E-213.DO2ffiH-OLHMD12ffiH-OLHMD12.65.505J5010SW-OL-072004-01-10DLOOD.N22.00L9030石01D.DO30石2OM-OL-5.000.00502EDOi-Oe-M0.0011.00M3KM-0M7023KM-0M72Z.00D.DOS.KKB.OOD.DOD.DO712j0.00D.DOT142D04-OL-31tD.DO0.00334.50425?L6.1*2.23*Wit嗣匕335.V、費(fèi)用明鮮圖四運(yùn)行效果如上圖所示即是經(jīng)過小計(jì)合計(jì)運(yùn)算的最終結(jié)
59、果,我們?cè)O(shè)置了按照公司名稱和科目名稱進(jìn)行分組計(jì)算小計(jì),這樣我們實(shí)際上就得到兩個(gè)級(jí)次的小計(jì)結(jié)果,圖中的小計(jì)行已經(jīng)按照預(yù)先定義好的展現(xiàn)格式展現(xiàn)出來,計(jì)算合計(jì)的時(shí)候,合計(jì)、最大值、最小值、平均值都非常通俗易懂,都是對(duì)本列進(jìn)行計(jì)算,需要注意的是公式,這里的公式如果引用到別的列,所引用列當(dāng)前行的值。例如下面的表格,漢族占比列的合計(jì)應(yīng)該設(shè)置為族,公式就會(huì)計(jì)算,否則就變成了,達(dá)不到用戶的合計(jì)要求。則進(jìn)行計(jì)算的是漢族/漢族+滿第一類交叉表(投影交叉表):定義了第一類交叉的查詢結(jié)果集行列結(jié)構(gòu)是固定的,多用在固定格式的報(bào)表中,因此,其小計(jì)合計(jì)也設(shè)計(jì)得稍有區(qū)別:在這種情況下,小計(jì)合計(jì)是根據(jù)表的行頭來進(jìn)行的,它根據(jù)表
60、行頭所示的樹狀結(jié)構(gòu)中樹節(jié)點(diǎn)的級(jí)次來小計(jì)合計(jì),所以,對(duì)于這類表,我們?cè)O(shè)置的是小計(jì)開始級(jí)次和終止級(jí)次,而不是分組列。圖四圖四如上圖我們按照樹節(jié)點(diǎn)的一級(jí)來進(jìn)行小計(jì),則得到的結(jié)果如下:人數(shù)HRHR圖四小計(jì)合計(jì)設(shè)置界面這里的小計(jì)是針對(duì)一級(jí)樹節(jié)點(diǎn)直屬部門,開發(fā)部門來進(jìn)行分組的。同一個(gè)樹節(jié)點(diǎn)下的子節(jié)點(diǎn)參與小計(jì)運(yùn)算。第二類交叉表:旋轉(zhuǎn)交叉表因?yàn)樾D(zhuǎn)交叉表的列結(jié)構(gòu)是動(dòng)態(tài)的,也就是說,本來預(yù)先設(shè)置好的小計(jì)統(tǒng)計(jì)列,進(jìn)行旋轉(zhuǎn)交叉之后,那么原來的列被分成了很多新的列,小計(jì)合計(jì)怎樣計(jì)算呢?這個(gè)問題在得到了解決,用戶只要在預(yù)定義小計(jì)合計(jì)的時(shí)候選擇了該列,那么經(jīng)過旋轉(zhuǎn)過后的交叉列中,與原先列相關(guān)的新列,都會(huì)執(zhí)行原來列上的小計(jì)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)上編程協(xié)議書
- 醫(yī)療風(fēng)險(xiǎn)合同范本
- 聘任電工協(xié)議書
- 商場(chǎng)標(biāo)識(shí)合同范本
- 欠款工資協(xié)議書
- 肉店供貨協(xié)議書
- 咨詢式委托協(xié)議書
- 簽訂補(bǔ)償協(xié)議書
- 模具押金協(xié)議書
- 簽訂定向協(xié)議書
- 15《我們不亂扔》課件 2025-2026學(xué)年道德與法治一年級(jí)上冊(cè)統(tǒng)編版
- ISO15614-1 2017 金屬材料焊接工藝規(guī)程及評(píng)定(中文版)
- 營(yíng)口水土保持規(guī)劃
- 魯迅《故鄉(xiāng)》優(yōu)秀PPT課件.ppt
- 魯迅《雪》ppt課件
- 管道(溝槽)開挖支護(hù)方案
- 瑞士法國(guó)和俄羅斯的著名風(fēng)機(jī)制造廠生產(chǎn)情況
- 自制飲品制作流程圖(共1頁)
- F1300-1600鉆井泵使用說明書1
- 二分法查找數(shù)據(jù)說課
- 前列腺癌臨床路徑
評(píng)論
0/150
提交評(píng)論