專利名稱::一種生成報(bào)表的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計(jì)算機(jī)軟件領(lǐng)域,更具體地說,涉及一種生成報(bào)表的方法及系統(tǒng)。
背景技術(shù):
:目前報(bào)表生成所采用的技術(shù),均為界面設(shè)計(jì),首先根據(jù)所要設(shè)計(jì)報(bào)表的特點(diǎn),選擇不同的報(bào)表類型,進(jìn)行一些初始化設(shè)置;然后利用報(bào)表軟件提供的界面,設(shè)計(jì)報(bào)表模型。在現(xiàn)有技術(shù)的方案中采用界面設(shè)計(jì)報(bào)表模型,再加載報(bào)表模型,展現(xiàn)出實(shí)際的報(bào)表。比如現(xiàn)有技術(shù)的方案中采用類似Excel報(bào)表設(shè)計(jì)模型(常用的報(bào)表軟件如水晶報(bào)表、潤乾報(bào)表等均采用這種形式),在處理復(fù)雜報(bào)表(復(fù)合報(bào)表等)設(shè)計(jì)時(shí),界面設(shè)計(jì)簡(jiǎn)潔,具有一定優(yōu)勢(shì);但在處理簡(jiǎn)單報(bào)表以及格式相對(duì)固定的報(bào)表時(shí),由于現(xiàn)有技術(shù)為界面設(shè)計(jì)報(bào)表模型,所以必須利用專門的軟件來或利用WEB方式來設(shè)計(jì)報(bào)表模型開發(fā)報(bào)表,在需要轉(zhuǎn)換報(bào)表類型時(shí)操作比較復(fù)雜,所以開發(fā)效率較低,重復(fù)性工作較多。
發(fā)明內(nèi)容有鑒于此,本發(fā)明實(shí)施例提供了一種使用腳本語言生成報(bào)表的方法及系統(tǒng),以實(shí)現(xiàn)方便高效的開發(fā)表報(bào)。為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供了如下技術(shù)方案—種生成報(bào)表的方法,包括步驟使用腳本語言定制報(bào)表指令并將所述定制報(bào)表指令加以封裝,形成定制報(bào)表指令集;為所需的各個(gè)類型報(bào)表及其典型應(yīng)用編寫DSL模板,所述DSL模板為通過腳本語言使用所述指令集中的指令編寫形成的報(bào)表指令文件;通過解析程序分析所需的DSL模板,以分析后的結(jié)果生成報(bào)表。優(yōu)選的,在本發(fā)明實(shí)施例所述方法中,所述腳本語言為Groovy、JavaScript、Ruby或VbScript。優(yōu)選的,在本發(fā)明實(shí)施例所述方法中,所述腳本語言使用Uedit編輯器或Windows中的記事本程序作為編輯。優(yōu)選的,在本發(fā)明實(shí)施例所述方法中,所述定制報(bào)表指令包括方法指令和屬性指令。優(yōu)選的,在本發(fā)明實(shí)施例所述方法中,所述方法指令內(nèi)可以包含子方法指令;所述屬性指令可以包含屬性節(jié)點(diǎn)。—種生成報(bào)表的系統(tǒng),包括定制報(bào)表指令集形成裝置,用于使用腳本語言定制報(bào)表指令并將所述定制報(bào)表指令加以封裝,形成定制報(bào)表指令集;DSL模板報(bào)表定義裝置,用于為所需的各個(gè)類型報(bào)表及其典型應(yīng)用編寫DSL模板,所述DSL模板為通過腳本語言使用所述指令集中的指令編寫形成的報(bào)表指令文件;DSL報(bào)表指令解析裝置,用于通過解析程序分析所需的DSL模板,以分析后的結(jié)果生成報(bào)表。優(yōu)選的,在本發(fā)明實(shí)施例所述系統(tǒng)中,所述腳本語言為Groovy、JavaScript、Ruby或VbScript。優(yōu)選的,在本發(fā)明實(shí)施例所述系統(tǒng)中,所述腳本語言使用Uedit編輯器或Windows中的記事本程序作為編輯。優(yōu)選的,在本發(fā)明實(shí)施例所述系統(tǒng)中,所述定制報(bào)表指令包括方法指令和屬性指令。優(yōu)選的,在本發(fā)明實(shí)施例所述系統(tǒng)中,所述方法指令內(nèi)可以包含子方法指令;所述屬性指令可以包含屬性節(jié)點(diǎn)。通過以上技術(shù)方案可以看出,在本發(fā)明實(shí)施例的方法或系統(tǒng)中,通過腳本語言編寫專門用于生成報(bào)表的DSL,并采用模版報(bào)表的設(shè)計(jì)思路,從而使得報(bào)表的設(shè)計(jì)人員可以不用具備良好的編程能力的情況下,通過簡(jiǎn)單的學(xué)習(xí)后就可以用諸如Windows中的記事本或Uedit編輯器等來編寫簡(jiǎn)潔的代碼來高效的完成報(bào)表的設(shè)計(jì)。解決了現(xiàn)有技術(shù)中在處理簡(jiǎn)單報(bào)表以及格式相對(duì)固定的報(bào)表時(shí),必須利用專門的軟件來或利用WEB方式來設(shè)計(jì)報(bào)表模型生成報(bào)表,在需要轉(zhuǎn)換報(bào)表類型時(shí)操作比較復(fù)雜,所以開發(fā)效率較低,重復(fù)性工作較多的技術(shù)問題。為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例中所述方法的步驟流程圖;圖2為本發(fā)明實(shí)施例中所述系統(tǒng)的組成示意圖。具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。為了能夠更好的理解本發(fā)明實(shí)施例,以下是對(duì)本發(fā)明實(shí)施例中應(yīng)用到的一些技術(shù)內(nèi)容所作的相應(yīng)說明DSL(domainspecificlanguage),即領(lǐng)域?qū)S谜Z言,其基本思想是求專不求全,不像通用目的語言那樣目標(biāo)范圍涵蓋一切軟件問題,而是專門針對(duì)某一特定問題的計(jì)算機(jī)語言。它是具有針對(duì)某一領(lǐng)域的特點(diǎn)量身定制的用來完成特定功能的一種編程語言。其特點(diǎn)是其功能具有很強(qiáng)的針對(duì)性、代碼簡(jiǎn)潔且簡(jiǎn)單易學(xué)。腳本語言,即腳本語言或其擴(kuò)建的語言,又叫動(dòng)態(tài)語言。是一種編程語言控制軟件應(yīng)用程序。它的執(zhí)行獨(dú)立于任何其他的應(yīng)用。它可以不需要安裝任何專門軟件就可以在諸4如WINDOWS中自帶的記事本等文本編輯器中完成程序的開發(fā)。報(bào)表模板、報(bào)表模板可以被認(rèn)為是原始報(bào)表中的數(shù)據(jù)和模板報(bào)表布局之間的關(guān)聯(lián)。模板中包含了基本結(jié)構(gòu),當(dāng)相應(yīng)字段被添加到報(bào)表時(shí),可以相應(yīng)的格式予以顯示和格式化報(bào)表。報(bào)表模板實(shí)際上是通常的報(bào)表文件。這意味著你能夠使用事實(shí)上任何的報(bào)表文件作為報(bào)表模板。模板能夠被應(yīng)用到其它報(bào)表,所以它們的格式化和布局能夠用作其它報(bào)表的基礎(chǔ)。把模板應(yīng)用到其它報(bào)表,布局等格式化將被應(yīng)用到報(bào)表。模板能夠存儲(chǔ)許多類型的對(duì)象。報(bào)表設(shè)計(jì)過程中的集中數(shù)據(jù)部分完成后,這些對(duì)象能夠被應(yīng)用到報(bào)表。這種方式可以節(jié)約大量的重復(fù)性勞動(dòng),有效的提高開發(fā)效率。本發(fā)明公開了一種使用腳本語言的DSL生成報(bào)表的方法,以實(shí)現(xiàn)方便高效的生成表報(bào)。通過腳本語言編寫專門用于生成報(bào)表的DSL,并采用模版報(bào)表的設(shè)計(jì)思路,從而使得報(bào)表的設(shè)計(jì)人員可以不用具備良好的編程能力的情況下,通過簡(jiǎn)單的學(xué)習(xí)后就可以使用諸如Windows中的記事本或Uedit編輯器等來編寫簡(jiǎn)潔的代碼來高效的完成報(bào)表的設(shè)計(jì)。本發(fā)明實(shí)施例中的腳本語言可以是JavaScript、VbScript、Ruby或Groovy等計(jì)算機(jī)腳本編程語言。圖1為本發(fā)明實(shí)施例中所述方法的步驟流程圖。以下根據(jù)圖1所示并以Groovy腳本語言為例來說明本發(fā)明實(shí)施例方法的具體步驟步驟Sll、定制報(bào)表指令,形成定制報(bào)表指令集。本發(fā)明實(shí)施例使用腳本語言Groovy定制報(bào)表指令,根據(jù)要實(shí)現(xiàn)的報(bào)表特點(diǎn),定制報(bào)表指令。再利用腳本語言Groovy將定制的報(bào)表指令加以封裝,形成所需的報(bào)表指令集。所述指令可以包括方法指令和屬性指令對(duì)應(yīng)。方法指令內(nèi)可以包含子方法指令,而屬性指令內(nèi)不含任何子指令,屬性指令可包含屬性節(jié)點(diǎn)。比如,在使用Groovy腳本語言為開發(fā)語言時(shí),方法指令可以歸類如表1所示表1<table>tableseeoriginaldocumentpage5</column></row><table>方法指令名稱指令作用order排序指令group分組指令屬性指令可以歸類如表2所示表2屬性指令名稱所屬方法指令指令作用createreport/table定義報(bào)表屬性參數(shù)iddata數(shù)據(jù)源名稱dsdata數(shù)據(jù)源標(biāo)識(shí)sqldatasql語句bindingtable定義綁定區(qū)域sortFieldorder排序字段sortAscendingorder是否為升序groupFieldgroup分組字段headergroup分組字段的組頭行數(shù)footergroup分組字段的組腳行數(shù)cellrow報(bào)表單元格的內(nèi)容leftrow報(bào)表單元格所在列heightrow報(bào)表單元格占的行數(shù)widthrow報(bào)表單元格占的列數(shù)包含屬性節(jié)點(diǎn)的屬性指令可以如表3所示表36<table>tableseeoriginaldocumentpage7</column></row><table>復(fù)性勞動(dòng),有效的提高開發(fā)效率。以下為在使用Groovy腳本語言為開發(fā)語言時(shí)縱向報(bào)表DSL具體實(shí)現(xiàn)的實(shí)例當(dāng)只加入一個(gè)數(shù)據(jù)源,將數(shù)據(jù)源以報(bào)表形式展示時(shí),可以用以下代碼實(shí)現(xiàn)report{data{id'datal'ds'dbl'sql'select襯romschoolmates'initU帶排序及分組縱向報(bào)表可以用以下代碼實(shí)現(xiàn)report{createtitle:'測(cè)試報(bào)表',row:2,col:3data{id'cktel'ds'dbl'sql'select*fromschoolmates'table{createtype:'vextend',dataID:'datal',top:1,left:1,height:2,width:3bindingtop:2,left:1,height:1,width:3order{sortField'F:icTsortAscendingOgroup{groupField'F:city','F:name'row{cell'學(xué)號(hào)','城市','姓名'row{cell'F:icT,'F:city','F:name'8init{}步驟S13、解析DSL報(bào)表指令文件,并以報(bào)表形式展現(xiàn)。解析DSL報(bào)表指令文件。參考所述DSL模板報(bào)表,完成編寫報(bào)表指令文件后,就可以通過專門編寫的解析程序自動(dòng)化分析報(bào)表指令文件,并將分析后的結(jié)果以報(bào)表形式展現(xiàn)出來。此外,本發(fā)明實(shí)施例還公開了一種使用腳本語言的DSL生成報(bào)表的系統(tǒng),包括定制報(bào)表指令集形成裝置,DSL模板報(bào)表定義裝置2和DSL報(bào)表指令解析裝置3。本發(fā)明實(shí)施例通過腳本語言編寫專門用于開發(fā)報(bào)表的DSL,并采用模版報(bào)表的設(shè)計(jì)思路,從而使得報(bào)表的設(shè)計(jì)人員可以不用具備良好的編程能力的情況下,通過簡(jiǎn)單的學(xué)習(xí)后就可以使用諸如Windows中的記事本或Uedit編輯器等來編寫簡(jiǎn)潔的代碼來高效的完成報(bào)表的設(shè)計(jì)。本發(fā)明實(shí)施例中的腳本語言可以是JavaScript、VbScript、Ruby或Groovy等計(jì)算機(jī)腳本編程語言。圖2為本發(fā)明實(shí)施例中所述系統(tǒng)的組成示意圖。以下根據(jù)圖2所示并以Groovy腳本語言為例來說明本發(fā)明實(shí)施例系統(tǒng)的具體結(jié)構(gòu)定制報(bào)表指令集形成裝置,DSL模板報(bào)表定義裝置2和DSL報(bào)表指令解析裝置3,定制報(bào)表指令集形成裝置1,用于使用腳本語言定制報(bào)表指令并將所述定制報(bào)表指令加以封裝,形成定制報(bào)表指令集;本發(fā)明實(shí)施例中,所述定制報(bào)表指令集形成裝置1使用腳本語言Groovy定制報(bào)表指令,根據(jù)要實(shí)現(xiàn)的報(bào)表特點(diǎn),定制報(bào)表指令。再利用腳本語言Groovy將定制的報(bào)表指令加以封裝,形成所需的報(bào)表指令集。所述指令可以包括方法指令和屬性指令對(duì)應(yīng)。方法指令內(nèi)可以包含子方法指令,而屬性指令內(nèi)不含任何子指令,屬性指令可包含屬性節(jié)點(diǎn)。比如,在使用Groovy腳本語言為開發(fā)語言時(shí),方法指令可以歸類如表4所示表4<table>tableseeoriginaldocumentpage9</column></row><table>方法指令名稱指令作用row定義報(bào)表的一行style定義樣式init初始化指令order排序指令group分組指令屬性指令可以歸類如表5所示表5屬性指令名稱所屬方法指令指令作用createreport/table定義報(bào)表屬性參數(shù)iddata數(shù)據(jù)源名稱dsdata數(shù)據(jù)源標(biāo)識(shí)sqldatasql語句bindingtable定義綁定區(qū)域sortFieldorder排序字段sortAscendingorder是否為升序groupFieldgroup分組字段headergroup分組字段的組頭行數(shù)footergroup分組字段的組腳行數(shù)cellrow報(bào)表單元格的內(nèi)容leftrow報(bào)表單元格所在列heightrow報(bào)表單元格占的行數(shù)widthrow報(bào)表單元格占的列數(shù)10包含屬性節(jié)點(diǎn)的屬性指令可以如表6所示表6屬性指令名稱所屬方法指令屬性節(jié)點(diǎn)名稱屬性節(jié)點(diǎn)作用title報(bào)表名稱type報(bào)表類型encoding編碼才各式creat6reportrow報(bào)表占的行數(shù)col報(bào)表占的列數(shù)height行高width列寬createtabletype子表類型style子表擴(kuò)展方式,僅用于固定行列報(bào)表dataID引用數(shù)據(jù)源的名稱top子表起始行l(wèi)eft子表起始列height子表共占的行數(shù)width子表共占的列數(shù)top綁定區(qū)域起始行bindingtableleft綁定區(qū)域起始列height綁定區(qū)域占的行數(shù)width綁定區(qū)域占的列數(shù)11DSL模板報(bào)表定義裝置2,用于使用腳本語言編寫定制模板報(bào)表形成報(bào)表指令文件,定義DSL模板報(bào)表;所述DSL模板報(bào)表定義裝置2根據(jù)不同類型的報(bào)表,例如固定行列報(bào)表、縱向擴(kuò)展報(bào)表等具體報(bào)表類型,以及典型的應(yīng)用場(chǎng)景形成報(bào)表指令文件,定義DSL模板報(bào)表,所述DSL模板報(bào)表覆蓋各具體類型報(bào)表及其典型應(yīng)用。通過定義能夠被應(yīng)用到其它報(bào)表的DSL模板報(bào)表,可以節(jié)約大量的重復(fù)性勞動(dòng),有效的提高開發(fā)效率。以下為在使用Groovy腳本語言為開發(fā)語言時(shí)縱向報(bào)表DSL具體實(shí)現(xiàn)的實(shí)例當(dāng)只加入一個(gè)數(shù)據(jù)源,將數(shù)據(jù)源以報(bào)表形式展示時(shí),可以用以下代碼實(shí)現(xiàn)report{data{id'datal'ds'dbl'sql'select襯romschoolmates'initU帶排序及分組縱向報(bào)表可以用以下代碼實(shí)現(xiàn)12report{createtitle:'測(cè)i式手艮表',row:2,col:3data{id'cktel'ds'dbl'sql'select*fromschoolmates'table{createtype:'vextend',dataID:'datal',top:1,left:1,height:2,width:3bindingtop:2,left:1,height:1,width:3order{sortField'F:id'sortAscendingOgroup{groupField'F:city','F:name'row{cell'學(xué)號(hào)','城市','姓名'row{cell'F:id','F:city','F:name'init{}DSL報(bào)表指令解析裝置3,用于通過專門編寫的解析程序自動(dòng)化分析報(bào)表指令文件,并將分析后的結(jié)果以報(bào)表形式展現(xiàn)出來。所述DSL報(bào)表指令解析裝置3解析DSL報(bào)表指令文件。參考所述DSL模板報(bào)表,完成編寫報(bào)表指令文件后,就可以通過專門編寫的解析程序自動(dòng)化分析報(bào)表指令文件,并將分析后的結(jié)果以報(bào)表形式展現(xiàn)出來。需要說明的是,本
技術(shù)領(lǐng)域:
人員可以理解,在本發(fā)明實(shí)施例中用于生成報(bào)表的腳本語言可以是除本發(fā)明實(shí)施例中所提供的幾種腳本語言以外的其它類型的可以適用的腳本語言。在本發(fā)明實(shí)施例中用來生成報(bào)表的腳本語言所用到的編輯器也可以是除本發(fā)明實(shí)施例中所提供的幾種腳本語言編輯器以外的其它類型的可以適用的腳本語言編輯器。綜上所述,在本發(fā)明實(shí)施例中,通過腳本語言編寫專門用于生成報(bào)表的DSL,并采用模版報(bào)表的設(shè)計(jì)思路,從而使得報(bào)表的設(shè)計(jì)人員可以不用具備良好的編程能力的情況下,通過簡(jiǎn)單的學(xué)習(xí)后就可以用諸如Windows中的記事本或Uedit編輯器等來編寫簡(jiǎn)潔的代碼來高效的完成報(bào)表的設(shè)計(jì)。解決了現(xiàn)有技術(shù)中在處理簡(jiǎn)單報(bào)表以及格式相對(duì)固定的報(bào)表時(shí),必須利用專門的軟件來或利用WEB方式來設(shè)計(jì)報(bào)表模型生成報(bào)表,在需要轉(zhuǎn)換報(bào)表類型時(shí)操作比較復(fù)雜,所以開發(fā)效率較低,重復(fù)性工作較多的技術(shù)問題。本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。1權(quán)利要求一種生成報(bào)表的方法,其特征在于,包括步驟使用腳本語言定制報(bào)表指令并將所述定制報(bào)表指令加以封裝,形成定制報(bào)表指令集;為所需的各個(gè)類型報(bào)表及其典型應(yīng)用編寫DSL模板,所述DSL模板為通過腳本語言使用所述指令集中的指令編寫形成的報(bào)表指令文件;通過解析程序分析所需的DSL模板,以分析后的結(jié)果生成報(bào)表。2.根據(jù)權(quán)利要求1所述方法,其特征在于,所述腳本語言為Groovy、JavaScript、Ruby或VbScript。3.根據(jù)權(quán)利要求1或2中所述方法,其特征在于,所述腳本語言使用Uedit編輯器或Windows中的記事本程序作為編輯。4.根據(jù)權(quán)利要求1或2中所述方法,其特征在于,所述定制報(bào)表指令包括方法指令和屬性指令。5.根據(jù)權(quán)利要求4所述方法,其特征在于,所述方法指令內(nèi)包含子方法指令;所述屬性指令包含屬性節(jié)點(diǎn)。6.—種生成報(bào)表的系統(tǒng),其特征在于,包括定制報(bào)表指令集形成裝置,用于使用腳本語言定制報(bào)表指令并將所述定制報(bào)表指令加以封裝,形成定制報(bào)表指令集;DSL模板報(bào)表定義裝置,用于為所需的各個(gè)類型報(bào)表及其典型應(yīng)用編寫DSL模板,所述DSL模板為通過腳本語言使用所述指令集中的指令編寫形成的報(bào)表指令文件;DSL報(bào)表指令解析裝置,用于通過解析程序分析所需的DSL模板,以分析后的結(jié)果生成報(bào)表。7.根據(jù)權(quán)利要求6所述系統(tǒng),其特征在于,所述腳本語言為Groovy、JavaScript、Ruby或VbScript。8.根據(jù)權(quán)利要求6或7中所述系統(tǒng),其特征在于,所述腳本語言使用Uedit編輯器或Windows中的記事本程序作為編輯。9.根據(jù)權(quán)利要求6或7中所述系統(tǒng),其特征在于,所述定制報(bào)表指令包括方法指令和屬性指令。10.根據(jù)權(quán)利要求9所述系統(tǒng),其特征在于,所述方法指令內(nèi)包含子方法指令;所述屬性指令包含屬性節(jié)點(diǎn)。全文摘要本發(fā)明實(shí)施例公開了一種使用腳本語言生成報(bào)表的方法及系統(tǒng),包括步驟使用腳本語言定制報(bào)表指令并將所述定制報(bào)表指令加以封裝,形成定制報(bào)表指令集;使用腳本語言編寫定制模板報(bào)表,定義DSL模板報(bào)表;解析DSL報(bào)表指令文件,通過專門編寫的解析程序自動(dòng)化分析報(bào)表指令文件,并將分析后的結(jié)果以報(bào)表形式展現(xiàn)出來。本發(fā)明實(shí)施例中的技術(shù)方案不必利用專門的軟件來或利用WEB方式來設(shè)計(jì)報(bào)表模型開發(fā)報(bào)表,而且在需要轉(zhuǎn)換報(bào)表類型時(shí)操作簡(jiǎn)單,從而開發(fā)效率高,重復(fù)性工作少。文檔編號(hào)G06F9/44GK101706722SQ20091024972公開日2010年5月12日申請(qǐng)日期2009年12月1日優(yōu)先權(quán)日2009年12月1日發(fā)明者車帥,陳軍營申請(qǐng)人:山東中創(chuàng)軟件工程股份有限公司;山東中創(chuàng)軟件商用中間件股份有限公司