本發(fā)明屬于計(jì)算機(jī)軟件技術(shù)領(lǐng)域,涉及一種文檔生成系統(tǒng),尤其涉及一種基于FOG數(shù)據(jù)自動(dòng)生成文檔的系統(tǒng);同時(shí),本發(fā)明還涉及一種基于FOG數(shù)據(jù)自動(dòng)生成文檔的方法。
背景技術(shù):
在軟件研發(fā)過程中,需要編寫軟件開發(fā)計(jì)劃、軟件質(zhì)量保證計(jì)劃、軟件配置管理計(jì)劃、需求規(guī)格說明等等相關(guān)文檔。
在特定行業(yè)中,權(quán)威的標(biāo)準(zhǔn)會(huì)對(duì)文檔的內(nèi)容提出明確的要求。同時(shí),行業(yè)中某些標(biāo)準(zhǔn)對(duì)文檔的結(jié)構(gòu),包括文檔的封面、修改頁、目錄、正文格式、章節(jié)、附錄等都有一定的要求。
在項(xiàng)目研發(fā)過程中,相關(guān)研發(fā)人員依據(jù)項(xiàng)目要求在文檔編輯工具(如Microsoft Word)中手工編寫文檔,編寫過程中或完成后依據(jù)行業(yè)內(nèi)相關(guān)標(biāo)準(zhǔn)對(duì)文檔內(nèi)容格式的要求手工對(duì)文檔進(jìn)行格式樣式調(diào)整、頁眉頁腳設(shè)置等。
現(xiàn)有的文檔編寫或生成技術(shù)存在以下缺點(diǎn):
(1)文檔格式難以統(tǒng)一。由于需要人工手動(dòng)對(duì)文檔格式進(jìn)行調(diào)整,難以保證文檔格式的統(tǒng)一性。
(2)文檔格式難以復(fù)用。文檔編寫完成后,編寫完成的文檔的格式和章節(jié)不便于復(fù)用。
(3)文檔內(nèi)容相互依賴,一致性難以得到保證。當(dāng)一份文檔中某些內(nèi)容發(fā)生更改后,與該內(nèi)容有關(guān)聯(lián)的文檔需要全部手工修改。
(4)維護(hù)困難。當(dāng)多人協(xié)同編寫的文檔完成后,需要多人同時(shí)進(jìn)行維護(hù)。
有鑒于此,如今迫切需要設(shè)計(jì)一種新的文檔編寫方式,以便克服現(xiàn)有編寫方式的上述缺陷。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是:提供一種基于FOG數(shù)據(jù)自動(dòng)生成文檔的系統(tǒng),可提高文檔生成的效率及精確度。
此外,本發(fā)明還提供一種基于FOG數(shù)據(jù)自動(dòng)生成文檔的方法,可提高文檔生成的效率及精確度。
為解決上述技術(shù)問題,本發(fā)明采用如下技術(shù)方案:
一種基于FOG數(shù)據(jù)自動(dòng)生成文檔的系統(tǒng),所述系統(tǒng)包括:文檔樣式文件定義模塊、文檔模板定義模塊、文檔自動(dòng)生成模塊;
所述文檔樣式文件定義模塊通過樣式文件來定義生成文檔的格式;樣式文件中必須定義的樣式有:表格、列表、正文、標(biāo)題、圖片、題注;對(duì)表格的定義包括生成文檔時(shí)表格的表頭格式、表體的格式,格式包括字體、字號(hào)、邊框、對(duì)齊;對(duì)列表的定義包括生成文檔時(shí)的項(xiàng)目符號(hào)、字體、字號(hào)、段落設(shè)置,支持定義兩級(jí)列表,一級(jí)項(xiàng)目符號(hào)和二級(jí)項(xiàng)目符號(hào);對(duì)正文的定義包括生成文檔的字體、字號(hào)、段落設(shè)置;對(duì)標(biāo)題的定義包括多級(jí)標(biāo)題;設(shè)置生成文檔時(shí)每一級(jí)標(biāo)題的字體、字號(hào)、縮進(jìn);對(duì)圖片的定義包括生成文檔時(shí)圖片的對(duì)齊方式,包括左對(duì)齊、右對(duì)齊、居中;對(duì)題注的定義包括生成文檔時(shí)題注的對(duì)齊方式、字體、字號(hào);
樣式文件定義好之后,上傳到本系統(tǒng)中,作為本系統(tǒng)后續(xù)生成文件時(shí)用于設(shè)置文件格式的基準(zhǔn)定義;生成文檔時(shí),系統(tǒng)會(huì)根據(jù)樣式文件中的格式對(duì)文檔中的表格、列表、正文、標(biāo)題、圖片、題注的格式進(jìn)行控制;
當(dāng)需要生成的文檔的格式要求需要發(fā)生變更時(shí),對(duì)系統(tǒng)中的樣式文件進(jìn)行更改后重新上傳;
所述文檔模板定義模塊通過文檔模板來定義待生成文檔中所包含的FOG數(shù)據(jù),將文檔的編寫拆分成FOG數(shù)據(jù)的編寫;FOG數(shù)據(jù)按照類別劃分為非條目化FOG數(shù)據(jù)和條目化FOG數(shù)據(jù);
為了保證在編寫文檔內(nèi)容時(shí)不同文檔中內(nèi)容相同的部分只需要進(jìn)行一次編寫,并便于在文檔內(nèi)容發(fā)生變更時(shí),保證所有文檔之間內(nèi)容的一致性,將項(xiàng)目的所有文檔按照章節(jié)拆分成非條目化FOG數(shù)據(jù),并且確保每一個(gè)非條目化FOG數(shù)據(jù)的唯一性;同時(shí),某些文檔中要對(duì)項(xiàng)目中的需求、設(shè)計(jì)、測試用例及規(guī)程、源代碼進(jìn)行編寫,這些內(nèi)容與之對(duì)應(yīng)的是條目化FOG數(shù)據(jù);一份文檔包含多個(gè)FOG數(shù)據(jù),一個(gè)FOG數(shù)據(jù)存在于一個(gè)或多個(gè)文檔中;
項(xiàng)目中的每一份文檔對(duì)應(yīng)一個(gè)文檔模板;文檔模板定義模塊主要包括:原始文檔模板創(chuàng)建單元、文檔模板編輯單元、文檔模板保存單元;
原始文檔模板創(chuàng)建單元用以為每一份文檔自動(dòng)創(chuàng)建一個(gè)原始的文檔模板,原始文檔模板打開后里面內(nèi)容為空白,并且會(huì)存在一個(gè)FOG數(shù)據(jù)管理的彈出框;文檔模板通過內(nèi)嵌的VBA程序?qū)?shù)據(jù)庫表中的非條目化FOG數(shù)據(jù)、條目化FOG數(shù)據(jù)等字段抓取出來,在彈出框中以樹狀形式展現(xiàn);拖動(dòng)彈出框中的FOG數(shù)據(jù)節(jié)點(diǎn)至文檔模板后,會(huì)生成相應(yīng)的域代碼,文檔模板通過域代碼與數(shù)據(jù)庫中FOG數(shù)據(jù)關(guān)聯(lián),用于在生成文檔時(shí)從數(shù)據(jù)庫中抓取相應(yīng)FOG數(shù)據(jù)內(nèi)容;
從本系統(tǒng)中導(dǎo)出原始文檔模板后,文檔模板編輯單元根據(jù)生成文檔中需要的內(nèi)容,通過拖拽FOG數(shù)據(jù)節(jié)點(diǎn),將文檔所需內(nèi)容對(duì)應(yīng)的FOG數(shù)據(jù)拖拽到相應(yīng)的位置,設(shè)置好FOG數(shù)據(jù)的前后順序以及迭代;
在文檔模板定制界面中定義的內(nèi)容有:
-文檔封面和頁眉頁腳中的“靜態(tài)”內(nèi)容,包括表格、圖片、固定文字;
-文檔封面和頁眉頁腳中的“動(dòng)態(tài)”內(nèi)容,包括FOG數(shù)據(jù);
-使用“插入目錄”功能在文檔模板中插入的目錄;
-通過“插入圖表目錄”功能在文檔模板中插入的圖表目錄;
-“靜態(tài)”的正文章節(jié)標(biāo)題,章節(jié)的樣式可在文檔模板中設(shè)置;
-“動(dòng)態(tài)”的正文章節(jié),在文檔模板中通過非條目化FOG數(shù)據(jù)中標(biāo)題進(jìn)行定義,“動(dòng)態(tài)”章節(jié)在生成文檔時(shí)創(chuàng)建章節(jié);
-“靜態(tài)”的正文內(nèi)容,其樣式在文檔模板中設(shè)置;
-“動(dòng)態(tài)”的正文內(nèi)容,通過插入FOG數(shù)據(jù)等進(jìn)行定義,包括富文本內(nèi)容和非格式化文本內(nèi)容;
-“靜態(tài)”的表格,包括使用FOG數(shù)據(jù)的表格,其格式由文檔模板樣式?jīng)Q定;
以下內(nèi)容是按照文檔模板中定義的樣式生成文檔內(nèi)容:
-插入的FOG數(shù)據(jù)內(nèi)容在生成文檔時(shí)使用文檔模板文件在其插入位置所設(shè)定的樣式,包括其字體、字號(hào)、段落設(shè)置;
-域在文檔生成時(shí)應(yīng)用其插入位置的樣式;
-文檔模板中定義的“靜態(tài)”內(nèi)容,包括文檔模板封面、頁眉頁腳、正文章節(jié)、正文內(nèi)容,其格式由文檔模板的樣式?jīng)Q定;
-“正文內(nèi)容”中的非格式化文本內(nèi)容在文檔生成時(shí)使用文檔模板文件在其插入位置所設(shè)定的樣式,包括其字體、字號(hào)、段落設(shè)置;
當(dāng)文檔模板編輯完成后,文檔模板中應(yīng)該包含了文檔的封面、章節(jié)目錄結(jié)構(gòu)樹、圖表目錄結(jié)構(gòu)樹、頁眉頁腳、FOG數(shù)據(jù)的迭代、位置;文檔模板保存單元用以保存編輯完成后的文檔模板,生成文檔時(shí)根據(jù)文檔模板中的配置抓取相應(yīng)的FOG數(shù)據(jù)內(nèi)容生成文檔內(nèi)容;
當(dāng)FOG數(shù)據(jù)內(nèi)容編寫完成之后選擇需要生成的文檔;文檔自動(dòng)生成模塊用以根據(jù)文檔模板中配置的每個(gè)文檔的FOG數(shù)據(jù)從數(shù)據(jù)庫中抓取相應(yīng)FOG數(shù)據(jù)的內(nèi)容信息生成文檔的內(nèi)容,并且通過樣式文件中配置的文檔格式信息生成文檔的格式;文檔自動(dòng)生成模塊生成文檔的步驟如下:
步驟A1、解析文檔模板,讀取文檔模板中的靜態(tài)內(nèi)容和動(dòng)態(tài)內(nèi)容;
步驟A2、文檔自動(dòng)生成模塊將文檔模板中的靜態(tài)內(nèi)容復(fù)制到所要生成的文檔中;
步驟A3、文檔自動(dòng)生成模塊生成文檔中動(dòng)態(tài)內(nèi)容,步驟如下:步驟A31、解析動(dòng)態(tài)內(nèi)容中的域代碼,獲取FOG數(shù)據(jù)域、以及可能存在的循環(huán)迭代;步驟A32、解析FOG數(shù)據(jù)域中所定義的FOG數(shù)據(jù),從系統(tǒng)數(shù)據(jù)庫中獲取相應(yīng)的具體FOG數(shù)據(jù);文檔模板中如未定義FOG數(shù)據(jù)循環(huán)迭代,將獲取的具體FOG數(shù)據(jù)插入至所需要生成的文檔中;文檔模板中如定義了FOG數(shù)據(jù)循環(huán)迭代,則根據(jù)迭代從系統(tǒng)數(shù)據(jù)庫中循環(huán)獲取相應(yīng)的FOG數(shù)據(jù),填充至文檔模板;
步驟A4、合并靜態(tài)內(nèi)容和動(dòng)態(tài)內(nèi)容,生成內(nèi)容完整的文檔;
步驟A5、根據(jù)樣式文件中配置的文檔格式信息設(shè)置生成文檔的格式,完成文檔生成;
所述系統(tǒng)還支持不同F(xiàn)OG數(shù)據(jù)之間題注的交叉引用;所述系統(tǒng)包括:第一題注交叉引用模塊、第二題注交叉引用模塊;
第一題注交叉引用模塊用以完成非條目化FOG數(shù)據(jù)間題注的交叉引用:支持同一文檔模板中不同非條目化FOG數(shù)據(jù)間題注的交叉引用;當(dāng)編寫一個(gè)非條目化FOG數(shù)據(jù)時(shí),為其中圖表添加的每一個(gè)題注會(huì)以記錄的形式保存在數(shù)據(jù)庫相應(yīng)的表中;當(dāng)需要引用題注時(shí),第一題注交叉引用模塊通過配置好的文檔模板找出該文檔中所有的非條目化FOG數(shù)據(jù),再從數(shù)據(jù)庫表中提取出這些非條目化FOG數(shù)據(jù)中建立的所有題注,從中選擇需要的題注,從而實(shí)現(xiàn)不同非條目化FOG數(shù)據(jù)間題注的交叉引用;
第二題注交叉引用模塊用以完成條目化FOG數(shù)據(jù)間題注的交叉引用:支持條目化FOG數(shù)據(jù)對(duì)所有非條目化FOG數(shù)據(jù)題注的引用以及同一類型的條目化FOG數(shù)據(jù)間題注的交叉引用;當(dāng)編寫一個(gè)條目化FOG數(shù)據(jù)時(shí),如果需要引用題注,第二題注交叉引用模塊從數(shù)據(jù)庫表中找出所有與編寫的FOG數(shù)據(jù)同類型的條目化FOG數(shù)據(jù),以及直接在數(shù)據(jù)庫表中找出所有非條目化FOG數(shù)據(jù),再從數(shù)據(jù)庫表中提取出這兩類FOG數(shù)據(jù)的題注,從而實(shí)現(xiàn)條目化FOG數(shù)據(jù)間題注的交叉引用。
一種基于FOG數(shù)據(jù)自動(dòng)生成文檔的系統(tǒng),所述系統(tǒng)包括:文檔樣式文件定義模塊、文檔模板定義模塊、文檔自動(dòng)生成模塊;
所述文檔樣式文件定義模塊通過樣式文件來定義生成文檔的格式;
所述文檔模板定義模塊通過文檔模板來定義待生成文檔中所包含的FOG數(shù)據(jù),將文檔的編寫拆分成FOG數(shù)據(jù)的編寫;
所述文檔自動(dòng)生成模塊用以根據(jù)文檔模板中配置的每個(gè)文檔的FOG數(shù)據(jù)從數(shù)據(jù)庫中抓取相應(yīng)FOG數(shù)據(jù)的內(nèi)容信息生成文檔的內(nèi)容,并且通過樣式文件中配置的文檔格式信息生成文檔的格式。
作為本發(fā)明的一種優(yōu)選方案,所述文檔樣式文件定義模塊定義樣式文件中必須定義的樣式有:表格、列表、正文、標(biāo)題、圖片、題注。
作為本發(fā)明的一種優(yōu)選方案,對(duì)表格的定義包括生成文檔時(shí)表格的表頭格式、表體的格式,格式包括字體、字號(hào)、邊框、對(duì)齊;
對(duì)列表的定義包括生成文檔時(shí)的項(xiàng)目符號(hào)、字體、字號(hào)、段落設(shè)置,支持定義兩級(jí)列表,一級(jí)項(xiàng)目符號(hào)和二級(jí)項(xiàng)目符號(hào);
對(duì)正文的定義包括生成文檔的字體、字號(hào)、段落設(shè)置;對(duì)標(biāo)題的定義包括多級(jí)標(biāo)題;設(shè)置生成文檔時(shí)每一級(jí)標(biāo)題的字體、字號(hào)、縮進(jìn);
對(duì)圖片的定義包括生成文檔時(shí)圖片的對(duì)齊方式,包括左對(duì)齊、右對(duì)齊、居中;
對(duì)題注的定義包括生成文檔時(shí)題注的對(duì)齊方式、字體、字號(hào);
樣式文件定義好之后,上傳到本系統(tǒng)中,作為本系統(tǒng)后續(xù)生成文件時(shí)用于設(shè)置文件格式的基準(zhǔn)定義;生成文檔時(shí),系統(tǒng)會(huì)根據(jù)樣式文件中的格式對(duì)文檔中的表格、列表、正文、標(biāo)題、圖片、題注的格式進(jìn)行控制;
當(dāng)需要生成的文檔的格式要求需要發(fā)生變更時(shí),對(duì)系統(tǒng)中的樣式文件進(jìn)行更改后重新上傳。
作為本發(fā)明的一種優(yōu)選方案,所述文檔模板定義模塊將文檔的編寫拆分成FOG數(shù)據(jù)的編寫;FOG數(shù)據(jù)按照類別劃分為非條目化FOG數(shù)據(jù)和條目化FOG數(shù)據(jù)。
作為本發(fā)明的一種優(yōu)選方案,將項(xiàng)目的所有文檔按照章節(jié)拆分成非條目化FOG數(shù)據(jù),并且確保每一個(gè)非條目化FOG數(shù)據(jù)的唯一性;同時(shí),某些文檔中要對(duì)項(xiàng)目中的需求、設(shè)計(jì)、測試用例及規(guī)程、源代碼進(jìn)行編寫,這些內(nèi)容與之對(duì)應(yīng)的是條目化FOG數(shù)據(jù);一份文檔包含多個(gè)FOG數(shù)據(jù),一個(gè)FOG數(shù)據(jù)存在于一個(gè)或多個(gè)文檔中;
項(xiàng)目中的每一份文檔對(duì)應(yīng)一個(gè)文檔模板;文檔模板定義模塊主要包括:原始文檔模板創(chuàng)建單元、文檔模板編輯單元、文檔模板保存單元;
原始文檔模板創(chuàng)建單元用以為每一份文檔自動(dòng)創(chuàng)建一個(gè)原始的文檔模板,原始文檔模板打開后里面內(nèi)容為空白,并且會(huì)存在一個(gè)FOG數(shù)據(jù)管理的彈出框;
文檔模板通過內(nèi)嵌的VBA程序?qū)?shù)據(jù)庫表中的非條目化FOG數(shù)據(jù)、條目化FOG數(shù)據(jù)等字段抓取出來,在彈出框中以樹狀形式展現(xiàn);拖動(dòng)彈出框中的FOG數(shù)據(jù)節(jié)點(diǎn)至文檔模板后,會(huì)生成相應(yīng)的域代碼,文檔模板通過域代碼與數(shù)據(jù)庫中FOG數(shù)據(jù)關(guān)聯(lián),用于在生成文檔時(shí)從數(shù)據(jù)庫中抓取相應(yīng)FOG數(shù)據(jù)內(nèi)容;
從本系統(tǒng)中導(dǎo)出原始文檔模板后,文檔模板編輯單元根據(jù)生成文檔中需要的內(nèi)容,通過拖拽FOG數(shù)據(jù)節(jié)點(diǎn),將文檔所需內(nèi)容對(duì)應(yīng)的FOG數(shù)據(jù)拖拽到相應(yīng)的位置,設(shè)置好FOG數(shù)據(jù)的前后順序以及迭代;
當(dāng)文檔模板編輯完成后,文檔模板中應(yīng)該包含了文檔的封面、章節(jié)目錄結(jié)構(gòu)樹、圖表目錄結(jié)構(gòu)樹、頁眉頁腳、FOG數(shù)據(jù)的迭代、位置;
文檔模板保存單元用以保存編輯完成后的文檔模板,生成文檔時(shí)根據(jù)文檔模板中的配置抓取相應(yīng)的FOG數(shù)據(jù)內(nèi)容生成文檔內(nèi)容。
作為本發(fā)明的一種優(yōu)選方案,所述系統(tǒng)還支持不同F(xiàn)OG數(shù)據(jù)之間題注的交叉引用;所述系統(tǒng)包括:第一題注交叉引用模塊、第二題注交叉引用模塊;
第一題注交叉引用模塊用以完成非條目化FOG數(shù)據(jù)間題注的交叉引用:支持同一文檔模板中不同非條目化FOG數(shù)據(jù)間題注的交叉引用;當(dāng)編寫一個(gè)非條目化FOG數(shù)據(jù)時(shí),為其中圖表添加的每一個(gè)題注會(huì)以記錄的形式保存在數(shù)據(jù)庫相應(yīng)的表中;當(dāng)需要引用題注時(shí),第一題注交叉引用模塊通過配置好的文檔模板找出該文檔中所有的非條目化FOG數(shù)據(jù),再從數(shù)據(jù)庫表中提取出這些非條目化FOG數(shù)據(jù)中建立的所有題注,從中選擇需要的題注,從而實(shí)現(xiàn)不同非條目化FOG數(shù)據(jù)間題注的交叉引用;
第二題注交叉引用模塊用以完成條目化FOG數(shù)據(jù)間題注的交叉引用:支持條目化FOG數(shù)據(jù)對(duì)所有非條目化FOG數(shù)據(jù)題注的引用以及同一類型的條目化FOG數(shù)據(jù)間題注的交叉引用;當(dāng)編寫一個(gè)條目化FOG數(shù)據(jù)時(shí),如果需要引用題注,第二題注交叉引用模塊從數(shù)據(jù)庫表中找出所有與編寫的FOG數(shù)據(jù)同類型的條目化FOG數(shù)據(jù),以及直接在數(shù)據(jù)庫表中找出所有非條目化FOG數(shù)據(jù),再從數(shù)據(jù)庫表中提取出這兩類FOG數(shù)據(jù)的題注,從而實(shí)現(xiàn)條目化FOG數(shù)據(jù)間題注的交叉引用。
一種基于FOG數(shù)據(jù)自動(dòng)生成文檔的方法,所述方法包括如下步驟:
文檔樣式文件定義步驟,通過樣式文件來定義生成文檔的格式;
文檔模板定義步驟,通過文檔模板來定義待生成文檔中所包含的FOG數(shù)據(jù),將文檔的編寫拆分成FOG數(shù)據(jù)的編寫;
文檔自動(dòng)生成步驟,根據(jù)文檔模板中配置的每個(gè)文檔的FOG數(shù)據(jù)從數(shù)據(jù)庫中抓取相應(yīng)FOG數(shù)據(jù)的內(nèi)容信息生成文檔的內(nèi)容,并且通過樣式文件中配置的文檔格式信息生成文檔的格式。
作為本發(fā)明的一種優(yōu)選方案,所述方法還支持不同F(xiàn)OG數(shù)據(jù)之間題注的交叉引用;所述方法還包括:
第一題注交叉引用步驟,完成非條目化FOG數(shù)據(jù)間題注的交叉引用:支持同一文檔模板中不同非條目化FOG數(shù)據(jù)間題注的交叉引用;當(dāng)編寫一個(gè)非條目化FOG數(shù)據(jù)時(shí),為其中圖表添加的每一個(gè)題注會(huì)以記錄的形式保存在數(shù)據(jù)庫相應(yīng)的表中;當(dāng)需要引用題注時(shí),第一題注交叉引用模塊通過配置好的文檔模板找出該文檔中所有的非條目化FOG數(shù)據(jù),再從數(shù)據(jù)庫表中提取出這些非條目化FOG數(shù)據(jù)中建立的所有題注,從中選擇需要的題注,從而實(shí)現(xiàn)不同非條目化FOG數(shù)據(jù)間題注的交叉引用;
第二題注交叉引用步驟,完成條目化FOG數(shù)據(jù)間題注的交叉引用:支持條目化FOG數(shù)據(jù)對(duì)所有非條目化FOG數(shù)據(jù)題注的引用以及同一類型的條目化FOG數(shù)據(jù)間題注的交叉引用;當(dāng)編寫一個(gè)條目化FOG數(shù)據(jù)時(shí),如果需要引用題注,第二題注交叉引用模塊從數(shù)據(jù)庫表中找出所有與編寫的FOG數(shù)據(jù)同類型的條目化FOG數(shù)據(jù),以及直接在數(shù)據(jù)庫表中找出所有非條目化FOG數(shù)據(jù),再從數(shù)據(jù)庫表中提取出這兩類FOG數(shù)據(jù)的題注,從而實(shí)現(xiàn)條目化FOG數(shù)據(jù)間題注的交叉引用。
本發(fā)明的有益效果在于:本發(fā)明提出的基于FOG數(shù)據(jù)自動(dòng)生成文檔的系統(tǒng)及方法,可提高文檔生成的效率及精確度。
本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):
(1)保證了文檔格式的統(tǒng)一。所有文檔生成時(shí)都由本系統(tǒng)控制文檔格式的生成,當(dāng)文檔格式要求有所變動(dòng)時(shí),只要對(duì)樣式文件、文檔模板進(jìn)行調(diào)整,重新生成后的所有文檔的格式都能統(tǒng)一調(diào)整。
(2)文檔模板可以復(fù)用。當(dāng)不同項(xiàng)目對(duì)文檔的要求一致或者差別不大時(shí),可以復(fù)用之前配置好的文檔模板,節(jié)約時(shí)間和成本。
(3)保證了不同文檔間相互引用的內(nèi)容的一致性。以FOG數(shù)據(jù)的形式對(duì)文檔進(jìn)行編寫,不同文檔間互相引用的內(nèi)容由唯一的FOG數(shù)據(jù)進(jìn)行控制,當(dāng)該FOG數(shù)據(jù)內(nèi)容發(fā)生變更時(shí),所有與該FOG數(shù)據(jù)有關(guān)的文檔內(nèi)容都能統(tǒng)一更改,保證了內(nèi)容的一致性。
(4)降低了文檔維護(hù)難度。每個(gè)編寫人員只需要維護(hù)自己編寫的FOG數(shù)據(jù),不需要關(guān)心哪些文檔包含此FOG數(shù)據(jù),也不需要關(guān)心同一份文檔中其他人編寫的FOG數(shù)據(jù)內(nèi)容。
(5)節(jié)省編寫人員的時(shí)間和精力。一旦根據(jù)標(biāo)準(zhǔn)要求配置好文檔模板,編寫人員不需要在編寫過程中考慮和修改不同部分的格式,只需要把智力和精力集中在文檔內(nèi)容的編寫上,更利于提升文檔的編寫速度和準(zhǔn)確性。
附圖說明
圖1為目前軟件研發(fā)過程中文檔編寫現(xiàn)狀示意圖。
圖2為基于FOG數(shù)據(jù)文檔生成系統(tǒng)的組成示意圖。
圖3為FOG數(shù)據(jù)與文檔之間關(guān)系圖。
圖4為文檔模板定義模塊的組成示意圖。
圖5為文檔模板中FOG數(shù)據(jù)管理框。
具體實(shí)施方式
下面結(jié)合附圖詳細(xì)說明本發(fā)明的優(yōu)選實(shí)施例。
實(shí)施例一
為了滿足行業(yè)內(nèi)相關(guān)標(biāo)準(zhǔn)針對(duì)文檔的要求,本發(fā)明揭示了一種基于FOG數(shù)據(jù)自動(dòng)生成文檔的方法和系統(tǒng),該系統(tǒng)在定制好文檔模板并完成FOG數(shù)據(jù)編寫后,會(huì)根據(jù)文檔模板中對(duì)FOG數(shù)據(jù)的配置,自動(dòng)抓取相應(yīng)的FOG數(shù)據(jù)生成符合標(biāo)準(zhǔn)要求的文檔。該發(fā)明強(qiáng)調(diào)的理念是:文檔的內(nèi)容是可以拆分的,并且內(nèi)容和格式要求是可以獨(dú)立開的。通過FOG數(shù)據(jù)將文檔內(nèi)容拆分成細(xì)粒度的數(shù)據(jù)單元,通過專用的樣式文件定義文檔的格式,通過配置文檔模板將不同的FOG數(shù)據(jù)進(jìn)行組合,滿足相關(guān)標(biāo)準(zhǔn)對(duì)內(nèi)容格式的要求。以下以某個(gè)軟件項(xiàng)目中的文檔編寫為例介紹本發(fā)明。
請參閱圖2,基于FOG數(shù)據(jù)自動(dòng)生成文檔的系統(tǒng)包括:文檔樣式文件定義模塊DG-01、文檔模板定義模塊DG-02、文檔自動(dòng)生成模塊DG-03。
【文檔樣式文件定義模塊DG-01】
文檔樣式文件定義模塊DG-01用以定義文檔樣式文件。
本發(fā)明通過樣式文件來定義生成文檔的格式。樣式文件中必須定義的樣式有:
a)表格:可以定義包括生成文檔時(shí)表格的表頭格式、表體的格式等,格式包括字體、字號(hào)、邊框、對(duì)齊等。
b)列表:可以定義包括生成文檔時(shí)的項(xiàng)目符號(hào)、字體、字號(hào)、段落設(shè)置,目前支持定義兩級(jí)列表,一級(jí)項(xiàng)目符號(hào)和二級(jí)項(xiàng)目符號(hào)。
c)正文:可以定義包括生成文檔的字體、字號(hào)、段落設(shè)置等。
d)標(biāo)題:可以定義多級(jí)標(biāo)題。設(shè)置生成文檔時(shí)每一級(jí)標(biāo)題的字體、字號(hào)、縮進(jìn)等。
e)圖片:可以定義生成文檔時(shí)圖片的對(duì)齊方式,包括左對(duì)齊、右對(duì)齊、居中。
f)題注:可以定義生成文檔時(shí)題注的對(duì)齊方式、字體、字號(hào)等。
樣式文件定義好之后,可以上傳到本系統(tǒng)中,作為本系統(tǒng)后續(xù)生成文件時(shí)用于設(shè)置文件格式的基準(zhǔn)定義。生成文檔時(shí),系統(tǒng)會(huì)根據(jù)樣式文件中的格式對(duì)文檔中的表格、列表、正文、標(biāo)題、圖片、題注等的格式進(jìn)行控制。
當(dāng)需要生成的文檔的格式要求需要發(fā)生變更時(shí),可以對(duì)系統(tǒng)中的樣式文件進(jìn)行更改后重新上傳。
【文檔模板定義模塊DG-02】
本發(fā)明通過文檔模板來定義待生成文檔中所包含的FOG數(shù)據(jù),將文檔的編寫拆分成FOG數(shù)據(jù)的編寫。FOG數(shù)據(jù)按照類別劃分為非條目化FOG數(shù)據(jù)和條目化FOG數(shù)據(jù)。如圖3所示,一個(gè)軟件項(xiàng)目需要編寫《軟件審定計(jì)劃》、《軟件需求數(shù)據(jù)》、《軟件追蹤數(shù)據(jù)》、《軟件實(shí)施概要》等若干文檔。這些文檔當(dāng)中有些章節(jié)是一致的,例如《軟件審定計(jì)劃》、《軟件實(shí)施概要》中都包含該項(xiàng)目的系統(tǒng)概述和軟件概述等章節(jié)。為了保證在編寫文檔內(nèi)容時(shí)不同文檔中內(nèi)容相同的部分只需要進(jìn)行一次編寫,并便于在文檔內(nèi)容發(fā)生變更時(shí),保證所有文檔之間內(nèi)容的一致性,該發(fā)明將項(xiàng)目的所有文檔按照章節(jié)拆分成非條目化FOG數(shù)據(jù),并且確保每一個(gè)非條目化FOG數(shù)據(jù)的唯一性。同時(shí),某些文檔中要對(duì)項(xiàng)目中的需求、設(shè)計(jì)、測試用例及規(guī)程、源代碼等進(jìn)行編寫,這些內(nèi)容與之對(duì)應(yīng)的是條目化FOG數(shù)據(jù)。一份文檔包含多個(gè)FOG數(shù)據(jù),一個(gè)FOG數(shù)據(jù)也可能存在于多個(gè)文檔中。
項(xiàng)目中的每一份文檔對(duì)應(yīng)一個(gè)文檔模板。請參閱圖4,文檔模板定義主要包括以下幾個(gè)步驟:
a)創(chuàng)建原始文檔模板
本系統(tǒng)會(huì)為每一份文檔自動(dòng)創(chuàng)建一個(gè)原始的文檔模板,原始文檔模板打開后里面內(nèi)容為空白,并且會(huì)存在一個(gè)FOG數(shù)據(jù)管理的彈出框。文檔模板通過內(nèi)嵌的VBA程序?qū)?shù)據(jù)庫表中的非條目化FOG數(shù)據(jù)、條目化FOG數(shù)據(jù)等字段抓取出來,在彈出框中以樹狀形式展現(xiàn),如圖5所示,拖動(dòng)彈出框中的FOG數(shù)據(jù)節(jié)點(diǎn)至文檔模板后,會(huì)生成相應(yīng)的域代碼,文檔模板通過域代碼與數(shù)據(jù)庫中FOG數(shù)據(jù)關(guān)聯(lián),用于在生成文檔時(shí)從數(shù)據(jù)庫中抓取相應(yīng)FOG數(shù)據(jù)內(nèi)容。
b)編輯文檔模板
從本系統(tǒng)中導(dǎo)出原始文檔模板后,根據(jù)生成文檔中需要的內(nèi)容,通過拖拽圖5中的FOG數(shù)據(jù)節(jié)點(diǎn),將文檔所需內(nèi)容對(duì)應(yīng)的FOG數(shù)據(jù)拖拽到相應(yīng)的位置,設(shè)置好FOG數(shù)據(jù)的前后順序以及迭代等。
在文檔模板定制界面中可以定義的內(nèi)容有:
●文檔封面和頁眉頁腳中的“靜態(tài)”內(nèi)容,包括表格、圖片、固定文字(如組織名稱、“頁”等)。
●文檔封面和頁眉頁腳中的“動(dòng)態(tài)”內(nèi)容,包括FOG數(shù)據(jù)(如項(xiàng)目信息數(shù)據(jù)、文檔信息數(shù)據(jù))。
●使用“插入目錄”功能在文檔模板中插入的目錄。
●通過“插入圖表目錄”功能在文檔模板中插入的圖表目錄。
●“靜態(tài)”的正文章節(jié)標(biāo)題,章節(jié)的樣式可在文檔模板中設(shè)置。
●“動(dòng)態(tài)”的正文章節(jié),在文檔模板中通過非條目化FOG數(shù)據(jù)中標(biāo)題進(jìn)行定義,“動(dòng)態(tài)”章節(jié)在生成文檔時(shí)創(chuàng)建章節(jié)。
●“靜態(tài)”的正文內(nèi)容(例如一段文本),其樣式在文檔模板中設(shè)置。
●“動(dòng)態(tài)”的正文內(nèi)容,通過插入FOG數(shù)據(jù)等進(jìn)行定義,包括富文本內(nèi)容和非格式化文本內(nèi)容。
●“靜態(tài)”的表格(包括使用FOG數(shù)據(jù)的表格),其格式由文檔模板樣式?jīng)Q定。
以下內(nèi)容是按照文檔模板中定義的樣式生成文檔內(nèi)容:
●插入的FOG數(shù)據(jù)內(nèi)容在生成文檔時(shí)使用文檔模板文件在其插入位置所設(shè)定的樣式,包括其字體、字號(hào)、段落設(shè)置
●域(如頁碼、總頁數(shù)等)在文檔生成時(shí)應(yīng)用其插入位置的樣式
●文檔模板中定義的“靜態(tài)”內(nèi)容,包括文檔模板封面、頁眉頁腳、正文章節(jié)、正文內(nèi)容,其格式由文檔模板的樣式?jīng)Q定
●“正文內(nèi)容”中的非格式化文本內(nèi)容在文檔生成時(shí)使用文檔模板文件在其插入位置所設(shè)定的樣式,包括其字體、字號(hào)、段落設(shè)置
c)保存文檔模板
當(dāng)文檔模板編輯完成后,文檔模板中應(yīng)該包含了文檔的封面、章節(jié)目錄結(jié)構(gòu)樹、圖表目錄結(jié)構(gòu)樹、頁眉頁腳、FOG數(shù)據(jù)的迭代、位置等。
本系統(tǒng)會(huì)保存編輯完成后的文檔模板,生成文檔時(shí),系統(tǒng)會(huì)根據(jù)文檔模板中的配置抓取相應(yīng)的FOG數(shù)據(jù)內(nèi)容生成文檔內(nèi)容。
【文檔自動(dòng)生成模塊DG-03】
當(dāng)FOG數(shù)據(jù)內(nèi)容編寫完成之后,可以在本系統(tǒng)中選擇需要生成的文檔。文檔自動(dòng)生成模塊會(huì)根據(jù)文檔模板中配置的每個(gè)文檔的FOG數(shù)據(jù)從數(shù)據(jù)庫中抓取相應(yīng)FOG數(shù)據(jù)的內(nèi)容信息生成文檔的內(nèi)容,并且通過樣式文件中配置的文檔格式信息生成文檔的格式,文檔自動(dòng)生成模塊生成文檔的步驟如下:
步驟A1、解析文檔模板,讀取文檔模板中的靜態(tài)內(nèi)容和動(dòng)態(tài)內(nèi)容;
步驟A2、文檔自動(dòng)生成模塊將文檔模板中的靜態(tài)內(nèi)容復(fù)制到所要生成的文檔中;
步驟A3、文檔自動(dòng)生成模塊生成文檔中動(dòng)態(tài)內(nèi)容,步驟如下:
步驟A31、解析動(dòng)態(tài)內(nèi)容中的域代碼,獲取FOG數(shù)據(jù)域、以及可能存在的循環(huán)迭代;
步驟A32、解析FOG數(shù)據(jù)域中所定義的FOG數(shù)據(jù),從系統(tǒng)數(shù)據(jù)庫中獲取相應(yīng)的具體FOG數(shù)據(jù);文檔模板中如未定義FOG數(shù)據(jù)循環(huán)迭代,將獲取的具體FOG數(shù)據(jù)插入至所需要生成的文檔中;文檔模板中如定義了FOG數(shù)據(jù)循環(huán)迭代,則根據(jù)迭代從系統(tǒng)數(shù)據(jù)庫中循環(huán)獲取相應(yīng)的FOG數(shù)據(jù),填充至文檔模板;
步驟A4、合并靜態(tài)內(nèi)容和動(dòng)態(tài)內(nèi)容,生成內(nèi)容完整的文檔;
步驟A5、根據(jù)樣式文件中配置的文檔格式信息設(shè)置生成文檔的格式,完成文檔生成。
另外,本發(fā)明還支持不同F(xiàn)OG數(shù)據(jù)之間題注的交叉引用。所述系統(tǒng)包括:第一題注交叉引用模塊、第二題注交叉引用模塊。
第一題注交叉引用模塊用以完成非條目化FOG數(shù)據(jù)間題注的交叉引用。本發(fā)明支持同一文檔模板中不同非條目化FOG數(shù)據(jù)間題注的交叉引用。
當(dāng)編寫一個(gè)非條目化FOG數(shù)據(jù)時(shí),為其中圖表添加的每一個(gè)題注會(huì)以記錄的形式保存在數(shù)據(jù)庫相應(yīng)的表中。當(dāng)需要引用題注時(shí),本系統(tǒng)會(huì)通過配置好的文檔模板找出該文檔中所有的非條目化FOG數(shù)據(jù),再從數(shù)據(jù)庫表中提取出這些非條目化FOG數(shù)據(jù)中建立的所有題注,可以從中選擇需要的題注,從而實(shí)現(xiàn)不同非條目化FOG數(shù)據(jù)間題注的交叉引用。
第二題注交叉引用模塊用以完成條目化FOG數(shù)據(jù)間題注的交叉引用。本發(fā)明支持條目化FOG數(shù)據(jù)對(duì)所有非條目化FOG數(shù)據(jù)題注的引用以及同一類型的條目化FOG數(shù)據(jù)間題注的交叉引用。
當(dāng)編寫一個(gè)條目化FOG數(shù)據(jù)時(shí),如果需要引用題注,本系統(tǒng)會(huì)從數(shù)據(jù)庫表中找出所有與編寫的FOG數(shù)據(jù)同類型的條目化FOG數(shù)據(jù)(同類型是指條目化FOG數(shù)據(jù)都為系統(tǒng)需求或都為軟件需求等等),以及直接在數(shù)據(jù)庫表中找出所有非條目化FOG數(shù)據(jù),再從數(shù)據(jù)庫表中提取出這兩類FOG數(shù)據(jù)的題注,從而實(shí)現(xiàn)條目化FOG數(shù)據(jù)間題注的交叉引用。
本發(fā)明還揭示一種基于FOG數(shù)據(jù)自動(dòng)生成文檔的方法,所述方法包括如下步驟:
文檔樣式文件定義步驟,通過樣式文件來定義生成文檔的格式;
文檔模板定義步驟,通過文檔模板來定義待生成文檔中所包含的FOG數(shù)據(jù),將文檔的編寫拆分成FOG數(shù)據(jù)的編寫;
文檔自動(dòng)生成步驟,根據(jù)文檔模板中配置的每個(gè)文檔的FOG數(shù)據(jù)從數(shù)據(jù)庫中抓取相應(yīng)FOG數(shù)據(jù)的內(nèi)容信息生成文檔的內(nèi)容,并且通過樣式文件中配置的文檔格式信息生成文檔的格式。
所述文檔自動(dòng)生成步驟具體包括:
步驟A1、解析文檔模板,讀取文檔模板中的靜態(tài)內(nèi)容和動(dòng)態(tài)內(nèi)容;
步驟A2、文檔自動(dòng)生成模塊將文檔模板中的靜態(tài)內(nèi)容復(fù)制到所要生成的文檔中;
步驟A3、文檔自動(dòng)生成模塊生成文檔中動(dòng)態(tài)內(nèi)容,步驟如下:步驟A31、解析動(dòng)態(tài)內(nèi)容中的域代碼,獲取FOG數(shù)據(jù)域、以及可能存在的循環(huán)迭代;步驟A32、解析FOG數(shù)據(jù)域中所定義的FOG數(shù)據(jù),從系統(tǒng)數(shù)據(jù)庫中獲取相應(yīng)的具體FOG數(shù)據(jù);文檔模板中如未定義FOG數(shù)據(jù)循環(huán)迭代,將獲取的具體FOG數(shù)據(jù)插入至所需要生成的文檔中;文檔模板中如定義了FOG數(shù)據(jù)循環(huán)迭代,則根據(jù)迭代從系統(tǒng)數(shù)據(jù)庫中循環(huán)獲取相應(yīng)的FOG數(shù)據(jù),填充至文檔模板;
步驟A4、合并靜態(tài)內(nèi)容和動(dòng)態(tài)內(nèi)容,生成內(nèi)容完整的文檔;
步驟A5、根據(jù)樣式文件中配置的文檔格式信息設(shè)置生成文檔的格式,完成文檔生成。
以上各個(gè)步驟的具體實(shí)現(xiàn)方式可以參照對(duì)應(yīng)模塊的介紹。
此外,所述方法還支持不同F(xiàn)OG數(shù)據(jù)之間題注的交叉引用。所述方法還包括:
第一題注交叉引用步驟,完成非條目化FOG數(shù)據(jù)間題注的交叉引用。支持同一文檔模板中不同非條目化FOG數(shù)據(jù)間題注的交叉引用;當(dāng)編寫一個(gè)非條目化FOG數(shù)據(jù)時(shí),為其中圖表添加的每一個(gè)題注會(huì)以記錄的形式保存在數(shù)據(jù)庫相應(yīng)的表中;當(dāng)需要引用題注時(shí),第一題注交叉引用模塊通過配置好的文檔模板找出該文檔中所有的非條目化FOG數(shù)據(jù),再從數(shù)據(jù)庫表中提取出這些非條目化FOG數(shù)據(jù)中建立的所有題注,從中選擇需要的題注,從而實(shí)現(xiàn)不同非條目化FOG數(shù)據(jù)間題注的交叉引用;
第二題注交叉引用步驟,完成條目化FOG數(shù)據(jù)間題注的交叉引用。支持條目化FOG數(shù)據(jù)對(duì)所有非條目化FOG數(shù)據(jù)題注的引用以及同一類型的條目化FOG數(shù)據(jù)間題注的交叉引用;當(dāng)編寫一個(gè)條目化FOG數(shù)據(jù)時(shí),如果需要引用題注,第二題注交叉引用模塊從數(shù)據(jù)庫表中找出所有與編寫的FOG數(shù)據(jù)同類型的條目化FOG數(shù)據(jù),以及直接在數(shù)據(jù)庫表中找出所有非條目化FOG數(shù)據(jù),再從數(shù)據(jù)庫表中提取出這兩類FOG數(shù)據(jù)的題注,從而實(shí)現(xiàn)條目化FOG數(shù)據(jù)間題注的交叉引用。
綜上所述,本發(fā)明提出的基于FOG數(shù)據(jù)自動(dòng)生成文檔的系統(tǒng)及方法,可保證文檔格式的統(tǒng)一,文檔模板可以復(fù)用,保證了不同文檔間相互引用的內(nèi)容的一致性,同時(shí)可以降低文檔維護(hù)難度,節(jié)省編寫人員的時(shí)間和精力。
這里本發(fā)明的描述和應(yīng)用是說明性的,并非想將本發(fā)明的范圍限制在上述實(shí)施例中。這里所披露的實(shí)施例的變形和改變是可能的,對(duì)于那些本領(lǐng)域的普通技術(shù)人員來說實(shí)施例的替換和等效的各種部件是公知的。本領(lǐng)域技術(shù)人員應(yīng)該清楚的是,在不脫離本發(fā)明的精神或本質(zhì)特征的情況下,本發(fā)明可以以其它形式、結(jié)構(gòu)、布置、比例,以及用其它組件、材料和部件來實(shí)現(xiàn)。在不脫離本發(fā)明范圍和精神的情況下,可以對(duì)這里所披露的實(shí)施例進(jìn)行其它變形和改變。