專利名稱::一種基于非線性報(bào)表生成方法的數(shù)據(jù)關(guān)聯(lián)方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于計(jì)算機(jī)
技術(shù)領(lǐng)域:
,涉及一種報(bào)表設(shè)計(jì)時(shí)的數(shù)據(jù)關(guān)聯(lián)方法,具體涉及非線性報(bào)表生成方法中設(shè)計(jì)數(shù)據(jù)關(guān)聯(lián)的方法。
背景技術(shù):
:采用非線性報(bào)表生成方法可以很方便地設(shè)計(jì)生成動(dòng)態(tài)報(bào)表,特別能夠處理傳統(tǒng)工具難以處理的多數(shù)據(jù)集關(guān)聯(lián)報(bào)表。然而在進(jìn)行多數(shù)據(jù)集關(guān)聯(lián)計(jì)算時(shí),若子單元格表達(dá)式中涉及的數(shù)據(jù)集與主格不同時(shí),則必須采用條件表達(dá)式描述兩者的關(guān)聯(lián)關(guān)系。而報(bào)表中常會(huì)有連續(xù)多個(gè)子單元格與主格的關(guān)聯(lián)關(guān)系完全相同,這時(shí)上述方法雖然理論上仍可行,但實(shí)際操作則比較麻煩,而且多個(gè)子格計(jì)算要進(jìn)行重復(fù)的條件過濾,也會(huì)造成運(yùn)算效率降低。技術(shù)性較強(qiáng)的物理數(shù)據(jù)庫結(jié)構(gòu)對(duì)于業(yè)務(wù)人員經(jīng)常是晦澀難懂的,這時(shí)人們采用語義視圖(邏輯數(shù)據(jù)集)的方法來映射物理數(shù)據(jù)結(jié)構(gòu),通過語義層使業(yè)務(wù)人員可以采用自己熟悉的業(yè)務(wù)術(shù)語設(shè)計(jì)報(bào)表從而屏蔽專業(yè)的技術(shù)術(shù)語。但是,目前的語義層方法只能將語義視圖之間的關(guān)聯(lián)關(guān)系建立在整個(gè)視圖上,當(dāng)需要設(shè)計(jì)多個(gè)視圖關(guān)聯(lián)的報(bào)表時(shí),只能利用已建立的關(guān)聯(lián)關(guān)系將多個(gè)視圖合成為一個(gè)邏輯視圖再設(shè)計(jì)報(bào)表,無法在報(bào)表設(shè)計(jì)階段做到多視圖關(guān)聯(lián)設(shè)計(jì)。
發(fā)明內(nèi)容本發(fā)明的目的在于,基于非線性報(bào)表生成方法,針對(duì)其在不同數(shù)據(jù)集關(guān)聯(lián)時(shí)的操作復(fù)雜度及運(yùn)算效率的不足,提出修正方法降低實(shí)際操作復(fù)雜度并提高運(yùn)算效率。同時(shí),本發(fā)明還將改進(jìn)語義層中視圖關(guān)聯(lián)關(guān)系的建立機(jī)制,配合上述對(duì)非線性報(bào)表生成方法的修正,使得基于語義層采用非線性報(bào)表生成方法時(shí),可以在報(bào)表設(shè)計(jì)階段直接面向多視圖進(jìn)行關(guān)聯(lián)設(shè)計(jì)。本發(fā)明的技術(shù)方案如下一種基于非線性報(bào)表生成方法的數(shù)據(jù)關(guān)聯(lián)方法,包括如下步驟(1)在語義層的視圖字段上設(shè)置與其它視圖的關(guān)聯(lián)關(guān)系;(2)報(bào)表設(shè)計(jì)過程中,根據(jù)需要在選定的主格上添加附加數(shù)據(jù)集;(3)報(bào)表設(shè)計(jì)過程中,將語義層視圖中某字段以擴(kuò)展方式(如選出或分組)加入報(bào)表時(shí),同時(shí)根據(jù)其關(guān)聯(lián)的視圖添加到該主格的附加數(shù)據(jù)集;(4)報(bào)表設(shè)計(jì)完畢后,按非線性報(bào)表運(yùn)算規(guī)則計(jì)算報(bào)表。進(jìn)一步,在上述數(shù)據(jù)關(guān)聯(lián)方法中,步驟(1)中除了采用常規(guī)手段在兩個(gè)語義視圖之間建立關(guān)聯(lián)關(guān)系外,特別還可以在視圖中的字段(數(shù)據(jù)列)上建立本視圖與其它語義視圖之間的關(guān)聯(lián)關(guān)系(即過濾條件)。更進(jìn)一步,同一個(gè)視圖A中不同字段與另一個(gè)視圖B建立的關(guān)聯(lián)關(guān)系可能不相同,與A與B整體之間的關(guān)聯(lián)關(guān)系也可能不相同。進(jìn)一步,在上述數(shù)據(jù)關(guān)聯(lián)方法中,步驟(2)中的附加數(shù)據(jù)集是指附加在提高主格上對(duì)其他數(shù)據(jù)集的過濾運(yùn)算。更進(jìn)一步,同一個(gè)主格上可以同時(shí)附加多個(gè)數(shù)據(jù)集的過濾運(yùn)算,共同該主格構(gòu)成附加數(shù)據(jù)集。進(jìn)一步,在上述數(shù)據(jù)關(guān)聯(lián)方法中,步驟(3)中添加的附加數(shù)據(jù)集是語義層中與加入字段建立過關(guān)聯(lián)的且在報(bào)表中用到的視圖,對(duì)應(yīng)的過濾運(yùn)算即是該字段時(shí)該視圖的關(guān)聯(lián)關(guān)系。進(jìn)一步,在上述數(shù)據(jù)關(guān)聯(lián)方法中,步驟(4)中的報(bào)表計(jì)算中,除非線性報(bào)表生成方法中已規(guī)定的由于劃分運(yùn)算造成的數(shù)據(jù)集范圍限制之外,如果單元格的主格線上有某擴(kuò)展格的附加數(shù)據(jù)集中有對(duì)某數(shù)據(jù)集的過濾運(yùn)算,則在計(jì)算該單元格表達(dá)式時(shí),對(duì)于同一數(shù)據(jù)集的運(yùn)算也將被限制在過濾后的數(shù)據(jù)集中。本發(fā)明的有益效果在于(1)降低非線性報(bào)表生成方法在處理多源關(guān)聯(lián)報(bào)表時(shí)的操作復(fù)雜度并提高運(yùn)算效率。由于附加數(shù)據(jù)集在主格已被過濾,則在子格(可能有多個(gè))中寫表達(dá)式時(shí)則不必再重復(fù)填寫過濾條件,從而簡化了書寫。同時(shí),由于在主格已經(jīng)完成了過濾運(yùn)算,在子格只要直接使用運(yùn)算結(jié)果而無須再次運(yùn)算,減少了過濾次數(shù)從而提高了運(yùn)算效率。(2)使得采用非線性報(bào)表生成方法可以基于語義層在報(bào)表設(shè)計(jì)階段進(jìn)行多視圖關(guān)聯(lián)設(shè)計(jì)。在設(shè)計(jì)報(bào)表時(shí)已將與視圖字段關(guān)聯(lián)的其它視圖的關(guān)聯(lián)條件作為附加數(shù)據(jù)集加入到單元格中,這樣在報(bào)表擴(kuò)展計(jì)算時(shí),如果該擴(kuò)展格的子格中涉及到了與該字段關(guān)聯(lián)的數(shù)據(jù)集計(jì)算,則將被自動(dòng)過濾,從而達(dá)到多數(shù)據(jù)集關(guān)聯(lián)的目的。圖1為一個(gè)多源關(guān)聯(lián)報(bào)表。圖2為本發(fā)明所述方法的流程圖。具體實(shí)施例方式下面通過具體案樣例說明本發(fā)明的實(shí)施手段。如圖1這樣的多源關(guān)聯(lián)報(bào)表,設(shè)相關(guān)物理表結(jié)構(gòu)為createtable″CONTRACT″(---合同表″CONTRACTNO″CHAR(20),---合同號(hào)″SIGNDATE″TIMESTAMP,---簽定日期″CUSTOMERID″CHAR(10),---客戶編號(hào)″TRANSPORTDATE″TIMESTAMP,---到港時(shí)間″TRANSPORT″CHAR(10),---港口″TRANSPORTMETHOD″CHAR(1),---運(yùn)輸方案″AMOUNT″DECIMAL(16,2),---金額″SALESMAN″CHAR(10),---賣方″PAYMENT″CHAR(1),---應(yīng)付金額″FINISHED″CHAR(1),---是否完成″PAYAMOUNT″DECIMAL(16,2)---共付金額);createtable″CUSTOMER″(---客戶表″CUSTOMER_ID″CHAR(10),---客戶編號(hào)″CUSTOMER_NAME″CHAR(20),---客戶名稱″TEL″CHAR(10),---電話″FAX″CHAR(10),---傳真″ADDRESS″CHAR(255),---地址″PROVINCE″CHAR(10),---省份″CITY″CHAR(10),---城市″MEMO″CHAR(255),---備注″CUSTOMERTYPE″CHAR(1)---客戶類型);例1,采用附加數(shù)據(jù)集實(shí)現(xiàn)數(shù)據(jù)關(guān)聯(lián)(1)語義層的視圖字段上設(shè)置與其它視圖的關(guān)聯(lián)關(guān)系;本例不使用語義層,省略該步。(2)報(bào)表設(shè)計(jì)過程中,根據(jù)需要在選定的主格上添加附加數(shù)據(jù)集;在基于非線性報(bào)表生成方法設(shè)計(jì)報(bào)表時(shí),設(shè)數(shù)據(jù)集為ds1=SELECTCUSTOMER_ID,CUSTOMER_NAMEFROMCUSTOMERds2=SELECTCONTRACTNO,CUSTOMERID,AMOUNT,SIGNDATEFROMCONTRACT報(bào)表模板設(shè)計(jì)如下其中A2是縱向擴(kuò)展格,同時(shí)在其中加入針對(duì)ds2的過濾條件ds2.filter(ds1.CUSTOMER_ID==ds2.CUSTOMERID)作為A2的附加數(shù)據(jù)集,其中filter為過濾函數(shù)。(3)報(bào)表設(shè)計(jì)過程中,將語義層視圖中某字段以擴(kuò)展方式(如選出或分組)加入報(bào)表時(shí),同時(shí)根據(jù)其關(guān)聯(lián)的視圖添加到該主格的附加數(shù)據(jù)集;本例不使用語義層,省略該步。(4)報(bào)表設(shè)計(jì)完畢后,按非線性報(bào)表運(yùn)算規(guī)則計(jì)算報(bào)表。根據(jù)前述規(guī)則計(jì)算后,即得到圖1。本例中,由于在A2的附加數(shù)據(jù)集中設(shè)置了針對(duì)ds2的過濾條件,則在B2/C2/D2中引用ds2中的數(shù)據(jù)項(xiàng)時(shí)已被A2的附加數(shù)據(jù)集過濾而限制了記錄范圍,從而可以直接引用。例2,采用語義層實(shí)現(xiàn)數(shù)據(jù)關(guān)聯(lián)設(shè)上述兩個(gè)物理表對(duì)應(yīng)的語義層視圖及其字段的名稱是表名和字段名后面的說明詞。(1)語義層的視圖字段上設(shè)置與其它視圖的關(guān)聯(lián)關(guān)系;在“客戶表”的“客戶編號(hào)”字段上設(shè)置與“合同表”的關(guān)聯(lián)關(guān)系合同表.過濾(合同表.客戶編號(hào)=客戶表.客戶編號(hào))(2)報(bào)表設(shè)計(jì)過程中,根據(jù)需要在選定的主格上添加附加數(shù)據(jù)集;本例使用語義層,省略該步。(3)報(bào)表設(shè)計(jì)過程中,將語義層視圖中某字段以擴(kuò)展方式(如選出或分組)加入報(bào)表時(shí),同時(shí)根據(jù)其關(guān)聯(lián)的視圖添加到該主格的附加數(shù)據(jù)集;報(bào)表模板設(shè)計(jì)如下將語義視圖“客戶表”中“客戶編號(hào)”字段以擴(kuò)展方式加入到A2格后,將使A2格成為擴(kuò)展格,同時(shí)自動(dòng)將該字段與其它視圖的關(guān)聯(lián)關(guān)系添加到A2的附加數(shù)據(jù)集中,即在A2的附加數(shù)據(jù)集加上步驟(1)中建立的關(guān)聯(lián)關(guān)系合同表.過濾(合同表.客戶編號(hào)=客戶表.客戶編號(hào))(4)報(bào)表設(shè)計(jì)完畢后,按非線性報(bào)表運(yùn)算規(guī)則計(jì)算報(bào)表。根據(jù)前述規(guī)則計(jì)算后,即得到圖1。本例中,在將語義視圖字段加入A2時(shí),會(huì)自動(dòng)與“合同表”的關(guān)聯(lián)關(guān)系添加進(jìn)A2的附加數(shù)據(jù)集,這時(shí)B2/C2/D2中引用“合同表”的數(shù)據(jù)項(xiàng)時(shí)已被A2的附加數(shù)據(jù)集過濾而限制了記錄范圍,從而可以直接引用。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。權(quán)利要求1.一種基于非線性報(bào)表生成方法的數(shù)據(jù)關(guān)聯(lián)方法,包括如下步驟(1)在語義層的視圖字段上設(shè)置與其它視圖的關(guān)聯(lián)關(guān)系;(2)報(bào)表設(shè)計(jì)過程中,根據(jù)需要在選定的主格上添加附加數(shù)據(jù)集;(3)報(bào)表設(shè)計(jì)過程中,將語義層視圖中某字段以擴(kuò)展方式(如選出或分組)加入報(bào)表時(shí),同時(shí)根據(jù)其關(guān)聯(lián)的視圖添加到該主格的附加數(shù)據(jù)集;(4)報(bào)表設(shè)計(jì)完畢后,按非線性報(bào)表運(yùn)算規(guī)則計(jì)算報(bào)表。2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)關(guān)聯(lián)方法,其特征在于步驟(1)中的關(guān)聯(lián)關(guān)系能夠設(shè)置在語義視圖的字段上。3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)關(guān)聯(lián)方法,其特征在于步驟(2)中在同一主格上附加數(shù)據(jù)集為多個(gè)針對(duì)數(shù)據(jù)集的過濾運(yùn)算。4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)關(guān)聯(lián)方法,其特征在于步驟(3)中將添加所有語義層中與該字段建立了關(guān)聯(lián)關(guān)系的、且在報(bào)表中用到的語義視圖到該主格的附加數(shù)據(jù)集中。5.根據(jù)權(quán)利要求1所述數(shù)據(jù)關(guān)聯(lián)方法,其特征在于步驟(4)中計(jì)算報(bào)表時(shí),如果單元格的主格線上有某擴(kuò)展格的附加數(shù)據(jù)集中有對(duì)某數(shù)據(jù)集的過濾運(yùn)算,則在計(jì)算該單元格表達(dá)式時(shí),對(duì)于同一數(shù)據(jù)集的運(yùn)算將被限制在過濾后的數(shù)據(jù)集中。全文摘要本發(fā)明屬于計(jì)算機(jī)
技術(shù)領(lǐng)域:
,涉及一種報(bào)表設(shè)計(jì)時(shí)的數(shù)據(jù)關(guān)聯(lián)方法,具體涉及非線性報(bào)表生成方法中設(shè)計(jì)數(shù)據(jù)關(guān)聯(lián)的方法。該方法首先在語義視圖的字段上設(shè)置與其他視圖的關(guān)聯(lián),然后在報(bào)表設(shè)計(jì)時(shí)在主格上添加附加數(shù)據(jù)集,同時(shí)自動(dòng)將加入報(bào)表的語義視圖字段的關(guān)聯(lián)視圖設(shè)置成單元格的附加數(shù)據(jù)集,最后擴(kuò)展計(jì)算得到生成的報(bào)表。本發(fā)明將降低非線性報(bào)表生成方法中對(duì)于多數(shù)據(jù)集關(guān)聯(lián)定義的操作復(fù)雜度并提高運(yùn)算效率,同時(shí)使得采用非線性報(bào)表生成方法可以基于語義層在報(bào)表設(shè)計(jì)階段進(jìn)行多視圖關(guān)聯(lián)設(shè)計(jì)。文檔編號(hào)G06F17/24GK101046824SQ20071009782公開日2007年10月3日申請日期2007年4月18日優(yōu)先權(quán)日2007年4月18日發(fā)明者蔣步星申請人:北京潤乾信息系統(tǒng)技術(shù)有限公司