本發(fā)明涉及云計(jì)算領(lǐng)域,具體來(lái)說(shuō),涉及一種報(bào)表的生成方法和生成裝置。
背景技術(shù):在云計(jì)算系統(tǒng)的開(kāi)發(fā)中,面臨多種要管理的業(yè)務(wù)數(shù)據(jù),包括:審計(jì)數(shù)據(jù)、記賬數(shù)據(jù)、計(jì)費(fèi)數(shù)據(jù)、告警數(shù)據(jù)、監(jiān)控?cái)?shù)據(jù)等,也要面臨多種要管理的業(yè)務(wù)對(duì)象,包括:Hypervisor、虛擬機(jī)、共享存儲(chǔ)、網(wǎng)絡(luò)等。按照面向?qū)ο蟮拈_(kāi)發(fā)原則,系統(tǒng)對(duì)每種業(yè)務(wù)對(duì)象分別進(jìn)行處理,每種業(yè)務(wù)對(duì)象具有自身的業(yè)務(wù)邏輯和數(shù)據(jù),而在系統(tǒng)底層,為了提供良好的擴(kuò)展性和靈活性,需要屏蔽多種業(yè)務(wù)的差異性,進(jìn)行統(tǒng)一存儲(chǔ)并提供統(tǒng)一存取接口;因此,系統(tǒng)需要抽取業(yè)務(wù)對(duì)象的共同特征,將各種業(yè)務(wù)對(duì)象統(tǒng)一定義為資源,資源具有相同的存儲(chǔ)結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)和接口。然而這樣就存在了一個(gè)問(wèn)題:系統(tǒng)上層業(yè)務(wù)只關(guān)心業(yè)務(wù)對(duì)象自身及操作,不熟悉底層資源的結(jié)構(gòu),而底層資源不關(guān)心上層業(yè)務(wù)究竟有哪些業(yè)務(wù)對(duì)象和操作,使得在需要生成相關(guān)業(yè)務(wù)數(shù)據(jù)報(bào)表時(shí),沒(méi)辦法調(diào)取相關(guān)數(shù)據(jù)生成報(bào)表。針對(duì)于上述問(wèn)題,人們想到了一種方法來(lái)解決此現(xiàn)象,該方法為:先通過(guò)人為的了解底層資源的數(shù)據(jù)結(jié)構(gòu)和接口,再在業(yè)務(wù)層直接調(diào)用資源管理接口,獲取相關(guān)數(shù)據(jù),然后再將數(shù)據(jù)發(fā)送到后臺(tái)生成報(bào)表。這種方法雖然解決了獲取數(shù)據(jù)的問(wèn)題,但是,由于底層資源的數(shù)據(jù)結(jié)構(gòu)往往比較復(fù)雜,業(yè)務(wù)層的開(kāi)發(fā)人員需要花費(fèi)一定的時(shí)間進(jìn)行掌握。而且,由于業(yè)務(wù)層業(yè)務(wù)對(duì)象自身的特點(diǎn),有時(shí)可能需要生成新的業(yè)務(wù)報(bào)表類(lèi)型,已有業(yè)務(wù)對(duì)象屬性也可能發(fā)生更改,這又不得不重新更改底層資源的數(shù)據(jù)結(jié)構(gòu)和接口,進(jìn)行一系列的測(cè)試,然后再按上述方法獲取數(shù)據(jù)生成新的報(bào)表。這就造成了在需要生成報(bào)表時(shí),報(bào)表生成相當(dāng)復(fù)雜和繁瑣,獲取一個(gè)業(yè)務(wù)數(shù)據(jù)報(bào)表往往需要很長(zhǎng)的時(shí)間以及大量的投入,不能夠簡(jiǎn)單、方便且靈活的生成報(bào)表。針對(duì)相關(guān)技術(shù)中報(bào)表生成不夠靈活方便的問(wèn)題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:針對(duì)相關(guān)技術(shù)中報(bào)表生成不夠靈活方便的問(wèn)題,本發(fā)明提出一種報(bào)表的生成方法和生成裝置,能夠簡(jiǎn)單、方便且靈活的生成報(bào)表。本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:根據(jù)本發(fā)明的一個(gè)方面,提供了一種報(bào)表的生成方法。該生成方法包括:根據(jù)系統(tǒng)所期望生成的報(bào)表,生成報(bào)表模板對(duì)象,報(bào)表模板對(duì)象的共同屬性與底層資源中的共有參數(shù)對(duì)應(yīng),報(bào)表模板對(duì)象的特有屬性與底層資源中的特有參數(shù)對(duì)應(yīng);根據(jù)報(bào)表模板對(duì)象的共有屬性和特有屬性,獲取底層資源中與報(bào)表模板對(duì)象的報(bào)表對(duì)象對(duì)應(yīng)的參數(shù);將參數(shù)添加到報(bào)表對(duì)象中,并根據(jù)添加參數(shù)后的報(bào)表模板對(duì)象生成報(bào)表。其中,在根據(jù)系統(tǒng)期望生成的報(bào)表生成報(bào)表模板對(duì)象時(shí):可根據(jù)系統(tǒng)期望生成的報(bào)表,向系統(tǒng)發(fā)送報(bào)表生成請(qǐng)求;并根據(jù)報(bào)表生成請(qǐng)求,調(diào)取外部類(lèi)庫(kù)中對(duì)應(yīng)的類(lèi)生成報(bào)表模板對(duì)象,其中,報(bào)表生成請(qǐng)求包括以下信息中的至少之一:報(bào)表模板對(duì)象格式要求、報(bào)表模板對(duì)象名稱(chēng)、報(bào)表模板對(duì)象的描述信息、報(bào)表模板對(duì)象的各報(bào)表對(duì)象名稱(chēng)。此外,該生成方法還包括:預(yù)先對(duì)報(bào)表模板對(duì)象的共有屬性、以及底層資源中的共有參數(shù)進(jìn)行轉(zhuǎn)換,促使轉(zhuǎn)換后的共有屬性與轉(zhuǎn)換后的底層資源中的共有參數(shù)對(duì)應(yīng)。另外,該生成方法還包括:預(yù)先對(duì)報(bào)表模板對(duì)象的特有屬性、以及底層資源中的特有參數(shù)進(jìn)行轉(zhuǎn)換,促使轉(zhuǎn)換后的特有屬性與轉(zhuǎn)換后的底層資源中的特有參數(shù)對(duì)應(yīng)。此外,該生成方法還包括:在將參數(shù)添加到報(bào)表對(duì)象之前,將參數(shù)的數(shù)據(jù)類(lèi)型轉(zhuǎn)換成報(bào)表模板對(duì)象對(duì)應(yīng)的數(shù)據(jù)類(lèi)型。其中,報(bào)表模板對(duì)象對(duì)應(yīng)的數(shù)據(jù)類(lèi)型包括以下至少之一:String類(lèi)型、 Integer類(lèi)型、Long類(lèi)型、Float類(lèi)型、Boolean類(lèi)型、List類(lèi)型、Enum類(lèi)型、Date類(lèi)型。另外,該生成方法還包括:在生成報(bào)表之前,將參數(shù)在底層資源中對(duì)應(yīng)的參數(shù)列表轉(zhuǎn)換成預(yù)定格式,確定添加參數(shù)后的報(bào)表模板對(duì)象的類(lèi)別;根據(jù)類(lèi)別獲取添加參數(shù)后的報(bào)表模板對(duì)象對(duì)應(yīng)的屬性組和數(shù)據(jù)結(jié)構(gòu),確定報(bào)表生成類(lèi)型;并且,在生成報(bào)表時(shí),根據(jù)確定的報(bào)表生成類(lèi)型生成報(bào)表。根據(jù)本發(fā)明的另一方面,提供了一種報(bào)表的生成裝置。該生成裝置包括:模板生成模塊,用于根據(jù)系統(tǒng)所期望生成的報(bào)表,生成報(bào)表模板對(duì)象,報(bào)表模板對(duì)象的共同屬性與底層資源中的共有參數(shù)對(duì)應(yīng),報(bào)表模板對(duì)象的特有屬性與底層資源中的特有參數(shù)對(duì)應(yīng);數(shù)據(jù)獲取模塊,用于根據(jù)報(bào)表模板對(duì)象的共有屬性和特有屬性,獲取底層資源中與報(bào)表模板對(duì)象的報(bào)表對(duì)象對(duì)應(yīng)的參數(shù);報(bào)表生成模塊,用于將參數(shù)添加到報(bào)表對(duì)象中,并根據(jù)添加參數(shù)后的報(bào)表模板對(duì)象生成報(bào)表。其中,模板生成模塊進(jìn)一步包括發(fā)送模塊和生成模塊;發(fā)送模塊,用于根據(jù)系統(tǒng)期望生成的報(bào)表,向系統(tǒng)發(fā)送報(bào)表生成請(qǐng)求;生成模塊,用于根據(jù)報(bào)表生成請(qǐng)求,調(diào)取外部類(lèi)庫(kù)中對(duì)應(yīng)的類(lèi)生成報(bào)表模板對(duì)象。其中,報(bào)表生成請(qǐng)求包括以下信息中的至少之一:報(bào)表模板對(duì)象格式要求、報(bào)表模板對(duì)象名稱(chēng)、報(bào)表模板對(duì)象的描述信息、報(bào)表模板對(duì)象的各報(bào)表對(duì)象名稱(chēng)。此外,模板生成模塊還包括共有轉(zhuǎn)換模塊和特有轉(zhuǎn)換模塊;共有轉(zhuǎn)換模塊,用于預(yù)先對(duì)報(bào)表模板對(duì)象的共有屬性、以及底層資源中的共有參數(shù)進(jìn)行轉(zhuǎn)換,促使轉(zhuǎn)換后的共有屬性與轉(zhuǎn)換后的底層資源中的共有參數(shù)對(duì)應(yīng);特有轉(zhuǎn)換模塊,用于預(yù)先對(duì)報(bào)表模板對(duì)象的特有屬性、以及底層資源中的特有參數(shù)進(jìn)行轉(zhuǎn)換,促使轉(zhuǎn)換后的特有屬性與轉(zhuǎn)換后的底層資源中的特有參數(shù)對(duì)應(yīng)。另外,數(shù)據(jù)獲取模塊進(jìn)一步包括數(shù)據(jù)轉(zhuǎn)換模塊;數(shù)據(jù)轉(zhuǎn)換模塊,用于在將參數(shù)添加到報(bào)表對(duì)象之前,將參數(shù)的數(shù)據(jù)類(lèi)型轉(zhuǎn)換成報(bào)表模板對(duì)象對(duì)應(yīng)的數(shù)據(jù)類(lèi)型。其中,報(bào)表模板對(duì)象對(duì)應(yīng)的數(shù)據(jù)類(lèi)型包括以下至少之一:String類(lèi)型、Integer類(lèi)型、Long類(lèi)型、Float類(lèi)型、Boolean類(lèi)型、List類(lèi)型、Enum類(lèi)型、Date類(lèi)型。此外,該生成裝置還包括類(lèi)別確定模塊和類(lèi)型確定模塊,其中,類(lèi)別確定模塊,用于在生成報(bào)表之前,將參數(shù)在底層資源中對(duì)應(yīng)的參數(shù)列表轉(zhuǎn)換成預(yù)定格式,確定添加參數(shù)后的報(bào)表模板對(duì)象的類(lèi)別;類(lèi)型確定模塊,用于根據(jù)類(lèi)別獲取添加參數(shù)后的報(bào)表模板對(duì)象對(duì)應(yīng)的屬性組和數(shù)據(jù)結(jié)構(gòu),確定報(bào)表生成類(lèi)型;并且,報(bào)表生成模塊還用于根據(jù)類(lèi)型確定模塊確定的報(bào)表生成類(lèi)型生成報(bào)表。本發(fā)明通過(guò)增設(shè)報(bào)表模板對(duì)象并將報(bào)表模板對(duì)象的共有屬性和特有屬性與底層資源的共有參數(shù)和特有參數(shù)分別對(duì)應(yīng),使得在生成報(bào)表時(shí),上層業(yè)務(wù)不需要了解底層資源的結(jié)構(gòu),也不需要底層資源關(guān)心上層業(yè)務(wù)究竟有哪些業(yè)務(wù)對(duì)象和操作,只需要根據(jù)報(bào)表生成請(qǐng)求定義報(bào)表模板對(duì)象,然后根據(jù)報(bào)表模板對(duì)象自身的對(duì)應(yīng)關(guān)系直接獲取相關(guān)數(shù)據(jù)即可,避免了現(xiàn)有相關(guān)技術(shù)在生成報(bào)表時(shí),所存在的復(fù)雜性和繁瑣性的問(wèn)題。另外,本發(fā)明還考慮了不同類(lèi)型的報(bào)表生成操作(數(shù)據(jù)表、圖形)的數(shù)據(jù)結(jié)構(gòu)的差異性,在報(bào)表生成之前,就通過(guò)轉(zhuǎn)換相關(guān)參數(shù)在底層資源中的參數(shù)列表的格式等方法,確定不同報(bào)表的對(duì)應(yīng)類(lèi)型,從而極大的提高了報(bào)表生成時(shí)的靈活性。附圖說(shuō)明為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是根據(jù)本發(fā)明實(shí)施例的報(bào)表的生成方法的流程示意圖;圖2是根據(jù)本發(fā)明實(shí)施例的報(bào)表的生成裝置的結(jié)構(gòu)示意圖。具體實(shí)施方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清 楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。根據(jù)本發(fā)明的實(shí)施例,提供了一種報(bào)表的生成方法。如圖1所示,根據(jù)本發(fā)明實(shí)施例的報(bào)表的生成方法包括:步驟S101,根據(jù)系統(tǒng)所期望生成的報(bào)表,生成報(bào)表模板對(duì)象,報(bào)表模板對(duì)象的共同屬性與底層資源中的共有參數(shù)對(duì)應(yīng),報(bào)表模板對(duì)象的特有屬性與底層資源中的特有參數(shù)對(duì)應(yīng);步驟S103,根據(jù)報(bào)表模板對(duì)象的共有屬性和特有屬性,獲取底層資源中與報(bào)表模板對(duì)象的報(bào)表對(duì)象(報(bào)表對(duì)象是指報(bào)表模板對(duì)象中的各個(gè)子對(duì)象)對(duì)應(yīng)的參數(shù);步驟S105,將參數(shù)添加到報(bào)表對(duì)象中,并根據(jù)添加參數(shù)后的報(bào)表模板對(duì)象生成報(bào)表。其中,在根據(jù)系統(tǒng)期望生成的報(bào)表,生成報(bào)表模板對(duì)象時(shí),可根據(jù)系統(tǒng)期望生成的報(bào)表,向系統(tǒng)發(fā)送報(bào)表生成請(qǐng)求;并根據(jù)報(bào)表生成請(qǐng)求,調(diào)取外部類(lèi)庫(kù)中對(duì)應(yīng)的類(lèi)生成報(bào)表模板對(duì)象。其中,報(bào)表生成請(qǐng)求包括以下信息中的至少之一:報(bào)表模板對(duì)象格式要求、報(bào)表模板對(duì)象名稱(chēng)、報(bào)表模板對(duì)象的描述信息、報(bào)表模板對(duì)象的各報(bào)表對(duì)象名稱(chēng)。此外,該生成方法還包括:預(yù)先對(duì)報(bào)表模板對(duì)象的共有屬性、以及底層資源中的共有參數(shù)進(jìn)行轉(zhuǎn)換,促使轉(zhuǎn)換后的共有屬性與轉(zhuǎn)換后的底層資源中的共有參數(shù)對(duì)應(yīng)。另外,該生成方法還包括:預(yù)先對(duì)報(bào)表模板對(duì)象的特有屬性、以及底層資源中的特有參數(shù)進(jìn)行轉(zhuǎn)換,促使轉(zhuǎn)換后的特有屬性與轉(zhuǎn)換后的底層資源中的特有參數(shù)對(duì)應(yīng)。此外,該生成方法還包括:在將參數(shù)添加到報(bào)表對(duì)象之前,將參數(shù)的數(shù)據(jù)類(lèi)型轉(zhuǎn)換成報(bào)表模板對(duì)象對(duì)應(yīng)的數(shù)據(jù)類(lèi)型。其中,報(bào)表模板對(duì)象對(duì)應(yīng)的數(shù)據(jù)類(lèi)型包括以下至少之一:String類(lèi)型、Integer類(lèi)型、Long類(lèi)型、Float類(lèi)型、Boolean類(lèi)型、List類(lèi)型、Enum類(lèi)型、 Date類(lèi)型。此外,該生成方法還包括:在生成報(bào)表之前,將參數(shù)在底層資源中對(duì)應(yīng)的參數(shù)列表轉(zhuǎn)換成預(yù)定格式,確定添加參數(shù)后的報(bào)表模板對(duì)象的類(lèi)別(例如,審計(jì)報(bào)表、記賬報(bào)表、計(jì)費(fèi)報(bào)表、告警報(bào)表、監(jiān)控報(bào)表等);根據(jù)類(lèi)別獲取添加參數(shù)后的報(bào)表模板對(duì)象對(duì)應(yīng)的屬性組和數(shù)據(jù)結(jié)構(gòu),確定報(bào)表生成類(lèi)型;并且,在生成報(bào)表時(shí),根據(jù)確定的報(bào)表生成類(lèi)型生成報(bào)表。在本發(fā)明中,云計(jì)算操作系統(tǒng)報(bào)表數(shù)據(jù)按照實(shí)際場(chǎng)景,共劃分了21種上層業(yè)務(wù)對(duì)象,包括物理分區(qū)、Hypervisor、虛擬機(jī)、共享存儲(chǔ)、IP、VLAN等。底層資源是將不同業(yè)務(wù)對(duì)象按照一定方法提取共同特性生成數(shù)據(jù)報(bào)表的,一個(gè)資源可以分為三部分:基本數(shù)據(jù)信息、SQL語(yǔ)句、報(bào)表模板。其中,基本數(shù)據(jù)信息描述業(yè)務(wù)對(duì)象的共同屬性(例如,名稱(chēng)、報(bào)表類(lèi)型、報(bào)表信息,時(shí)間范圍等),SQL語(yǔ)句描述不同報(bào)表業(yè)務(wù)對(duì)象的特有屬性,報(bào)表模板用來(lái)控制最終生成的報(bào)表類(lèi)型(例如,Html、Pdf、Xml)。此外,在本發(fā)明中,系統(tǒng)定義了一個(gè)報(bào)表模板對(duì)象基類(lèi),該基類(lèi)中的類(lèi)屬性與資源基本信息一一對(duì)應(yīng),所有業(yè)務(wù)對(duì)象均需繼承該基類(lèi);系統(tǒng)分別為每一種業(yè)務(wù)對(duì)象定義一個(gè)業(yè)務(wù)對(duì)象類(lèi),類(lèi)中定義業(yè)務(wù)對(duì)象的屬性和接口,業(yè)務(wù)對(duì)象的屬性除了與資源配置參數(shù)信息對(duì)應(yīng)的屬性外,還可以定義其它需要處理的屬性;基類(lèi)和業(yè)務(wù)對(duì)象類(lèi)的與資源對(duì)應(yīng)的類(lèi)屬性均提供對(duì)應(yīng)的SQL語(yǔ)句和數(shù)據(jù)模板。另外,在本發(fā)明中,系統(tǒng)還定義了統(tǒng)一的報(bào)表生成類(lèi)型、數(shù)據(jù)插入格式和展現(xiàn)格式,基本信息和報(bào)表時(shí)間范圍分別進(jìn)行存儲(chǔ),各自有對(duì)應(yīng)的數(shù)據(jù)模板,在接口實(shí)現(xiàn)中也是分別進(jìn)行處理的。以下通過(guò)具體實(shí)例對(duì)本發(fā)明的上述技術(shù)方案進(jìn)行詳細(xì)描述。在實(shí)際應(yīng)用時(shí),生成報(bào)表的具體步驟如下:1.增加報(bào)表模板對(duì)象到底層資源轉(zhuǎn)換由于底層資源的信息分為SQL基本信息和頁(yè)面?zhèn)魅肱渲脜?shù)信息,報(bào)表模板對(duì)象的屬性同時(shí)對(duì)應(yīng)這兩種信息的數(shù)據(jù)結(jié)構(gòu),因此轉(zhuǎn)換分為2個(gè)步驟,分別是:報(bào)表模板對(duì)象中對(duì)應(yīng)sql基本信息的屬性為基本信息結(jié)構(gòu);報(bào)表模板對(duì)象中特有屬性為頁(yè)面配置參數(shù)信息結(jié)構(gòu)。實(shí)現(xiàn)上述兩個(gè)步驟的對(duì)應(yīng)接口為:1)增加報(bào)表模板對(duì)象為頁(yè)面?zhèn)魅牖拘畔rivateMap<String,Object>parameters=newHashMap<String,Object>();2)增加報(bào)表模板對(duì)象為sql查詢信息parameters.put(″QueryText″,″select*frombillinginfowherecreateTime>=″′+dateformat(rptStartTime)+″′andcreateTime<=″′+date.format(rptEndTime)+″′orderbycreateTime″);實(shí)現(xiàn)上述兩個(gè)步驟的具體流程為:1)定義報(bào)表基本信息對(duì)象rptTitle;2)獲取基本信息對(duì)象rptInfo;3)獲取報(bào)表生成類(lèi)型rptType;4)獲取報(bào)表模板對(duì)象的資源類(lèi)型的配置參數(shù)模板名稱(chēng)和info的Map結(jié)構(gòu)Map<String,Object>parameters;5)定義配置參數(shù)時(shí)間范圍(rptTime//指定時(shí)間段)、(rptStartTime//開(kāi)始時(shí)間)、(rptEndTime//結(jié)束時(shí)間);6)對(duì)parameters其中的每一項(xiàng):a)獲取報(bào)表的名稱(chēng);b)獲取報(bào)表的描述信息;c)獲取報(bào)表的生成類(lèi)型;d)獲取過(guò)濾數(shù)據(jù);e)調(diào)用數(shù)據(jù)類(lèi)型轉(zhuǎn)換器,處理fieldValue為String類(lèi)型;f)定義配置參數(shù)對(duì)象ParamDataVoparamData;g)組織paramData的資源、配置參數(shù)模板、值等屬性值;h)將paramData添加到lsParamData中。2.報(bào)表模板對(duì)象參數(shù)和樣式與增加報(bào)表模板對(duì)象為底層數(shù)據(jù)步驟類(lèi)似,也分為2個(gè)步驟,分別是:1)選擇數(shù)據(jù)源,針對(duì)不同的報(bào)表選擇相應(yīng)的業(yè)務(wù)數(shù)據(jù);2)創(chuàng)建模板樣式和傳入配置參數(shù),建立模板并從前臺(tái)將頁(yè)面?zhèn)魅肽0?,生成?bào)表模型。實(shí)現(xiàn)上述兩個(gè)步驟的具體流程為:1)根據(jù)報(bào)表模板對(duì)象sql表獲取到對(duì)應(yīng)的資源數(shù)據(jù);2)如果數(shù)據(jù)存在,則添加到模板對(duì)應(yīng)參數(shù)中;3)獲取資源已有的輸入輸出路徑List<ParamDataVo>lsParamData;4)將lsParamData轉(zhuǎn)換成Map格式ParamData,Map的key為配置參數(shù)名稱(chēng),value為對(duì)應(yīng)的配置參數(shù)ParamData;5)獲取報(bào)表模板對(duì)象的對(duì)象param;6)獲取資源種類(lèi)對(duì)應(yīng)的配置參數(shù)模板名稱(chēng)和id組成的Map結(jié)構(gòu)Param。3.底層數(shù)據(jù)到模板對(duì)象轉(zhuǎn)換由于底層數(shù)據(jù)與報(bào)表模板對(duì)象對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)有2個(gè),分別為數(shù)據(jù)表基本信息和配置參數(shù)信息,這2個(gè)數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換方式不同,因此需要將轉(zhuǎn)換過(guò)程分為2個(gè)步驟,分別是:將基本信息設(shè)置為報(bào)表模板對(duì)象的基本屬性值;將配置參數(shù)信息設(shè)置為報(bào)表模板對(duì)象的特有屬性值。4.數(shù)據(jù)類(lèi)型轉(zhuǎn)換本發(fā)明實(shí)現(xiàn)2個(gè)數(shù)據(jù)類(lèi)型轉(zhuǎn)換,分別實(shí)現(xiàn)將其它數(shù)據(jù)類(lèi)型值轉(zhuǎn)換為String類(lèi)型值,將String類(lèi)型值轉(zhuǎn)換為其它數(shù)據(jù)類(lèi)型值。涉及到的數(shù)據(jù)類(lèi)型包括:String類(lèi)型、Integer類(lèi)型、Long類(lèi)型、Float類(lèi)型、Boolean類(lèi)型、List類(lèi)型、自定義的各種Enum類(lèi)型以及Date類(lèi)型。在將其它數(shù)據(jù)類(lèi)型轉(zhuǎn)換為String類(lèi)型的數(shù)據(jù)類(lèi)型轉(zhuǎn)換中,對(duì)于List類(lèi)型的數(shù)據(jù)需要進(jìn)行特殊處理:獲取到具體的數(shù)據(jù)類(lèi)型,對(duì)于不同的類(lèi)型分別進(jìn)行處理。本發(fā)明的上述方案中,底層資源中的參數(shù)和報(bào)表模板對(duì)象的轉(zhuǎn)換實(shí)現(xiàn)了一種通用轉(zhuǎn)換方法,與報(bào)表模板對(duì)象類(lèi)型、具體屬性無(wú)關(guān),因此屏蔽了上層業(yè)務(wù)對(duì)象對(duì)底層資源的操作和底層資源對(duì)上層業(yè)務(wù)對(duì)象的了解;并且,在上層業(yè)務(wù)對(duì)象增加類(lèi)型和變更屬性時(shí),均只涉及到業(yè)務(wù)對(duì)象自身的修改,底層模板不需要進(jìn)行任何變更,底層數(shù)據(jù)和sql也不需要任何變更。根據(jù)本發(fā)明的實(shí)施例,還提供了一種報(bào)表的生成裝置。如圖2所示,根據(jù)本發(fā)明實(shí)施例的報(bào)表的生成裝置包括:模板生成模塊21,用于根據(jù)系統(tǒng)所期望生成的報(bào)表,生成報(bào)表模板對(duì)象,報(bào)表模板對(duì)象的共同屬性與底層資源中的共有參數(shù)對(duì)應(yīng),報(bào)表模板對(duì)象的特有屬性與底層資源中的特有參數(shù)對(duì)應(yīng);數(shù)據(jù)獲取模塊22,用于根據(jù)報(bào)表模板對(duì)象的共有屬性和特有屬性,獲取底層資源中與報(bào)表模板對(duì)象的報(bào)表對(duì)象對(duì)應(yīng)的參數(shù);報(bào)表生成模塊23,用于將參數(shù)添加到報(bào)表對(duì)象中,并根據(jù)添加參數(shù)后的報(bào)表模板對(duì)象生成報(bào)表。其中,模板生成模塊21進(jìn)一步包括發(fā)送模塊(未示出)和生成模塊(未示出);發(fā)送模塊,用于根據(jù)系統(tǒng)期望生成的報(bào)表,向系統(tǒng)發(fā)送報(bào)表生成請(qǐng)求;生成模塊,用于根據(jù)報(bào)表生成請(qǐng)求,調(diào)取外部類(lèi)庫(kù)中對(duì)應(yīng)的類(lèi)生成報(bào)表模板對(duì)象。其中,報(bào)表生成請(qǐng)求包括以下信息中的至少之一:報(bào)表模板對(duì)象格式要求、報(bào)表模板對(duì)象名稱(chēng)、報(bào)表模板對(duì)象的描述信息、報(bào)表模板對(duì)象的各報(bào)表對(duì)象名稱(chēng)。此外,模板生成模塊21還包括共有轉(zhuǎn)換模塊(未示出)和特有轉(zhuǎn)換模塊(未示出);共有轉(zhuǎn)換模塊,用于預(yù)先對(duì)報(bào)表模板對(duì)象的共有屬性、以及底層資源中的共有參數(shù)進(jìn)行轉(zhuǎn)換,促使轉(zhuǎn)換后的共有屬性與轉(zhuǎn)換后的底層資源中的共有參數(shù)對(duì)應(yīng);特有轉(zhuǎn)換模塊,用于預(yù)先對(duì)報(bào)表模板對(duì)象的特有屬性、以及底層資源中的特有參數(shù)進(jìn)行轉(zhuǎn)換,促使轉(zhuǎn)換后的特有屬性與轉(zhuǎn)換后的底層資源中的特有參數(shù)對(duì)應(yīng)。此外,數(shù)據(jù)獲取模塊22進(jìn)一步包括數(shù)據(jù)轉(zhuǎn)換模塊(未示出);數(shù)據(jù)轉(zhuǎn)換模塊,用于在將參數(shù)添加到報(bào)表對(duì)象之前,將參數(shù)的數(shù)據(jù)類(lèi)型轉(zhuǎn)換成報(bào)表模板對(duì)象對(duì)應(yīng)的數(shù)據(jù)類(lèi)型。其中,數(shù)據(jù)類(lèi)型包括以下至少之一:String類(lèi)型、Integer類(lèi)型、Long類(lèi)型、Float類(lèi)型、Boolean類(lèi)型、List類(lèi)型、Enum類(lèi)型、Date類(lèi)型。此外,該生成裝置還包括類(lèi)別確定模塊(未示出)和類(lèi)型確定模塊(未示出),其中,類(lèi)別確定模塊,用于在生成報(bào)表之前,將參數(shù)在底層資源中對(duì)應(yīng)的參數(shù)列表轉(zhuǎn)換成預(yù)定格式,確定添加參數(shù)后的報(bào)表模板對(duì)象的類(lèi)別;類(lèi)型確定模塊,用于根據(jù)類(lèi)別獲取添加參數(shù)后的報(bào)表模板對(duì)象對(duì)應(yīng)的屬性組和數(shù)據(jù)結(jié)構(gòu),確定報(bào)表生成類(lèi)型;并且,報(bào)表生成模塊用于根據(jù)類(lèi)型確定模塊確定的報(bào)表生成類(lèi)型生成報(bào)表。綜上所述,借助于本發(fā)明的上述技術(shù)方案,通過(guò)增設(shè)報(bào)表模板對(duì)象并將報(bào) 表模板對(duì)象的共有屬性和特有屬性與底層資源的共有參數(shù)和特有參數(shù)分別對(duì)應(yīng),使得在生成報(bào)表時(shí),上層業(yè)務(wù)不需要了解底層資源的結(jié)構(gòu),也不需要底層資源關(guān)心上層業(yè)務(wù)究竟有哪些業(yè)務(wù)對(duì)象和操作,只需要根據(jù)報(bào)表生成請(qǐng)求定義報(bào)表模板對(duì)象,然后根據(jù)報(bào)表模板對(duì)象自身的對(duì)應(yīng)關(guān)系直接獲取相關(guān)數(shù)據(jù)即可,避免了現(xiàn)有相關(guān)技術(shù)在生成報(bào)表時(shí),所存在的復(fù)雜性和繁瑣性的問(wèn)題。另外,本發(fā)明還考慮了不同類(lèi)型的報(bào)表生成操作(數(shù)據(jù)表、圖形)的數(shù)據(jù)結(jié)構(gòu)的差異性,在報(bào)表生成之前,就通過(guò)轉(zhuǎn)換相關(guān)參數(shù)在底層資源中的參數(shù)列表的格式等方法,確定不同報(bào)表的對(duì)應(yīng)類(lèi)型,從而極大的提高了報(bào)表生成時(shí)的靈活性。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。