欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種報(bào)表生成方法和系統(tǒng)與流程

文檔序號(hào):12010106閱讀:315來(lái)源:國(guó)知局
一種報(bào)表生成方法和系統(tǒng)與流程
本發(fā)明涉及基于互聯(lián)網(wǎng)技術(shù)開(kāi)發(fā)的報(bào)表應(yīng)用,更具體地說(shuō),涉及一種報(bào)表生成方法和系統(tǒng)。

背景技術(shù):
目前很多軟件項(xiàng)目實(shí)現(xiàn)的報(bào)表應(yīng)用,都在項(xiàng)目需求階段確定報(bào)表的類型或形式,開(kāi)發(fā)者根據(jù)此特定需求通過(guò)硬編碼形式實(shí)現(xiàn),而沒(méi)有考慮用戶對(duì)報(bào)表定制的需求,用戶或業(yè)務(wù)人員只能查看預(yù)先確定的報(bào)表,不能根據(jù)自己的業(yè)務(wù)需求做個(gè)性化的定制。業(yè)界報(bào)表工具的期望是覆蓋所有用戶需求,用戶或第三方通過(guò)使用現(xiàn)有的報(bào)表工具支持的功能來(lái)滿足需求。這種報(bào)表的生成方法非常僵硬而不靈活,用戶只能在報(bào)表工具支持的功能范圍內(nèi)來(lái)實(shí)現(xiàn)表報(bào),報(bào)表的制作無(wú)法按照用戶的不同需要進(jìn)行靈活調(diào)整,一旦出現(xiàn)用戶需要的功能報(bào)表工具不能支持的情況,相應(yīng)的報(bào)表就無(wú)法實(shí)現(xiàn),而用戶或第三方只能將對(duì)該功能的需求反饋給報(bào)表工具提供方,期望在報(bào)表工具的下一版本中得以滿足。

技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有報(bào)表的生成方法只允許用戶在報(bào)表工具支持的功能范圍內(nèi)實(shí)現(xiàn)表報(bào),無(wú)法實(shí)現(xiàn)根據(jù)用戶的業(yè)務(wù)需要定制報(bào)表的缺陷,提供一種報(bào)表的生成方 法和系統(tǒng),通過(guò)與用戶交互性的可視化圖形操作生成報(bào)表的定義并存儲(chǔ)與服務(wù)器,用戶通過(guò)向服務(wù)器請(qǐng)求以獲取相應(yīng)的表報(bào)或數(shù)據(jù),實(shí)現(xiàn)了報(bào)表的個(gè)性化定制。本發(fā)明解決其技術(shù)問(wèn)題采用的技術(shù)方案是:提供一種報(bào)表生成系統(tǒng),包括通信連接的客戶端和服務(wù)器,所述客戶端包括混聚(Mash-up)編輯器和報(bào)表引擎,所述服務(wù)器包括Mash-up引擎;其中,所述Mash-up編輯器用于通過(guò)交互性的可視化圖形操作生成報(bào)表的Mash-up定義,并將所述Mash-up定義保存到所述服務(wù)器;所述Mash-up定義包括直接或間接關(guān)聯(lián)的數(shù)據(jù)節(jié)點(diǎn)和操作符節(jié)點(diǎn),所述操作符節(jié)點(diǎn)用于運(yùn)行業(yè)務(wù)邏輯,所述數(shù)據(jù)節(jié)點(diǎn)為所述操作符節(jié)點(diǎn)運(yùn)行相應(yīng)業(yè)務(wù)邏輯所需的數(shù)據(jù)輸入以及相應(yīng)的數(shù)據(jù)輸出;所述Mash-up編輯器還用于向所述服務(wù)器請(qǐng)求用于唯一標(biāo)識(shí)生成的Mash-up定義中各節(jié)點(diǎn)的ID;所述報(bào)表引擎用于向所述服務(wù)器發(fā)送請(qǐng)求信息,所述請(qǐng)求信息包括所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的ID;所述Mash-up引擎用于查詢所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的ID所屬的Mash-up定義,根據(jù)查詢到的Mash-up定義構(gòu)建生成該數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)序列,執(zhí)行所述節(jié)點(diǎn)序列中的操作符節(jié)點(diǎn)并將執(zhí)行結(jié)果返回所述報(bào)表引擎。優(yōu)選地,所述服務(wù)器還包括:報(bào)表管理器,用于接收所述請(qǐng)求信號(hào),對(duì)所要請(qǐng)求的最終數(shù)據(jù)節(jié)點(diǎn)的ID所屬的Mash-up定義進(jìn)行合法性驗(yàn)證,若通過(guò)驗(yàn)證,則將所要請(qǐng)求的最終數(shù)據(jù)節(jié)點(diǎn)的ID發(fā)送到所述Mash-up引擎。優(yōu)選地,所述Mash-up引擎根據(jù)Mash-up節(jié)點(diǎn)序列算法構(gòu)建生成最終數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)序列,所述Mash-up節(jié)點(diǎn)序列算法包括步驟:A、查詢所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的ID所屬的Mash-up定義;B、確定查詢到的Mash-up定義中與該數(shù)據(jù)節(jié)點(diǎn)有直接或間接關(guān)聯(lián)的所有節(jié)點(diǎn);C、按照?qǐng)?zhí)行順序?qū)⒋_定的所有節(jié)點(diǎn)中的操作符節(jié)點(diǎn)構(gòu)建成生成所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)序列,確定的所有節(jié)點(diǎn)中的數(shù)據(jù)節(jié)點(diǎn)作為操作符節(jié)點(diǎn)的關(guān)聯(lián)引用保存。優(yōu)選地,所述節(jié)點(diǎn)序列中的操作符節(jié)點(diǎn)包括服務(wù)器端操作符節(jié)點(diǎn)和客戶端操作符節(jié)點(diǎn);所述Mash-up引擎執(zhí)行所述服務(wù)器端操作符節(jié)點(diǎn),并將執(zhí)行結(jié)果、以及包括所述客戶端操作符節(jié)點(diǎn)的剩余的節(jié)點(diǎn)序列發(fā)送到所述報(bào)表引擎,所述報(bào)表引擎還用于執(zhí)行節(jié)點(diǎn)序列中的所述客戶端操作符節(jié)點(diǎn)。優(yōu)選地,所述客戶端操作符節(jié)點(diǎn)運(yùn)行的業(yè)務(wù)邏輯包括根據(jù)用戶指定條件處理所述Mash-up引擎返回的執(zhí)行結(jié)果和/或繪制報(bào)表。提供一種報(bào)表生成方法,包括以下步驟:S1、通過(guò)設(shè)置在客戶端的混聚(Mash-up)編輯器生成報(bào)表的Mash-up定義,所述Mash-up定義包括直接或間接關(guān)聯(lián)的數(shù)據(jù)節(jié)點(diǎn)和操作符節(jié)點(diǎn),并為所述Mash-up定義中的各節(jié)點(diǎn)分配ID,將所述Mash-up定義保存到服務(wù)器;其中,所述操作符節(jié)點(diǎn)用于運(yùn)行業(yè)務(wù)邏輯,所述數(shù)據(jù)節(jié)點(diǎn)為所述操作符節(jié)點(diǎn)運(yùn)行相應(yīng)業(yè)務(wù)邏輯所需的數(shù)據(jù)輸入以及相應(yīng)的數(shù)據(jù)輸出;S2、通過(guò)設(shè)置在客戶端的報(bào)表引擎,向所述服務(wù)器發(fā)送請(qǐng)求信息,所述請(qǐng)求信息包括所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的ID;S3、通過(guò)設(shè)置在服務(wù)器端的Mash-up引擎查詢所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的ID所屬的Mash-up定義,根據(jù)查詢到的Mash-up定義構(gòu)建生成所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)序列,執(zhí)行所述節(jié)點(diǎn)序列中的操作符節(jié)點(diǎn),并將執(zhí)行結(jié)果返回所述報(bào)表引擎。優(yōu)選地,在步驟S2和S3之間還包括步驟:S4、通過(guò)設(shè)置在服務(wù)器端的報(bào)表管理器接收所述請(qǐng)求信息,對(duì)所要請(qǐng)求的 數(shù)據(jù)節(jié)點(diǎn)的ID所屬的Mash-up定義進(jìn)行合法性驗(yàn)證,若通過(guò)驗(yàn)證,則將所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的ID發(fā)送到所述Mash-up引擎。優(yōu)選地,步驟S3包括以下步驟:S3a、所述Mash-up引擎查詢所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的ID所屬的Mash-up定義;S3b、所述Mash-up引擎確定查詢到的Mash-up定義中與所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)直接或間接關(guān)聯(lián)的所有節(jié)點(diǎn);S3c、所述Mash-up引擎按照?qǐng)?zhí)行順序?qū)⒋_定的所有節(jié)點(diǎn)中的操作符節(jié)點(diǎn)構(gòu)建成生成所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)序列,確定的所有節(jié)點(diǎn)中的數(shù)據(jù)節(jié)點(diǎn)作為操作符節(jié)點(diǎn)的關(guān)聯(lián)引用保存;S3d、所述Mash-up引擎執(zhí)行所述節(jié)點(diǎn)序列中的操作符節(jié)點(diǎn),并將執(zhí)行結(jié)果返回所述報(bào)表引擎。優(yōu)選地,所述節(jié)點(diǎn)序列中的操作符節(jié)點(diǎn)包括服務(wù)器端操作符節(jié)點(diǎn)和客戶端操作符節(jié)點(diǎn),步驟S3d中,所述Mash-up引擎執(zhí)行所述服務(wù)器端操作符節(jié)點(diǎn),并將執(zhí)行結(jié)果、以及包括所述客戶端操作符節(jié)點(diǎn)的剩余的節(jié)點(diǎn)序列發(fā)送到所述報(bào)表引擎;所述方法還包括步驟:S5、所述報(bào)表引擎執(zhí)行節(jié)點(diǎn)序列中的所述客戶端操作符節(jié)點(diǎn)。優(yōu)選地,所述客戶端操作符節(jié)點(diǎn)運(yùn)行的業(yè)務(wù)邏輯包括根據(jù)用戶指定條件處理所述Mash-up引擎返回的執(zhí)行結(jié)果和/或繪制報(bào)表。本發(fā)明的報(bào)表生成方法和系統(tǒng)具有以下有益效果:通過(guò)Mash-up編輯器提供交互性的可視化圖形操作以生成報(bào)表的Mash-up定義,并為Mash-up定義中的各節(jié)點(diǎn)分配ID,然后將Mash-up定義保存到服務(wù)器,用戶通過(guò)報(bào)表引擎向 服務(wù)器發(fā)送請(qǐng)求信息并接收Mash-up引擎執(zhí)行生成所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)序列的結(jié)果,以獲取按業(yè)務(wù)需要定制的表報(bào)或數(shù)據(jù)。附圖說(shuō)明圖1為本發(fā)明的報(bào)表生成系統(tǒng)第一實(shí)施例的系統(tǒng)框圖;圖2為Mash-up定義示例圖;圖3為Mash-up節(jié)點(diǎn)序列算法的實(shí)施流程圖;圖4為Mash-up引擎執(zhí)行服務(wù)器端操作符節(jié)點(diǎn)的流程圖;圖5為本發(fā)明的報(bào)表生成系統(tǒng)第二實(shí)施例的系統(tǒng)框圖;圖6為本發(fā)明的報(bào)表生成方法第一實(shí)施例的流程圖;圖7為本發(fā)明的報(bào)表生成方法第二實(shí)施例的流程圖。具體實(shí)施方式以下結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的解釋說(shuō)明。圖1為本發(fā)明的報(bào)表生成系統(tǒng)100第一實(shí)施例的系統(tǒng)框圖,如圖1所示,在本實(shí)施例中,系統(tǒng)100包括通信連接的客戶端110和服務(wù)器120,其中,客戶端110包括Mash-up編輯器111和報(bào)表引擎112,服務(wù)器120包括Mash-up引擎121。在本實(shí)施例中,Mash-up編輯器111用于通過(guò)交互性的可視化圖形操作生成報(bào)表的Mash-up定義,Mash-up定義包括直接或間接關(guān)聯(lián)的數(shù)據(jù)節(jié)點(diǎn)和操作符節(jié)點(diǎn),Mash-up編輯器111為Mash-up定義中的各節(jié)點(diǎn)分配ID,然后將Mash-up定義保存到服務(wù)器120。其中,操作符節(jié)點(diǎn)用于運(yùn)行業(yè)務(wù)邏輯,數(shù)據(jù)節(jié)點(diǎn)為操作符節(jié)點(diǎn)運(yùn)行相應(yīng)業(yè)務(wù)邏輯所需的數(shù)據(jù)輸入以及相應(yīng)的數(shù)據(jù)輸出。Mash-up編輯器111一次向服務(wù)器120請(qǐng)求多個(gè)全局唯一的ID,并緩存于本地,當(dāng)用戶每次通過(guò)Mash-up編輯器111增加一個(gè)節(jié)點(diǎn),Mash-up編輯器111從緩存中取一個(gè)ID分配給該新增的節(jié)點(diǎn),直到緩存于本地的ID取完后,Mash-up編輯器111又會(huì)向服務(wù)器120請(qǐng)求多個(gè)ID。Mash-up編輯器111向用戶提供了一種可視化編輯界面,讓用戶方便地實(shí)現(xiàn)報(bào)表編輯或定制,將報(bào)表的實(shí)現(xiàn)過(guò)程分割為若干個(gè)通用的邏輯單元,每個(gè)邏輯單元用一個(gè)圖形節(jié)點(diǎn)表示,技術(shù)上稱為操作符節(jié)點(diǎn)(OperatorNode)。將每個(gè)邏輯單元的數(shù)據(jù)輸入和輸出當(dāng)作一個(gè)數(shù)據(jù)單元,用圖形表示,技術(shù)上稱為數(shù)據(jù)節(jié)點(diǎn)(DataNode)。將操作符節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)用有向線段連接起來(lái),形成Mash-up定義(Mash-upDefinition),有向線段的終點(diǎn)代表一個(gè)報(bào)表。圖形節(jié)點(diǎn)只是操作符節(jié)點(diǎn)或數(shù)據(jù)節(jié)點(diǎn)在Mash-up編輯器111上的可視形式,連線代表其輸入輸出關(guān)系,所有圖形信息(如坐標(biāo),長(zhǎng)寬,顏色等)以XML形式保存。對(duì)圖形屬性的編輯即為對(duì)其代表的操作符節(jié)點(diǎn)或數(shù)據(jù)節(jié)點(diǎn)屬性的編輯,如修改報(bào)表顏色、名稱和描述等都會(huì)反映到其代表的實(shí)際節(jié)點(diǎn)。操作符節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)信息最終都在客戶端110轉(zhuǎn)換為JSON格式在服務(wù)端120與客戶端110之間進(jìn)行傳輸。圖2為通過(guò)Mash-up編輯器111編輯的一個(gè)報(bào)表的Mash-up定義,DN表示數(shù)據(jù)節(jié)點(diǎn),ON表示操作符節(jié)點(diǎn),DN16和DN18為生成的兩個(gè)報(bào)表,以DN18為例,其所屬的Mash-up定義包括操作符節(jié)點(diǎn)ON10、ON17,數(shù)據(jù)節(jié)點(diǎn)DN00、DN101和DN18,其中,DN00為ON10運(yùn)行相應(yīng)的業(yè)務(wù)邏輯所需的數(shù)據(jù)輸入,DN101為其數(shù)據(jù)輸出,同時(shí)DN101也為ON17運(yùn)行其業(yè)務(wù)邏輯所需的數(shù)據(jù)輸入,最后輸出報(bào)表DN18。以DN18所屬的Mash-up定義為例,Mash-up編輯器111為數(shù)據(jù)節(jié)點(diǎn)DN00、 DN101、DN18分配的ID分別為1000、1002、1004,為該定義中操作符節(jié)點(diǎn)ON10、ON17分配的ID分別為1001、1003。報(bào)表引擎112用于向服務(wù)器120發(fā)送請(qǐng)求信息,請(qǐng)求信息包括所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的ID,例如所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)為DN18,請(qǐng)求信息中包括該節(jié)點(diǎn)ID為1004。Mash-up引擎121用于查詢所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的ID所屬的Mash-up定義,根據(jù)查詢到的Mash-up定義構(gòu)建生成所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)序列,執(zhí)行該節(jié)點(diǎn)序列中的操作符節(jié)點(diǎn)并將執(zhí)行結(jié)果返回報(bào)表引擎112。在本實(shí)施例中,Mash-up引擎121根據(jù)Mash-up節(jié)點(diǎn)序列算法構(gòu)建生成所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)序列,所述Mash-up節(jié)點(diǎn)序列算法包括步驟:A、查詢所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的ID所屬的Mash-up定義;B、確定查詢到的Mash-up定義中與該數(shù)據(jù)節(jié)點(diǎn)有直接或間接關(guān)聯(lián)的所有節(jié)點(diǎn);C、按照?qǐng)?zhí)行順序?qū)⒋_定的所有節(jié)點(diǎn)中的操作符節(jié)點(diǎn)構(gòu)建成生成所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)序列,并將確定的所有節(jié)點(diǎn)中的數(shù)據(jù)節(jié)點(diǎn)作為操作符節(jié)點(diǎn)的關(guān)聯(lián)引用保存。例如,所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)為DN18,其ID為1004,Mash-up引擎121查詢1004所屬的Mash-up定義,確定在該定義中與DN18直接或間接關(guān)聯(lián)的所有節(jié)點(diǎn):DN00、DN101、ON10、ON17,然后按照?qǐng)?zhí)行順序構(gòu)建生成DN18的節(jié)點(diǎn)序列為:ON10,ON17。而數(shù)據(jù)節(jié)點(diǎn)DNOO和DN101作為操作節(jié)點(diǎn)ON10和ON17的關(guān)聯(lián)引用保存。所謂關(guān)聯(lián)引用是指數(shù)據(jù)節(jié)點(diǎn)與操作符節(jié)點(diǎn)之間的引用關(guān)系,例如,DN101為ON10的輸出,同時(shí)為ON17的輸入。此構(gòu)建算法只會(huì)返回與所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)相關(guān)聯(lián)的所有直接或間接的父節(jié)點(diǎn)序列以及作為關(guān)聯(lián)引用保存的數(shù)據(jù)節(jié)點(diǎn),最頂層的父節(jié)點(diǎn)在隊(duì)列頭部(如ON10),最底層父節(jié)點(diǎn)在隊(duì)列尾部(例如ON17)。其中,在構(gòu)建的節(jié)點(diǎn)序列中的操作符節(jié)點(diǎn)可能包括服務(wù)器端操作符節(jié)點(diǎn)和客戶端操作符節(jié)點(diǎn),例如,當(dāng)所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)為DN18,其所屬定義中包括服務(wù)器端操作符節(jié)點(diǎn)ON10和客戶端操作符節(jié)點(diǎn)ON17。Mash-up引擎121執(zhí)行服務(wù)器端操作符節(jié)點(diǎn),并將執(zhí)行結(jié)果、包括客戶端操作符節(jié)點(diǎn)的剩余的節(jié)點(diǎn)序列、以及作為剩余的節(jié)點(diǎn)序列的關(guān)聯(lián)引用保存的數(shù)據(jù)節(jié)點(diǎn)發(fā)送到報(bào)表引擎112,報(bào)表引擎112執(zhí)行節(jié)點(diǎn)序列中的客戶端操作符節(jié)點(diǎn)??蛻舳瞬僮鞣?jié)點(diǎn)運(yùn)行的業(yè)務(wù)邏輯包括根據(jù)用戶指定條件處理Mash-up引擎返回的執(zhí)行結(jié)果和/或繪制報(bào)表。例如,ON17運(yùn)行的業(yè)務(wù)邏輯可以是根據(jù)用戶指定的條件修改Mash-up引擎返回的執(zhí)行結(jié)果,即數(shù)據(jù)節(jié)點(diǎn)DN101,此時(shí),DN18不是報(bào)表而是經(jīng)過(guò)修改后的數(shù)據(jù)。再例如,ON17運(yùn)行的業(yè)務(wù)邏輯可以是繪制表格,則DN18即為生成的報(bào)表。另外,由于Mash-up編輯器111每個(gè)數(shù)據(jù)節(jié)點(diǎn)都分配了ID,所以,所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)可以是在定義中任意位置的數(shù)據(jù)節(jié)點(diǎn),例如,所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)可以是DN101,此時(shí)Mash-up引擎121按照?qǐng)?zhí)行順序構(gòu)建生成DN101的節(jié)點(diǎn)序列為:ON10。數(shù)據(jù)節(jié)點(diǎn)DN00和DN101被關(guān)聯(lián)引用保存。其中ON10為服務(wù)器端操作符節(jié)點(diǎn),因此,返回DN101到報(bào)表引擎112。圖3為Mash-up節(jié)點(diǎn)序列算法的實(shí)施流程圖。首先根據(jù)所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)ID查詢其所屬M(fèi)ashup定義。初始隊(duì)列seq用于存放最終需要返回的結(jié)果。輸入隊(duì)列inputSeq用于存放下一個(gè)循環(huán)中需要遍歷的節(jié)點(diǎn)。當(dāng)前隊(duì)列queue用于存放當(dāng)前遍歷的節(jié)點(diǎn),初始化queue時(shí)會(huì)把當(dāng)前請(qǐng)求的節(jié)點(diǎn)放入此隊(duì)列。循環(huán)遍歷queue隊(duì)列,直到queue為空時(shí),結(jié)束遍歷,返回seq作為結(jié)果。開(kāi)始循環(huán)遍歷queue,從queue中出隊(duì)列一個(gè)節(jié)點(diǎn),假設(shè)此節(jié)點(diǎn)為node,若node是數(shù)據(jù)節(jié)點(diǎn),則其上一個(gè)節(jié)點(diǎn)必為操作符節(jié)點(diǎn)且是唯一節(jié)點(diǎn)(參見(jiàn)圖2和表1, node為DN16時(shí),則其上一個(gè)節(jié)點(diǎn)必為操作符節(jié)點(diǎn),即ON15。生成所要請(qǐng)求的節(jié)點(diǎn)所屬的定義中作為輸入的第一個(gè)數(shù)據(jù)節(jié)點(diǎn)到所要請(qǐng)求的節(jié)點(diǎn)的方向?yàn)閺纳系较隆#?,假設(shè)此時(shí)node的上一個(gè)節(jié)點(diǎn)為nextNode,將nextNode置入inputSeq,設(shè)置nextNode與node的輸入輸出關(guān)系(參見(jiàn)圖2和表1,若node為DN16時(shí),設(shè)置的輸入輸出關(guān)系為:node為nextnode的輸出,即DN16為ON15的輸出)。最后將inputSeq所有節(jié)點(diǎn)置入queue,繼續(xù)下一個(gè)循環(huán)。若node為操作符結(jié)點(diǎn),則與其關(guān)聯(lián)為若干操作符節(jié)點(diǎn),所以要循環(huán)遍歷這些關(guān)聯(lián)的操作符節(jié)點(diǎn),以設(shè)置這些關(guān)聯(lián)的操作符節(jié)點(diǎn)與node的關(guān)聯(lián)關(guān)系,并將這些關(guān)聯(lián)的操作符節(jié)點(diǎn)置入inputSeq。此時(shí),由于node是操作符結(jié)點(diǎn),所以要將其置入seq,作為最終結(jié)果返回。若node已存在于seq中,則將其設(shè)置為隊(duì)列頭部,否則直接將其置入seq頭部。最后將inputSeq所有節(jié)點(diǎn)置入queue,繼續(xù)下一個(gè)循環(huán)。參見(jiàn)圖2,若所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)為DN16為例,按照?qǐng)D3所示的Mash-up節(jié)點(diǎn)序列算法的計(jì)算過(guò)程的中間狀態(tài)表格為:表1節(jié)點(diǎn)序列算法計(jì)算過(guò)程的中間狀態(tài)表完成初始化工作后,將所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)DN16插入queue中,因此,此時(shí)的queue不為空,從queue中取一個(gè)節(jié)點(diǎn)(即取DN16)并刪除該節(jié)點(diǎn),這個(gè)過(guò)程實(shí)際上是將DN16推入堆棧并將DN16從堆棧中推出(POPDN16),此時(shí),生成DN16的節(jié)點(diǎn)進(jìn)入堆棧(即ON15進(jìn)入堆棧)。下一步,將ON15推出堆棧,ON15的輸入節(jié)點(diǎn)DN13、DN14進(jìn)入堆棧,此時(shí)得知操作符節(jié)點(diǎn)為ON15,其輸入為DN13、DN14,其輸出為DN16。隨后,將DN13推出堆棧,則DN13的輸入節(jié)點(diǎn)ON11入堆棧,此時(shí)得知ON11為操作符節(jié)點(diǎn),其輸出為DN13。依次類推,將DN16所屬定義中的所有節(jié)點(diǎn)推入堆棧又推出,最終確定了生成DN16的節(jié)點(diǎn)序列為:ON1,ON5,ON6,ON7,ON11,ON12,ON15。也就是seq中存放的節(jié)點(diǎn)。所有與節(jié)點(diǎn)序列中的操作符節(jié)點(diǎn)關(guān)聯(lián)的數(shù)據(jù)節(jié)點(diǎn)都被關(guān)聯(lián)引用保存,從圖3可以發(fā)現(xiàn),這些數(shù)據(jù)節(jié)點(diǎn)沒(méi)有置入seq的操作。圖4為Mash-up引擎121執(zhí)行服務(wù)器端操作符節(jié)點(diǎn)的流程圖,如圖4所示,Mash-up引擎121取得生成所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)序列;創(chuàng)建并運(yùn)行上下文(context);取節(jié)點(diǎn)序列中的下一個(gè)操作符節(jié)點(diǎn),判斷該操作符節(jié)點(diǎn)是否為空,是則結(jié)束執(zhí)行,將執(zhí)行結(jié)果返回報(bào)表引擎112,若該操作符節(jié)點(diǎn)不為空,則初始化當(dāng)前操作符節(jié)點(diǎn)的輸入、輸出參數(shù);判斷該操作符節(jié)點(diǎn)是否為客戶端 操作符節(jié)點(diǎn),若是則將執(zhí)行結(jié)果以及包括客戶端操作符節(jié)點(diǎn)的剩余的節(jié)點(diǎn)序列返回報(bào)表引擎112,若否則執(zhí)行該操作符節(jié)點(diǎn),執(zhí)行后再取下一個(gè)操作符節(jié)點(diǎn),直至完成所有服務(wù)器端操作符節(jié)點(diǎn)的執(zhí)行。報(bào)表引擎112將執(zhí)行剩余的節(jié)點(diǎn)序列,最后一個(gè)操作符節(jié)點(diǎn)被執(zhí)行完成即可得到相關(guān)報(bào)表。本發(fā)明的報(bào)表生成系統(tǒng)100允許用戶或業(yè)務(wù)人員隨意根據(jù)自己的需要通過(guò)Mash-up編輯器111創(chuàng)建或刪除報(bào)表,不需要開(kāi)發(fā)人員參與;除平臺(tái)所支持操作符及數(shù)據(jù)源外,應(yīng)用或第三方開(kāi)發(fā)人員可遵循同樣的規(guī)則實(shí)現(xiàn)新操作符及數(shù)據(jù)源,因此功能及適用范圍可以功能擴(kuò)展。圖5為本發(fā)明的報(bào)表生成系統(tǒng)100第二實(shí)施例的系統(tǒng)框圖,如圖5所示,系統(tǒng)100還包括報(bào)表管理器122。報(bào)表管理器122用于接收請(qǐng)求信號(hào),對(duì)所要請(qǐng)求的最終數(shù)據(jù)節(jié)點(diǎn)的ID所屬的Mash-up定義進(jìn)行合法性驗(yàn)證,若通過(guò)驗(yàn)證,則將所要請(qǐng)求的最終數(shù)據(jù)節(jié)點(diǎn)的ID發(fā)送到所述Mash-up引擎121;若為通過(guò)驗(yàn)證,可忽略該請(qǐng)求和/或提示進(jìn)行修復(fù)。在本實(shí)施例中,其余情況與本發(fā)明系統(tǒng)100第一實(shí)施例相同,在此不再贅述。圖6為本發(fā)明的報(bào)表生成方法第一實(shí)施例的流程圖,如圖6所示,在本實(shí)施例中,本發(fā)明的方法包括以下步驟:S1、通過(guò)設(shè)置在客戶端110的Mash-up編輯器111生成報(bào)表的Mash-up定義,所述Mash-up定義包括直接或間接關(guān)聯(lián)的數(shù)據(jù)節(jié)點(diǎn)和操作符節(jié)點(diǎn),并為所述Mash-up定義中的各節(jié)點(diǎn)分配ID,將所述Mash-up定義保存到服務(wù)器120;其中,所述操作符節(jié)點(diǎn)用于運(yùn)行業(yè)務(wù)邏輯,所述數(shù)據(jù)節(jié)點(diǎn)為所述操作符節(jié)點(diǎn)運(yùn)行相應(yīng)業(yè)務(wù)邏輯所需的數(shù)據(jù)輸入以及相應(yīng)的數(shù)據(jù)輸出;S2、通過(guò)設(shè)置在客戶端110的報(bào)表引擎112,向服務(wù)器120發(fā)送請(qǐng)求信息,所述請(qǐng)求信息包括所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的ID;S3、通過(guò)設(shè)置在服務(wù)器120端的Mash-up引擎121查詢所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的ID所屬的Mash-up定義,根據(jù)查詢到的Mash-up定義構(gòu)建生成所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)序列,執(zhí)行所述節(jié)點(diǎn)序列中的操作符節(jié)點(diǎn),并將執(zhí)行結(jié)果返回所述報(bào)表引擎112。其中,步驟S3包括以下步驟:S3a、Mash-up引擎121查詢所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的ID所屬的Mash-up定義;S3b、Mash-up引擎121確定查詢到的Mash-up定義中與所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)直接或間接關(guān)聯(lián)的所有節(jié)點(diǎn);S3c、所述Mash-up引擎121按照?qǐng)?zhí)行順序?qū)⒋_定的所有節(jié)點(diǎn)中的操作符節(jié)點(diǎn)構(gòu)建成生成所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)序列,確定的所有節(jié)點(diǎn)中的數(shù)據(jù)節(jié)點(diǎn)作為操作符節(jié)點(diǎn)的關(guān)聯(lián)引用保存;S3d、Mash-up引擎121執(zhí)行所述節(jié)點(diǎn)序列中的操作符節(jié)點(diǎn),并將執(zhí)行結(jié)果返回所述報(bào)表引擎112。圖7為本發(fā)明的報(bào)表生成方法第二實(shí)施例的流程圖,如圖7所示,在本實(shí)施例中,在步驟S2和S3之間還包括步驟:S4、通過(guò)設(shè)置在服務(wù)器120端的報(bào)表管理器122接收所述請(qǐng)求信息,對(duì)所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的ID所屬的Mash-up定義進(jìn)行合法性驗(yàn)證,若通過(guò)驗(yàn)證,則將所要請(qǐng)求的數(shù)據(jù)節(jié)點(diǎn)的ID發(fā)送到Mash-up引擎121。在本實(shí)施例中,所述節(jié)點(diǎn)序列中的操作符節(jié)點(diǎn)包括服務(wù)器端操作符節(jié)點(diǎn)和客戶端操作符節(jié)點(diǎn),步驟S3d中,Mash-up引擎121執(zhí)行服務(wù)器端操作符節(jié)點(diǎn),并將執(zhí)行結(jié)果、以及包括所述客戶端操作符節(jié)點(diǎn)的剩余的節(jié)點(diǎn)序列發(fā)送到報(bào)表引擎112。本發(fā)明的方法還包括步驟:S5、報(bào)表引擎112執(zhí)行節(jié)點(diǎn)序列中的所述客戶端操作符節(jié)點(diǎn)。在本實(shí)施例中,所述客戶端操作符節(jié)點(diǎn)運(yùn)行的業(yè)務(wù)邏輯包括根據(jù)用戶指定條件處理Mash-up引擎121返回的執(zhí)行結(jié)果和/或繪制報(bào)表。在本實(shí)施例中,其余情況與本發(fā)明的方法的第一實(shí)施例相同,在此不再贅述。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的權(quán)利要求范圍之內(nèi)。另外,本發(fā)明各實(shí)施例中的技術(shù)特征可以單獨(dú)使用,也可以組合使用。
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
崇信县| 开封县| 巧家县| 永州市| 梁平县| 许昌市| 三亚市| 靖边县| 平湖市| 清水县| 临夏市| 宝山区| 五常市| 武鸣县| 濉溪县| 云阳县| 凉城县| 大化| 商都县| 长宁区| 龙口市| 丹巴县| 德庆县| 平乡县| 蒙阴县| 安化县| 雷州市| 益阳市| 报价| 湄潭县| 克什克腾旗| 靖江市| 汾阳市| 泸西县| 张北县| 富宁县| 宕昌县| 兰坪| 承德县| 金堂县| 射阳县|