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