專(zhuān)利名稱(chēng):一種基于模板的軟件自動(dòng)生成方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件代碼生成的信息處理技術(shù),尤其是涉及一種基于模板上添置自定義控 件和設(shè)置Xml文件來(lái)實(shí)現(xiàn)對(duì)處理表單或數(shù)據(jù)列表的模板進(jìn)行自動(dòng)功能軟件生成的方法。
背景技術(shù):
從目前的情況來(lái)看,軟件開(kāi)發(fā)的速度緩慢、代價(jià)高昂而又極易出錯(cuò),常常會(huì)生產(chǎn)出存 在大量缺陷的產(chǎn)品,在可用性、可靠性、性能、安全以及其他服務(wù)質(zhì)量方面造成嚴(yán)重的問(wèn)題。根據(jù)Standish Group [Sta9引的統(tǒng)計(jì),美國(guó)公司每年投資約175,000個(gè)軟件開(kāi)發(fā)項(xiàng)目, 投資額約為2,500億美元。這些項(xiàng)目中只有16%能夠在預(yù)算內(nèi)按計(jì)劃完成。另有31% 的項(xiàng)目主要由于質(zhì)量問(wèn)題而被取消,經(jīng)濟(jì)損失約為810億美元。另外53%的項(xiàng)目平均 超出預(yù)算189%,經(jīng)濟(jì)損失約為590億美元。完成的項(xiàng)目平均只實(shí)現(xiàn)了原來(lái)規(guī)劃的功能 的42%。這些數(shù)字客觀地印證了我們根據(jù)經(jīng)驗(yàn)所做出的判斷,那就是軟件開(kāi)發(fā)是一項(xiàng)勞動(dòng)密集 型的產(chǎn)業(yè),它創(chuàng)造每一美元的價(jià)值所消耗的人力資本超過(guò)了我們對(duì)于一個(gè)現(xiàn)代化行業(yè)的期 望值。因此,如何提高軟件的開(kāi)發(fā)效率,節(jié)約軟件開(kāi)發(fā)成本,成為當(dāng)前軟件行業(yè)熱烈討論且 急需解決的問(wèn)題之一。發(fā)明內(nèi)容本發(fā)明的目的是提出一種基于模板上添置自定義控件和設(shè)置Xml文件來(lái)實(shí)現(xiàn)對(duì)處理 表單或數(shù)據(jù)列表的模板進(jìn)行自動(dòng)功能軟件生成的方法,以實(shí)現(xiàn)軟件常M^功能的自動(dòng)生成, 使軟件開(kāi)發(fā)人員從編寫(xiě)代碼的工作中得以解脫,從而提高軟件開(kāi)發(fā)效率和降低軟件開(kāi)發(fā)成 本。為解決本發(fā)明的技術(shù)問(wèn)題,本發(fā)明公開(kāi)一種基于模板的軟件自動(dòng)生成方法,其包括步驟a、 新增一個(gè)處理表單或數(shù)據(jù)列表的模板;b、 在模板上設(shè)置需要進(jìn)行操作處理的數(shù)據(jù)源的信息;c、 模板檢索其上設(shè)置的各種信息,根據(jù)檢索獲得的信息自動(dòng)組合生成對(duì)表單或數(shù)據(jù)列 表進(jìn)行處理的SQL語(yǔ)句,并通過(guò)生成自動(dòng)調(diào)用SQL語(yǔ)句的代碼來(lái)自動(dòng)生成處理表單或數(shù) 據(jù)列表的功能軟件。較優(yōu)的,步驟c之前還包括在模板上添置與模板對(duì)數(shù)據(jù)源進(jìn)行操作的自定義控件,
并設(shè)置自定義控件與數(shù)據(jù)源相關(guān)聯(lián)的屬性信息。較優(yōu)的,所述模板為對(duì)表單進(jìn)行處理的表單模板;步驟b包括 bl、在表單模板上添置的數(shù)據(jù)源自定義控件; b2、設(shè)置該數(shù)據(jù)源自定義控件的屬性信息;其中,步驟b2中的屬性信息包括用于指定數(shù)據(jù)源的關(guān)鍵字的名稱(chēng)的關(guān)鍵名稱(chēng)屬性, 以及用于確定數(shù)據(jù)源自定義控件具體對(duì)哪個(gè)表或視圖進(jìn)行操作的數(shù)據(jù)源屬性。 較優(yōu)的,所述模板為處理數(shù)據(jù)列表的數(shù)據(jù)列表模板;步驟b包括 bl、新增用于記錄數(shù)據(jù)列表信息且與數(shù)據(jù)列表模板映射的Xml文件; b2、在Xml文件中設(shè)置數(shù)據(jù)源的單元格屬性信息。較優(yōu)的,所述單元格屬性信息包括表示單元格的標(biāo)題的屬性信息、表示對(duì)應(yīng)數(shù)據(jù)源 的字段名稱(chēng)的屬性信息、表示單元格是否可見(jiàn)的屬性信息、表示單元格是否為只讀的屬性 信息、表示單元格的顯示模式為文本框或復(fù)選框或下拉列表或圖像或按鈕的屬性信息、表 示數(shù)據(jù)類(lèi)型的屬性信息、表示單元格長(zhǎng)度的屬性信息或表示文本框內(nèi)容的正則表達(dá)式規(guī)則 的屬性信息。較優(yōu)的,所述模4反為處理多個(gè)相互關(guān)聯(lián)的數(shù)據(jù)表的多表操作模板;步驟b包括在多表操作模板上添置2個(gè)分別用于決定每個(gè)數(shù)據(jù)源是表單表達(dá)方式還是數(shù)據(jù)列表表達(dá)方式的自定義控件,并設(shè)置該2個(gè)自定義控件的屬性來(lái)設(shè)置多個(gè)數(shù)據(jù)表的關(guān)聯(lián)性;且步驟b之前還包括判斷多表操作模板是否采用TabControl選項(xiàng)卡控件來(lái)組織頁(yè)面, 若是,則需要進(jìn)一步獲取當(dāng)前的Tabltem選項(xiàng)卡控件的信息。 與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果本發(fā)明的技術(shù)關(guān)鍵是模板技術(shù),通過(guò)拖拉自定義控件和設(shè)置自定義控件的屬性和Xml 文件信息來(lái)實(shí)現(xiàn)軟件開(kāi)發(fā)中常用功能(比如新增、刪除、修改、查詢(xún)、翻頁(yè)等)的自動(dòng) 軟件生成。因此,本發(fā)明主要用于協(xié)助軟件開(kāi)發(fā),可以大大降低軟件開(kāi)發(fā)成本和開(kāi)發(fā)風(fēng)險(xiǎn), 提高軟件開(kāi)發(fā)速度和產(chǎn)品的品質(zhì);且使軟件開(kāi)發(fā)工作簡(jiǎn)單化,在一定程度上降低了對(duì)軟件 開(kāi)發(fā)人員的技術(shù)知識(shí)的要求,從而有利于軟件開(kāi)發(fā)工作大眾化,節(jié)約人力成本。
圖1是本發(fā)明第一實(shí)施例的流程示意圖 圖2是本發(fā)明第二實(shí)施例的流程示意圖 圖3是本發(fā)明第三實(shí)施例的流程示意圖具體實(shí)施方式
本發(fā)明的技術(shù)關(guān)鍵是模板技術(shù),通過(guò)拖拉自定義控件和設(shè)置自定義控件的屬性和Xml 文件信息來(lái)實(shí)現(xiàn)軟件開(kāi)發(fā)中常用功能(比如新增、刪除、修改、查詢(xún)和翻頁(yè)等)的自動(dòng) 軟件生成。如圖1所示。本實(shí)施例為利用表單模板(FormTemplate)實(shí)現(xiàn)軟件自動(dòng)生成,無(wú)需軟
件開(kāi)發(fā)人員寫(xiě)任何代碼,可實(shí)現(xiàn)對(duì)數(shù)據(jù)源的新增、修改、刪除、查詢(xún)、翻頁(yè)等軟件操作功能。其中,F(xiàn)ormTemplate用來(lái)對(duì)表單(Form)進(jìn)行處理。本實(shí)施例的工作原理是檢索表單 模板上的自定義控件信息,并通過(guò)這些信息進(jìn)行關(guān)聯(lián)設(shè)置之后來(lái)完成一些特定的功能。本 實(shí)施例包括如下步驟步驟S110、在軟件的編程環(huán)境下,新增一個(gè)表單模板。步驟S120、從工具箱選擇需要的數(shù)據(jù)源自定義控件并拖到FormTemplate上,并設(shè)置該 數(shù)據(jù)源自定義控件的屬性,該屬性包括用于確定對(duì)哪個(gè)表格(Table)或視圖(View)進(jìn) 行操作的數(shù)據(jù)源屬性(DataSource)和用于指定數(shù)據(jù)源的關(guān)鍵字的名稱(chēng)的關(guān)鍵名稱(chēng)屬性 (DatakeyNames )。步驟S130、根據(jù)數(shù)據(jù)源在表單上的表現(xiàn)方式,根據(jù)實(shí)際需要拖其它的自定義控件到表 單模板,并設(shè)置其與數(shù)據(jù)源對(duì)應(yīng)的字段名稱(chēng)和數(shù)據(jù)類(lèi)型等相關(guān)的信息。比如,如果數(shù)據(jù)源在表單上的表現(xiàn)方式為文本框組件(TextBox),則拖至表單模板上 的其他自定義控件可以設(shè)置Datafield屬性(用于表示其與數(shù)據(jù)源對(duì)應(yīng)的字段名稱(chēng))、DbType 屬性(用于表示字段的數(shù)據(jù)類(lèi)型)、Regex屬性(用于表示文本框組件中文本的正則表達(dá)式 規(guī)則)。如果數(shù)據(jù)源在表單上的表現(xiàn)方式為下拉列表(ComboBox或DropDownlist ),拖至表單 模板上的其他自定義控件可以設(shè)置Datafield屬性、DbType屬性、TableOrView屬性(用于 表示要綁定到ComboBox的數(shù)據(jù)源名稱(chēng))等。步驟S140、表單模板檢索上面的自定義控件的信息,并獲取每個(gè)自定義控件的相關(guān)信 息,包括數(shù)據(jù)源、數(shù)據(jù)源字段、數(shù)據(jù)源數(shù)據(jù)類(lèi)型等等。步驟Sl50、表單模板根據(jù)檢索到的每個(gè)自定義控件的相關(guān)信息,自動(dòng)生成完成對(duì)數(shù)據(jù) 源的新增、修改、刪除、查詢(xún)、翻頁(yè)等功能的SQL語(yǔ)句,并通過(guò)生成自動(dòng)調(diào)用SQL語(yǔ)句 的代碼來(lái)自動(dòng)生成處理表單的功能軟件。因此,本實(shí)施例不需要寫(xiě)任何代碼,幫助軟開(kāi)發(fā)人員從表單的維護(hù)中解脫出來(lái),而把 注意力放到程序業(yè)務(wù)領(lǐng)域中。如圖2所示。本實(shí)施例為利用數(shù)據(jù)列表模板(ListTempkte)實(shí)現(xiàn)軟件自動(dòng)生成。其中, 數(shù)據(jù)列表模板用來(lái)處理數(shù)據(jù)列表。本實(shí)施例的工作原理是通過(guò)Xml文件的信息記錄數(shù)據(jù)列 表的表現(xiàn)方式,通過(guò)檢索Xml文件的信息來(lái)自動(dòng)生成軟件代碼以實(shí)現(xiàn)指定的軟件功能。本 實(shí)施例包括如下步驟步驟S210、新增一個(gè)數(shù)據(jù)列表模板。步驟S220、新增數(shù)據(jù)列表模板的映射Xml文件,以記錄數(shù)據(jù)列表的相關(guān)信息。 步驟S230、在Xml文件里設(shè)置數(shù)據(jù)源的單元格屬性。單元格屬性包括Text屬性(表 示單元格的標(biāo)題)、Name屬性(表示對(duì)應(yīng)數(shù)據(jù)源的字段名稱(chēng))、Visible屬性(表示單元格 是否可見(jiàn))、Readonly屬性(表示單元格是否為只讀)、DisplayMode屬性(表示單元格的 顯示模式,顯示模式可以為文本框(TextBox )、復(fù)選框(CheckBox )、下拉列表(ComboBox )、 圖像(Image)或按鈕(Button))、 Type屬性(表示數(shù)據(jù)類(lèi)型)、Length屬性(表示單元格
長(zhǎng)度)或Regex屬性(表示文本框內(nèi)容的正則表達(dá)式規(guī)則),甚至還可以設(shè)置一些相關(guān)的 進(jìn)程操作的屬性信息。步驟S240、數(shù)據(jù)列表模板檢索Xml文件的相關(guān)信息,由檢索獲得的信息來(lái)決定數(shù)據(jù) 列表的表現(xiàn)方式、數(shù)據(jù)類(lèi)型、是否為只讀等,并根據(jù)這些信息自動(dòng)生成用于實(shí)現(xiàn)刪除、新 增、修改、查詢(xún)或翻頁(yè)等功能理的SQL語(yǔ)句,并通過(guò)生成自動(dòng)調(diào)用SQL語(yǔ)句的代碼來(lái)自 動(dòng)生成用于實(shí)現(xiàn)刪除、新增、修改、查詢(xún)或翻頁(yè)等處理的功能軟件。如圖3所示。本實(shí)施例為利用多表操作模板(MultiTableTemplate)實(shí)現(xiàn)軟件自動(dòng)生成。 多表操作模板用來(lái)處理多個(gè)相互關(guān)聯(lián)的數(shù)據(jù)表。本實(shí)施例的工作原理是通過(guò) R印ositoryFormPanel和RepositoryListPanel自定義控件來(lái)決定每個(gè)數(shù)據(jù)源是表單 (FormTemplate )的表達(dá)方式還是數(shù)據(jù)列表(ListTemplat )的表達(dá)方式。通過(guò)設(shè)置 RepositoryDataSource屬性、RepositoryDataSourceDatafield屬性、RepositoryToTables屬性、 RepositoryToTableDataField屬性來(lái)決定多表的關(guān)聯(lián)方式,再通過(guò)沖全索RepositoryFormPanel 和RepositoryListPane控件上的其它自定義控件信息來(lái)完成指定的操作。本實(shí)施例包括如下 步驟步驟S310、新增一個(gè)多表操作模板。步驟S320、將RepositoryFormPanel自定義控件和RepositoryListPanel自定義控件拖至 多表操作模板,以確定每個(gè)數(shù)據(jù)源是表單(FormTemplate)的表達(dá)方式還是數(shù)據(jù)列表 (ListTemplat)的表達(dá)方式或表現(xiàn)形式。步驟S330、設(shè)置相互關(guān)聯(lián)的數(shù)據(jù)源的名稱(chēng)以及相互關(guān)聯(lián)字段,以確定數(shù)據(jù)源的關(guān)聯(lián)方式。步驟S340、根據(jù)需要將其他自定義控件拖至多表操作模板,并設(shè)置數(shù)據(jù)源對(duì)應(yīng)的字段 以及數(shù)據(jù)類(lèi)型等相關(guān)信息。因?yàn)槎啾聿僮髂0迨腔诒韱文0搴蛿?shù)據(jù)列表模板的,所以可 以像表單模板和數(shù)據(jù)列表模板一樣拖拉設(shè)置自定義控件和設(shè)置Xml文件信息,以確定多表 操作模板所需要的信息。步驟S350 、判斷多表4喿作沖莫4反是否采用TabControl選項(xiàng)卡控件來(lái)組織頁(yè)面。 步驟S360、如果是采用選項(xiàng)卡控件組織頁(yè)面,則需要獲取當(dāng)前的Tabltem選項(xiàng)卡控件 的信息。步驟S370、多表操作模板檢索當(dāng)前的自定義控件,獲取相關(guān)信息。步驟S380、多表操作模板根據(jù)檢索到的相關(guān)信息,自動(dòng)組合生成對(duì)多個(gè)數(shù)據(jù)表進(jìn)行多表的關(guān)聯(lián)、刪除、修改、查詢(xún)、翻頁(yè)等處理功能的的SQL語(yǔ)句,并通過(guò)生成自動(dòng)調(diào)用SQL語(yǔ)句的代碼來(lái)自動(dòng)生成相應(yīng)的功能軟件。
權(quán)利要求
1、一種基于模板的軟件自動(dòng)生成方法,其特征在于,包括步驟a、新增一個(gè)處理表單或數(shù)據(jù)列表的模板;b、在模板上設(shè)置需要進(jìn)行操作處理的數(shù)據(jù)源的信息;c、模板檢索其上設(shè)置的各種信息,根據(jù)檢索獲得的信息自動(dòng)組合生成對(duì)表單或數(shù)據(jù)列表進(jìn)行處理的SQL語(yǔ)句,并通過(guò)生成自動(dòng)調(diào)用SQL語(yǔ)句的代碼來(lái)自動(dòng)生成處理表單或數(shù)據(jù)列表的功能軟件。
2、 根據(jù)權(quán)利要求1所述的基于模板的軟件自動(dòng)生成方法,其特征在于,步驟c之前還 包括在模板上添置與模板對(duì)數(shù)據(jù)源進(jìn)行操作的自定義控件,并設(shè)置自定義控件與數(shù)據(jù)源 相關(guān)聯(lián)的屬性信息。
3、 根據(jù)權(quán)利要求1所述的基于模板的軟件自動(dòng)生成方法,其特征在于,所述模板為 對(duì)表單進(jìn)行處理的表單模板;步驟b包括bl 、在表單模板上添置的數(shù)據(jù)源自定義控件; b2、設(shè)置該數(shù)據(jù)源自定義控件的屬性信息;其中,步驟b2中的屬性信息包括用于指定數(shù)據(jù)源的關(guān)鍵字的名稱(chēng)的關(guān)鍵名稱(chēng)屬性, 以及用于確定數(shù)據(jù)源自定義控件具體對(duì)哪個(gè)表或視圖進(jìn)行操作的數(shù)據(jù)源屬性。
4、 根據(jù)權(quán)利要求1所述的基于模板的軟件自動(dòng)生成方法,其特征在于,所述模板為 處理數(shù)據(jù)列表的數(shù)據(jù)列表模板;步驟b包括bl、新增用于記錄數(shù)據(jù)列表信息且與數(shù)據(jù)列表模板映射的Xml文件; b2、在Xml文件中設(shè)置數(shù)據(jù)源的單元格屬性信息。
5、 根據(jù)權(quán)利要求4所述的基于模板的軟件自動(dòng)生成方法,其特征在于,所述單元格 屬性信息包括表示單元格的標(biāo)題的屬性信息、表示對(duì)應(yīng)數(shù)據(jù)源的字段名稱(chēng)的屬性信息、 表示單元格是否可見(jiàn)的屬性信息、表示單元格是否為只讀的屬性信息、表示單元格的顯示 模式為文本框或復(fù)選框或下拉列表或圖像或按鈕的屬性信息、表示數(shù)據(jù)類(lèi)型的屬性信息、 表示單元格長(zhǎng)度的屬性信息或表示文本框內(nèi)容的正則表達(dá)式規(guī)則的屬性信息。
6、 根據(jù)權(quán)利要求1所述的基于模板的軟件自動(dòng)生成方法,其特征在于,所述模板為 處理多個(gè)相互關(guān)聯(lián)的數(shù)據(jù)表的多表操作模板;步驟b包括在多表操作模板上添置2個(gè)分別用于決定每個(gè)數(shù)據(jù)源是表單表達(dá)方式還 是數(shù)據(jù)列表表達(dá)方式的自定義控件,并設(shè)置該2個(gè)自定義控件的屬性來(lái)設(shè)置多個(gè)數(shù)據(jù)表的 關(guān)聯(lián)性。
7、 根據(jù)權(quán)利要求6所述的基于模板的軟件自動(dòng)生成方法,其特征在于,步驟b之前 還包括判斷多表操作模板是否采用TabControl選項(xiàng)卡控件來(lái)組織頁(yè)面,若是,則需要進(jìn) 一步獲取當(dāng)前的Tabltem選項(xiàng)卡控件的信息。
全文摘要
本發(fā)明公開(kāi)一種基于模板的軟件自動(dòng)生成方法,其包括步驟a.新增一個(gè)處理表單或數(shù)據(jù)列表的模板;b.在模板上設(shè)置需要進(jìn)行操作處理的數(shù)據(jù)源的信息;c.模板檢索其上設(shè)置的各種信息,并根據(jù)檢索獲得的信息來(lái)自動(dòng)組合實(shí)現(xiàn)軟件常用功能的SQL語(yǔ)句,并生成自動(dòng)調(diào)用這些SQL語(yǔ)句的代碼,從而實(shí)現(xiàn)自動(dòng)生成處理表單或數(shù)據(jù)列表的功能軟件。本發(fā)明采用模板技術(shù)通過(guò)拖拉自定義控件和設(shè)置自定義控件的屬性和Xml文件信息來(lái)實(shí)現(xiàn)軟件開(kāi)發(fā)中常用功能的自動(dòng)軟件生成,可以大大降低軟件開(kāi)發(fā)成本和開(kāi)發(fā)風(fēng)險(xiǎn),提高軟件開(kāi)發(fā)速度和產(chǎn)品的品質(zhì)。
文檔編號(hào)G06F9/44GK101398755SQ20081014202
公開(kāi)日2009年4月1日 申請(qǐng)日期2008年8月22日 優(yōu)先權(quán)日2008年8月22日
發(fā)明者滿(mǎn)延平 申請(qǐng)人:滿(mǎn)延平