數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和xml文件數(shù)據(jù)交互的方法及其裝置制造方法
【專利摘要】本發(fā)明公開一種數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和XML文件數(shù)據(jù)交互的方法及其裝置,將報(bào)表分解為多個子表,為每個子表命名,將報(bào)表的設(shè)定單元格設(shè)置為固定的配置區(qū)域,用以記錄多個子表的名稱和類型,每個子表為非明細(xì)表、固定行明細(xì)表和非固定行明細(xì)表中的任一種;定義報(bào)表中每個單元格的變量名,變量名包括該單元格所在子表的名稱,該單元格的數(shù)據(jù)類型,該單元格所允許的最小和最大數(shù)據(jù)長度、該單元格的唯一識別ID;在XML文件與報(bào)表之間建立對應(yīng)關(guān)系,對應(yīng)關(guān)系包括:將XML文件的根節(jié)點(diǎn)與報(bào)表對應(yīng),將根節(jié)點(diǎn)下的一級子節(jié)點(diǎn)與報(bào)表的子表一一對應(yīng),將每個一級子節(jié)點(diǎn)下的子節(jié)點(diǎn)和與其對應(yīng)子表下的各變量名一一對應(yīng);根據(jù)對應(yīng)關(guān)系,在XML文件與報(bào)表之間進(jìn)行數(shù)據(jù)交互。
【專利說明】數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和XML文件數(shù)據(jù)交互的方法及其裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和XML文件數(shù)據(jù)交互的方法及其裝置。
【背景技術(shù)】
[0002]在現(xiàn)有的納稅申報(bào)系統(tǒng)中,可擴(kuò)展標(biāo)記語言(Extensible Markup Language, XML)作為前后臺數(shù)據(jù)傳輸?shù)姆绞揭呀?jīng)成為了主流,而前臺界面上的報(bào)表是納稅人最終進(jìn)行數(shù)據(jù)錄入的窗口。
[0003]因此在XML文件和報(bào)表之間必然有些數(shù)據(jù)上的交互。若報(bào)表完全用HTML(Hypertext Markup Language,超文本標(biāo)記語言)腳本來開發(fā),這無疑會給程序員帶來巨大的工作量,使用第三方插件是比較主流的方法,但由于各種插件都具有不同程度的缺陷,在數(shù)據(jù)交互過程中經(jīng)常出現(xiàn)程序崩潰的情況,造成工作中斷。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和XML文件數(shù)據(jù)交互的方法及其裝置,用以實(shí)現(xiàn)XML文件和報(bào)表之間數(shù)據(jù)的快速交互,以便于報(bào)表數(shù)據(jù)初始化時將XML文件上的數(shù)據(jù)自動錄入到報(bào)表的相關(guān)欄次,以及報(bào)表申報(bào)提交時將報(bào)表上的數(shù)據(jù)生成XML文件。
[0005]為達(dá)到上述目的,本發(fā)明提供了一種數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和XML文件數(shù)據(jù)交互的方法,包括以下步驟:
[0006]將報(bào)表分解為多個子表,并為每個子表命名,以及將報(bào)表的設(shè)定單元格設(shè)置為固定的配置區(qū)域,用以記錄多個子表的名稱和類型,其中每個子表為非明細(xì)表、固定行明細(xì)表和非固定行明細(xì)表中的任一種;
[0007]定義報(bào)表中每個單元格的變量名,變量名包括該單元格所在子表的名稱,該單元格的數(shù)據(jù)類型,該單元格所允許的最小和最大數(shù)據(jù)長度、該單元格的唯一識別ID(Identity,身份標(biāo)識號碼);
[0008]在XML文件與報(bào)表之間建立對應(yīng)關(guān)系,對應(yīng)關(guān)系包括:將XML文件的根節(jié)點(diǎn)與報(bào)表對應(yīng),將根節(jié)點(diǎn)下的一級子節(jié)點(diǎn)與報(bào)表的子表--對應(yīng),將每個一級子節(jié)點(diǎn)下的子節(jié)點(diǎn)和與其對應(yīng)子表下的各變量名一一對應(yīng);
[0009]根據(jù)對應(yīng)關(guān)系,在XML文件與報(bào)表之間進(jìn)行數(shù)據(jù)交互。
[0010]可選的,根據(jù)對應(yīng)關(guān)系,在XML文件與報(bào)表之間進(jìn)行數(shù)據(jù)交互步驟包括:
[0011]根據(jù)報(bào)表數(shù)據(jù)生成XML文件時,解析報(bào)表,獲取設(shè)定單元格中記錄的多個子表的名稱和類型,根據(jù)多個子表的名稱和類型確定XML文件的根節(jié)點(diǎn)下的一級子節(jié)點(diǎn),以及根據(jù)每個子表的各變量名確定其對應(yīng)一級子節(jié)點(diǎn)下的子節(jié)點(diǎn);
[0012]按照每個子表的名稱逐一讀取報(bào)表上的數(shù)據(jù),根據(jù)每個子表的名稱和單元格的變量名,逐一讀取對應(yīng)單元格的數(shù)據(jù),并將該單元格的數(shù)據(jù)導(dǎo)入XML文件的對應(yīng)節(jié)點(diǎn)。
[0013]可選的,根據(jù)對應(yīng)關(guān)系,在XML文件與報(bào)表之間進(jìn)行數(shù)據(jù)交互步驟包括:
[0014]將X見文件的數(shù)據(jù)填入報(bào)表時,按照對應(yīng)關(guān)系,根據(jù)X見文件的根節(jié)點(diǎn)的名稱及其下的一級節(jié)點(diǎn)的名稱確定報(bào)表的名稱及其子表的名稱,并根據(jù)每個一級子節(jié)點(diǎn)下的子節(jié)點(diǎn)的名稱確定對應(yīng)子表下的各變量名;
[0015]根據(jù)確定的每個子表的名稱及其各單元格的變量名,將XII文件的根節(jié)點(diǎn)下對應(yīng)一級子節(jié)點(diǎn)的所有子節(jié)點(diǎn)的數(shù)據(jù)依次填入該子表的對應(yīng)單元格。
[0016]可選的,報(bào)表為2x061表。
[0017]可選的,設(shè)定單元格為所述報(bào)表中位于第一行第一列的單元格。
[0018]為達(dá)到上述目的,本發(fā)明還提供了一種數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和)011文件數(shù)據(jù)交互的裝置,包括:
[0019]報(bào)表分解模塊,用于將報(bào)表分解為多個子表,并為每個子表命名,以及將報(bào)表的設(shè)定單元格設(shè)置為固定的配置區(qū)域,用以記錄多個子表的名稱和類型,其中每個子表為非明細(xì)表、固定行明細(xì)表和非固定行明細(xì)表中的任一種;
[0020]變量名定義模塊,用于定義報(bào)表中每個單元格的變量名,變量名包括該單元格所在子表的名稱,該單元格的數(shù)據(jù)類型,該單元格所允許的最小和最大數(shù)據(jù)長度、該單元格的唯一識別10 ;
[0021]關(guān)系對應(yīng)模塊,用于在可擴(kuò)展標(biāo)記語言)(肌^文件與報(bào)表之間建立對應(yīng)關(guān)系,對應(yīng)關(guān)系包括:將XII文件的根節(jié)點(diǎn)與報(bào)表對應(yīng),將根節(jié)點(diǎn)下的一級子節(jié)點(diǎn)與報(bào)表的子表對應(yīng),將每個一級子節(jié)點(diǎn)下的子節(jié)點(diǎn)和與其對應(yīng)子表下的各變量名一一對應(yīng);
[0022]數(shù)據(jù)交互模塊,用于根據(jù)對應(yīng)關(guān)系,在X祖^文件與報(bào)表之間進(jìn)行數(shù)據(jù)交互。
[0023]可選的,數(shù)據(jù)交互模塊包括:
[0024]XII結(jié)構(gòu)確定單元,用于在根據(jù)報(bào)表數(shù)據(jù)生成X見文件時,解析報(bào)表,獲取設(shè)定單元格中記錄的多個子表的名稱和類型,根據(jù)多個子表的名稱和類型確定XII文件的根節(jié)點(diǎn)下的一級子節(jié)點(diǎn),以及根據(jù)每個子表的各變量名確定其對應(yīng)一級子節(jié)點(diǎn)下的子節(jié)點(diǎn);
[0025]第一數(shù)據(jù)導(dǎo)入單元,用于按照每個子表的名稱逐一讀取報(bào)表上的數(shù)據(jù),根據(jù)每個子表的名稱和單元格的變量名,逐一讀取對應(yīng)單元格的數(shù)據(jù),并將該單元格的數(shù)據(jù)導(dǎo)入XII文件的對應(yīng)節(jié)點(diǎn)。
[0026]可選的,數(shù)據(jù)交互模塊包括:
[0027]報(bào)表結(jié)構(gòu)確定單元,用于在將XII文件的數(shù)據(jù)填入報(bào)表時,按照對應(yīng)關(guān)系,根據(jù)XII文件的根節(jié)點(diǎn)的名稱及其下的一級節(jié)點(diǎn)的名稱確定報(bào)表的名稱及其子表的名稱,并根據(jù)每個一級子節(jié)點(diǎn)下的子節(jié)點(diǎn)的名稱確定對應(yīng)子表下的各變量名;
[0028]第二數(shù)據(jù)導(dǎo)入單元,用于根據(jù)確定的每個子表的名稱及其各單元格的變量名,將XII文件的根節(jié)點(diǎn)下對應(yīng)一級子節(jié)點(diǎn)的所有子節(jié)點(diǎn)的數(shù)據(jù)依次填入該子表的對應(yīng)單元格。
[0029]可選的,報(bào)表為2x061表。
[0030]可選的,設(shè)定單元格為報(bào)表中位于第一行第一列的單元格。
[0031]上述實(shí)施例中,在報(bào)表申報(bào)提交時,將報(bào)表各子表的單兀格的數(shù)據(jù)依次填入XII文件根節(jié)點(diǎn)下的一級子節(jié)點(diǎn)的所有子節(jié)點(diǎn);在XII數(shù)據(jù)填入報(bào)表單元格時,XII文件根節(jié)點(diǎn)下的一級子節(jié)點(diǎn)名稱為報(bào)表某個子表的名稱,這樣--對應(yīng),一級子節(jié)點(diǎn)下的子節(jié)點(diǎn)對應(yīng)此子表下面的各單元格的變量名,進(jìn)而將子節(jié)點(diǎn)的值填入到變量名為子節(jié)點(diǎn)名的單元格中,從而實(shí)現(xiàn)了 XII文件和報(bào)表之間數(shù)據(jù)的快速交互,減輕了工作人員的工作負(fù)擔(dān),提高工作效率。
【專利附圖】
【附圖說明】
[0032]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0033]圖1為根據(jù)本發(fā)明一實(shí)施例的數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和XII文件數(shù)據(jù)交互的方法流程圖;
[0034]圖2為根據(jù)本發(fā)明一實(shí)施例的數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和)011文件數(shù)據(jù)交互的裝置示意圖。
【具體實(shí)施方式】
[0035]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有付出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0036]圖1為根據(jù)本發(fā)明一實(shí)施例的數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和XII文件數(shù)據(jù)交互的方法流程圖;如圖所示,該方法包括以下步驟:
[0037]3102,將報(bào)表分解為多個子表,并為每個子表命名,以及將報(bào)表的設(shè)定單兀格設(shè)置為固定的配置區(qū)域,用以記錄多個子表的名稱和類型,其中每個子表為非明細(xì)表、固定行明細(xì)表和非固定行明細(xì)表中的任一種;
[0038]其中,上述報(bào)表可以是常用的2x^1表。在將報(bào)表分解為多個子表時,可以通過報(bào)表中的文本提取函數(shù)來實(shí)現(xiàn)。無論報(bào)表的樣式結(jié)構(gòu)多么復(fù)雜,在納稅申報(bào)系統(tǒng)里面,數(shù)據(jù)報(bào)表總能分解為非明細(xì)表、固定行明細(xì)表或者非固定行明細(xì)表,這三類報(bào)表中的一種或者多種共同組成了一張完整的報(bào)表。本步驟中將一張完整的報(bào)表分解為幾個子表,每個子表都屬于這三類報(bào)表中的一種。
[0039]只要讀取固定的配置區(qū)域的內(nèi)容便可知道本報(bào)表被分解為了幾個子表,每個子表分別是何種類型,這里的類型是指非明細(xì)表、固定行明細(xì)表和非固定行明細(xì)表。其中,這里的設(shè)定單元格可以是報(bào)表中位于第一行第一列的單元格,方便用戶快速定位到固定的配置區(qū)域并查看其中的內(nèi)容。
[0040]假定報(bào)表第一行的行號為1,第一列的列號為八,則可以將報(bào)表的第一行第一列單元格八1設(shè)置為固定的配置區(qū)域,用以記錄報(bào)表分解的所有子表的信息。
[0041]在對分解的子表進(jìn)行命名時,命名規(guī)則可以是子表的簡稱+表種類代碼+:+表名稱,簡稱可以為一個字符,例如可選取八-2或1-9 ;例如,非明細(xì)表的類型代碼為0,固定行明細(xì)表的類型代碼為1,非固定行明細(xì)表的類型代碼為2或者3 (2和3的區(qū)別可以限定為打印時處理分頁方式不同依據(jù)上述命名規(guī)則,對每個子表定義一個名稱,子表與子表之間用“ ~ ”號連接,例如八0:冊八0~83:~02:表示此張報(bào)表被分解為了一個非明細(xì)表表八,名稱為冊八0,一個非固定行明細(xì)表8,名稱為?0^01,還有一個非固定行明細(xì)表0,名稱為
[0042]3104,定義報(bào)表中每個單元格的變量名,變量名包括該單元格所在子表的名稱,該單元格的數(shù)據(jù)類型,該單元格所允許的最小和最大數(shù)據(jù)長度、該單元格的唯一識別10 ;
[0043]在給單元格設(shè)置變量名時,可以通過自動獲取該單元格所在的子表的名稱,該單元格的數(shù)據(jù)類型,該單元格所允許的最小和最大數(shù)據(jù)長度,以及該單元格的唯一識別10(行號為1,列號為八的10為八1)等信息;可以通過交互界面工具接收用戶輸入此單元格所在子表的名稱,該單元格的數(shù)據(jù)類型,該單元格所允許的最小和最大數(shù)據(jù)長度,該單元格的唯一識別10等信息,進(jìn)而根據(jù)所獲取或所輸入的信息設(shè)置單元格的變量名。例如變量名為81^13021.22^表示81表中變量名為22邛的變量,變量是數(shù)值型,最大支持13位整數(shù),2位小數(shù),變量可以為空;變量名八0000001333聊表示八0表中變量名為333聊的變量,變量是日期型,變量不能為空。
[0044]3106,在X祖^文件與報(bào)表之間建立對應(yīng)關(guān)系,對應(yīng)關(guān)系包括:將X祖^文件的根節(jié)點(diǎn)與報(bào)表對應(yīng),將根節(jié)點(diǎn)下的一級子節(jié)點(diǎn)與報(bào)表的子表--對應(yīng),將每個一級子節(jié)點(diǎn)下的子節(jié)點(diǎn)和與其對應(yīng)子表下的各變量名一一對應(yīng);
[0045]3108,根據(jù)對應(yīng)關(guān)系,在X見文件與報(bào)表之間進(jìn)行數(shù)據(jù)交互。
[0046]其中,XIII文件與報(bào)表之間的數(shù)據(jù)交互包括根據(jù)報(bào)表數(shù)據(jù)生成XIII文件以及將X見文件的數(shù)據(jù)填入報(bào)表。
[0047]在根據(jù)報(bào)表數(shù)據(jù)生成X文件時,解析報(bào)表,獲取設(shè)定單元格中記錄的多個子表的名稱和類型,根據(jù)多個子表的名稱和類型確定XII文件的根節(jié)點(diǎn)下的一級子節(jié)點(diǎn),以及根據(jù)每個子表的各變量名確定其對應(yīng)一級子節(jié)點(diǎn)下的子節(jié)點(diǎn);按照每個子表的名稱逐一讀取報(bào)表上的數(shù)據(jù),根據(jù)每個子表的名稱和單元格的變量名,逐一讀取對應(yīng)單元格的數(shù)據(jù),并將該單元格的數(shù)據(jù)導(dǎo)入XII文件的對應(yīng)節(jié)點(diǎn)。
[0048]在將XII文件的數(shù)據(jù)填入報(bào)表時,按照對應(yīng)關(guān)系,根據(jù)XII文件的根節(jié)點(diǎn)的名稱及其下的一級節(jié)點(diǎn)的名稱確定報(bào)表的名稱及其子表的名稱,并根據(jù)每個一級子節(jié)點(diǎn)下的子節(jié)點(diǎn)的名稱確定對應(yīng)子表下的各變量名;根據(jù)確定的每個子表的名稱及其各單元格的變量名,將XII文件的根節(jié)點(diǎn)下對應(yīng)一級子節(jié)點(diǎn)的所有子節(jié)點(diǎn)的數(shù)據(jù)依次填入該子表的對應(yīng)單元格。
[0049]上述實(shí)施例中,在報(bào)表申報(bào)提交時,將報(bào)表各子表的單兀格的數(shù)據(jù)依次填入XII文件根節(jié)點(diǎn)下的一級子節(jié)點(diǎn)的所有子節(jié)點(diǎn);在XII數(shù)據(jù)填入報(bào)表單元格時,XII文件根節(jié)點(diǎn)下的一級子節(jié)點(diǎn)名稱為報(bào)表某個子表的名稱,這樣--對應(yīng),一級子節(jié)點(diǎn)下的子節(jié)點(diǎn)對應(yīng)此子表下面的各單元格的變量名,進(jìn)而將子節(jié)點(diǎn)的值填入到變量名為子節(jié)點(diǎn)名的單元格中,從而實(shí)現(xiàn)了 XII文件和報(bào)表之間數(shù)據(jù)的快速交互,減輕了工作人員的工作負(fù)擔(dān),提高工作效率。
[0050]與上述方法實(shí)施例相適應(yīng),圖2示出了本發(fā)明一實(shí)施例的數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和X肌^文件數(shù)據(jù)交互的裝置示意圖。如圖所示,該裝置包括:
[0051]報(bào)表分解模塊10,用于將報(bào)表分解為多個子表,并為每個子表命名,以及將報(bào)表的設(shè)定單元格設(shè)置為固定的配置區(qū)域,用以記錄多個子表的名稱和類型,其中每個子表為非明細(xì)表、固定行明細(xì)表和非固定行明細(xì)表中的任一種;
[0052]變量名定義模塊20,用于定義報(bào)表中每個單元格的變量名,變量名包括該單元格所在子表的名稱,該單元格的數(shù)據(jù)類型,該單元格所允許的最小和最大數(shù)據(jù)長度、該單元格的唯一識別10 ;
[0053]關(guān)系對應(yīng)模塊30,用于在可擴(kuò)展標(biāo)記語言X祖^文件與報(bào)表之間建立對應(yīng)關(guān)系,對應(yīng)關(guān)系包括:將XII文件的根節(jié)點(diǎn)與報(bào)表對應(yīng),將根節(jié)點(diǎn)下的一級子節(jié)點(diǎn)與報(bào)表的子表一一對應(yīng),將每個一級子節(jié)點(diǎn)下的子節(jié)點(diǎn)和與其對應(yīng)子表下的各變量名一一對應(yīng);
[0054]數(shù)據(jù)交互模塊40,用于根據(jù)對應(yīng)關(guān)系,在X祖^文件與報(bào)表之間進(jìn)行數(shù)據(jù)交互。
[0055]可選的,數(shù)據(jù)交互模塊包括:
[0056]XII結(jié)構(gòu)確定單元,用于在根據(jù)報(bào)表數(shù)據(jù)生成X見文件時,解析報(bào)表,獲取設(shè)定單元格中記錄的多個子表的名稱和類型,根據(jù)多個子表的名稱和類型確定XII文件的根節(jié)點(diǎn)下的一級子節(jié)點(diǎn),以及根據(jù)每個子表的各變量名確定其對應(yīng)一級子節(jié)點(diǎn)下的子節(jié)點(diǎn);
[0057]第一數(shù)據(jù)導(dǎo)入單元,用于按照每個子表的名稱逐一讀取報(bào)表上的數(shù)據(jù),根據(jù)每個子表的名稱和單元格的變量名,逐一讀取對應(yīng)單元格的數(shù)據(jù),并將該單元格的數(shù)據(jù)導(dǎo)入XII文件的對應(yīng)節(jié)點(diǎn)。
[0058]可選的,數(shù)據(jù)交互模塊包括:
[0059]報(bào)表結(jié)構(gòu)確定單元,用于在將XII文件的數(shù)據(jù)填入報(bào)表時,按照對應(yīng)關(guān)系,根據(jù)XII文件的根節(jié)點(diǎn)的名稱及其下的一級節(jié)點(diǎn)的名稱確定報(bào)表的名稱及其子表的名稱,并根據(jù)每個一級子節(jié)點(diǎn)下的子節(jié)點(diǎn)的名稱確定對應(yīng)子表下的各變量名;
[0060]第二數(shù)據(jù)導(dǎo)入單元,用于根據(jù)確定的每個子表的名稱及其各單元格的變量名,將XII文件的根節(jié)點(diǎn)下對應(yīng)一級子節(jié)點(diǎn)的所有子節(jié)點(diǎn)的數(shù)據(jù)依次填入該子表的對應(yīng)單元格。
[0061]可選的,報(bào)表為2x061表。
[0062]可選的,設(shè)定單元格為報(bào)表中位于第一行第一列的單元格。
[0063]需要指出的是,對于上述裝置實(shí)施例而言,由于其與上述方法實(shí)施例基本相似,所以描述的相對簡單,相關(guān)之處參見上述方法實(shí)施例部分的說明即可。
[0064]本領(lǐng)域普通技術(shù)人員可以理解:附圖只是一個實(shí)施例的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。
[0065]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)施例中的裝置中的模塊可以按照實(shí)施例描述分布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個或多個裝置中。上述實(shí)施例的模塊可以合并為一個模塊,也可以進(jìn)一步拆分成多個子模塊。
[0066]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲介質(zhì)包括:001、狀1、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0067]最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實(shí)施例技術(shù)方案的精神和范圍。
【權(quán)利要求】
1.一種數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和XML文件數(shù)據(jù)交互的方法,其特征在于,包括以下步驟: 將報(bào)表分解為多個子表,并為每個所述子表命名,以及將所述報(bào)表的設(shè)定單元格設(shè)置為固定的配置區(qū)域,用以記錄多個所述子表的名稱和類型,其中每個所述子表為非明細(xì)表、固定行明細(xì)表和非固定行明細(xì)表中的任一種; 定義所述報(bào)表中每個單元格的變量名,所述變量名包括該單元格所在子表的名稱,該單元格的數(shù)據(jù)類型,該單元格所允許的最小和最大數(shù)據(jù)長度、該單元格的唯一識別ID ; 在可擴(kuò)展標(biāo)記語言XML文件與所述報(bào)表之間建立對應(yīng)關(guān)系,所述對應(yīng)關(guān)系包括:將所述XML文件的根節(jié)點(diǎn)與所述報(bào)表對應(yīng),將所述根節(jié)點(diǎn)下的一級子節(jié)點(diǎn)與所述報(bào)表的子表一一對應(yīng),將每個所述一級子節(jié)點(diǎn)下的子節(jié)點(diǎn)和與其對應(yīng)子表下的各變量名一一對應(yīng);根據(jù)所述對應(yīng)關(guān)系,在所述XML文件與所述報(bào)表之間進(jìn)行數(shù)據(jù)交互。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和XML文件數(shù)據(jù)交互的方法,其特征在于,所述根據(jù)所述對應(yīng)關(guān)系,在所述XML文件與所述報(bào)表之間進(jìn)行數(shù)據(jù)交互步驟包括: 根據(jù)所述報(bào)表數(shù)據(jù)生成XML文件時,解析所述報(bào)表,獲取所述設(shè)定單元格中記錄的多個所述子表的名稱和類型,根據(jù)多個所述子表的名稱和類型確定所述XML文件的根節(jié)點(diǎn)下的一級子節(jié)點(diǎn),以及根據(jù)每個所述子表的各變量名確定其對應(yīng)一級子節(jié)點(diǎn)下的子節(jié)點(diǎn);按照每個所述子表的名稱逐一讀取所述報(bào)表上的數(shù)據(jù),根據(jù)每個所述子表的名稱和單元格的變量名,逐一讀取對應(yīng)單元格的數(shù)據(jù),并將該單元格的數(shù)據(jù)導(dǎo)入所述XML文件的對應(yīng)節(jié)點(diǎn)。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和XML文件數(shù)據(jù)交互的方法,其特征在于,所述根據(jù)所述對應(yīng)關(guān)系,在所述XML文件與所述報(bào)表之間進(jìn)行數(shù)據(jù)交互步驟包括: 將所述XML文件的數(shù)據(jù)填入報(bào)表時,按照所述對應(yīng)關(guān)系,根據(jù)所述XML文件的根節(jié)點(diǎn)的名稱及其下的一級節(jié)點(diǎn)的名稱確定報(bào)表的名稱及其子表的名稱,并根據(jù)每個所述一級子節(jié)點(diǎn)下的子節(jié)點(diǎn)的名稱確定對應(yīng)子表下的各變量名; 根據(jù)所述確定的每個子表的名稱及其各單元格的變量名,將所述XML文件的根節(jié)點(diǎn)下對應(yīng)一級子節(jié)點(diǎn)的所有子節(jié)點(diǎn)的數(shù)據(jù)依次填入該子表的對應(yīng)單元格。
4.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和XML文件數(shù)據(jù)交互的方法,其特征在于,所述報(bào)表為Excel表。
5.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和XML文件數(shù)據(jù)交互的方法,其特征在于,所述設(shè)定單元格為所述報(bào)表中位于第一行第一列的單元格。
6.一種數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和XML文件數(shù)據(jù)交互的裝置,其特征在于,包括: 報(bào)表分解模塊,用于將報(bào)表分解為多個子表,并為每個所述子表命名,以及將所述報(bào)表的設(shè)定單元格設(shè)置為固定的配置區(qū)域,用以記錄多個所述子表的名稱和類型,其中每個所述子表為非明細(xì)表、固定行明細(xì)表和非固定行明細(xì)表中的任一種; 變量名定義模塊,用于定義所述報(bào)表中每個單元格的變量名,所述變量名包括該單元格所在子表的名稱,該單元格的數(shù)據(jù)類型,該單元格所允許的最小和最大數(shù)據(jù)長度、該單元格的唯一識別ID ; 關(guān)系對應(yīng)模塊,用于在可擴(kuò)展標(biāo)記語言XML文件與所述報(bào)表之間建立對應(yīng)關(guān)系,所述對應(yīng)關(guān)系包括:將所述XML文件的根節(jié)點(diǎn)與所述報(bào)表對應(yīng),將所述根節(jié)點(diǎn)下的一級子節(jié)點(diǎn)與所述報(bào)表的子表一一對應(yīng),將每個所述一級子節(jié)點(diǎn)下的子節(jié)點(diǎn)和與其對應(yīng)子表下的各變量名一一對應(yīng); 數(shù)據(jù)交互模塊,用于根據(jù)所述對應(yīng)關(guān)系,在所述XML文件與所述報(bào)表之間進(jìn)行數(shù)據(jù)交互。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和XML文件數(shù)據(jù)交互的裝置,其特征在于,所述數(shù)據(jù)交互模塊包括: XML結(jié)構(gòu)確定單元,用于在根據(jù)所述報(bào)表數(shù)據(jù)生成XML文件時,解析所述報(bào)表,獲取所述設(shè)定單元格中記錄的多個所述子表的名稱和類型,根據(jù)多個所述子表的名稱和類型確定所述XML文件的根節(jié)點(diǎn)下的一級子節(jié)點(diǎn),以及根據(jù)每個所述子表的各變量名確定其對應(yīng)一級子節(jié)點(diǎn)下的子節(jié)點(diǎn); 第一數(shù)據(jù)導(dǎo)入單元,用于按照每個所述子表的名稱逐一讀取所述報(bào)表上的數(shù)據(jù),根據(jù)每個所述子表的名稱和單元格的變量名,逐一讀取對應(yīng)單元格的數(shù)據(jù),并將該單元格的數(shù)據(jù)導(dǎo)入所述XML文件的對應(yīng)節(jié)點(diǎn)。
8.根據(jù)權(quán)利要求6所述的數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和XML文件數(shù)據(jù)交互的裝置,其特征在于,所述數(shù)據(jù)交互模塊包括: 報(bào)表結(jié)構(gòu)確定單元,用于在將所述XML文件的數(shù)據(jù)填入報(bào)表時,按照所述對應(yīng)關(guān)系,根據(jù)所述XML文件的根節(jié)點(diǎn)的名稱及其下的一級節(jié)點(diǎn)的名稱確定報(bào)表的名稱及其子表的名稱,并根據(jù)每個所述一級子節(jié)點(diǎn)下的子節(jié)點(diǎn)的名稱確定對應(yīng)子表下的各變量名; 第二數(shù)據(jù)導(dǎo)入單元,用于根據(jù)所述確定的每個子表的名稱及其各單元格的變量名,將所述XML文件的根節(jié)點(diǎn)下對應(yīng)一級子節(jié)點(diǎn)的所有子節(jié)點(diǎn)的數(shù)據(jù)依次填入該子表的對應(yīng)單元格。
9.根據(jù)權(quán)利要求6-8任一項(xiàng)所述的數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和XML文件數(shù)據(jù)交互的裝置,其特征在于,所述報(bào)表為Excel表。
10.根據(jù)權(quán)利要求6-8任一項(xiàng)所述的數(shù)據(jù)申報(bào)系統(tǒng)中報(bào)表和XML文件數(shù)據(jù)交互的裝置,其特征在于,所述設(shè)定單元格為所述報(bào)表中位于第一行第一列的單元格。
【文檔編號】G06F17/30GK104346407SQ201310344360
【公開日】2015年2月11日 申請日期:2013年8月8日 優(yōu)先權(quán)日:2013年8月8日
【發(fā)明者】陳博, 宋穎, 蔡姝婧, 陳謙昱, 李鵬鵬, 耿立家 申請人:航天信息股份有限公司