專利名稱:保持不同更新源的數(shù)值項并存的方法
技術(shù)領域:
本發(fā)明涉及一種在計算機軟件中處理擴展算數(shù)計算式、在式中保持交互編輯的數(shù)值項與自動更新的數(shù) 值項并存的方法,屬于計算機軟件開發(fā)與應用領域。
背景技術(shù):
在許多含有算數(shù)計算式處理功能的軟件中,既可以通過人機交互界面、以交互方式直接編輯計算式中 的某一數(shù)值項的值,也可以由軟件通過業(yè)務邏輯、自動計算得出計算式中某一數(shù)值項的值并更新該數(shù)值項。 在許多計算機軟件應用領域,存在著同時保存計算式中不同數(shù)值更新源的要求,即,要求在計算式中同時 保存人工編輯結(jié)果和自動更新結(jié)果。例如, 一種自動計算建筑工程的工程量的計算機軟件,主要功能是由 工程模型中自動提取建筑構(gòu)件的工程量,并自動生成工程量計算式,工程量計算式就是一種帶有文字注解 的擴展算數(shù)計算式。因為可能存在工程模型不準確、不完善、或者自動生成工程量計算式的規(guī)則不正確等 情況,所以,就存在著自動生成的工程量計算式中的某些數(shù)值項、以及整個計算式的計算結(jié)果不正確的情 況,在這種情況下,軟件的操作者可以直接編輯計算式中的某些數(shù)值項或者計算式的計算值。當軟件操作 者編輯工程量計算式以后,如果再次進行自動生成工程量計算式的操作,工程量計算式中那些由軟件操作 者直接編輯的內(nèi)容,不能被自動生成的數(shù)值更新掉,應該保留。因此,最終工程量計算式的正確性,要通 過在工程量計算式中同時保留交互編輯內(nèi)容與自動更新內(nèi)容來實現(xiàn)。由于各種涉及算數(shù)計算式的應用軟件可能存在復雜的業(yè)務需求、或者軟件的使用者對計算式中各數(shù)值 項在不同時期內(nèi)的理解不同,就可能存在著更改這些數(shù)值的更新源的需要。例如,當他們認為某項直接編 輯的數(shù)值項并不比通過自動計算產(chǎn)生更合適時,需要用一種簡單的方法通知軟件在后續(xù)的自動更新過程 中對該項數(shù)值自動更新,不再保護該數(shù)值的交互編輯結(jié)果。當計算式顯示在屏幕上時,不同更新源的數(shù)值應該明確區(qū)別開來,以便隨時提醒軟件的使用者,有目 標地選擇需要編輯的數(shù)值項。現(xiàn)有的算數(shù)計算式解釋或者計算技術(shù),并未考慮上述實用需求,無疑需要一種新的方法,同時滿足上 述實用要求。發(fā)明內(nèi)容在涉及算數(shù)計算式處理的軟件中,為了實現(xiàn)在擴展算數(shù)計算式中同時容納來自不同更新源的數(shù)值項, 并能夠允許軟件操作者以簡單的方式改變數(shù)值項的更新源標示,以便對數(shù)據(jù)項的更新源的變更通知軟件, 同時明確地向軟件操作者顯示出該擴展算數(shù)計算式中數(shù)據(jù)項的更新源,該發(fā)明方法在擴展算數(shù)計算式中引 入特定非數(shù)值符號,具體方法為在擴展算數(shù)計算式內(nèi)、在需要軟件依據(jù)業(yè)務邏輯自動更新的數(shù)值項的適當位置,添加特定非數(shù)值符號, 當軟件依據(jù)業(yè)務邏輯自動計算、并更新所述擴展算數(shù)計算式中的數(shù)值項時,通過判別某數(shù)值項是否帶有所 述的特定非數(shù)值符號,來決定是否自動更新該所述數(shù)值項只有當該所述數(shù)值項帶有特定非數(shù)值符號時, 才自動更新該所述數(shù)值項;或者,在擴展算數(shù)計算式內(nèi)、在不允許軟件依據(jù)業(yè)務邏輯自動更新的數(shù)值項的適當位置,添加特定非 數(shù)值符號,當軟件依據(jù)業(yè)務邏輯自動計算、并更新所述擴展算數(shù)計算式中的數(shù)值項時,通過判別某數(shù)值項是否帶有所述的特定非數(shù)值符號,來決定是否自動更新該所述數(shù)值項只有當該所述數(shù)值項不帶有特定非 數(shù)值符號時,才自動更新該所述數(shù)值項;根據(jù)所述的方法,所述特定非數(shù)值符號,可以是一個單獨的、除數(shù)字之外的可見符號,也可以是由字 符、數(shù)字等組合而成的特定的符號;根據(jù)所述的方法,向擴展算數(shù)計算式中的數(shù)值項上添加、刪除特定非數(shù)值符號的操作,可以由軟件操 作者通過輸入設備交互式執(zhí)行,也可以由軟件依據(jù)業(yè)務邏輯自動執(zhí)行。本發(fā)明所涉及到的技術(shù)術(shù)語解釋如下(1) 擴展算數(shù)計算式標準的算數(shù)計算式,是由數(shù)值項和運算符組成的式子,并可以根據(jù)式中計算 符的數(shù)學含義算出式子的數(shù)值,最簡單的算數(shù)計算式僅包含單個數(shù)值項;在標準的算數(shù)計算式基礎上,在 數(shù)值項的適當位置添加非數(shù)值的文本或者符號,就構(gòu)成了擴展算數(shù)計算式,擴展算數(shù)計算式包括標準的算 數(shù)計算式。(2) 數(shù)值項是在擴展算數(shù)計算式中、由數(shù)字0—9、小數(shù)點、以及數(shù)學函數(shù)標示符構(gòu)成的項。例如, 3.14就是一個數(shù)值項,sin 3.14也是一個數(shù)值項,sin 3.14表示弧度值3.14的正弦函數(shù)值。(3) 更新源指擴展算數(shù)計算式中數(shù)值項更新的途徑或者來源,我們把更新源劃分為兩種一種是 依據(jù)業(yè)務邏輯由軟件自動更新,另一種是軟件操作者通過計算機輸入設備直接編輯更新。(4) 特定非數(shù)值符號是為實現(xiàn)某種軟件功能,在擴展算數(shù)計算式中引入的非數(shù)值性的符號,該符號可以是在標準計算機鍵盤上可以看到的任何一個非數(shù)值性的符號,也可以是由字符、數(shù)字等組成的非數(shù)值性的組合符號。例如,單引號(')是由一個字符構(gòu)成的特定非數(shù)值符號,而[Auto]則是由多個字符 和符號組成的組合性特定非數(shù)值符號。(5) 業(yè)務邏輯是指在包含擴展算數(shù)計算式處理功能的軟件中、軟件可以依據(jù)其應用領域內(nèi)的其它處理對象所具有的內(nèi)在關(guān)聯(lián)關(guān)系、計算出擴展算數(shù)計算式中某一個或者多個數(shù)值項的值、并且決定式中相 鄰數(shù)值項之間的運算符的邏輯。例如,某會計應用軟件,可以根據(jù)某公司與某員工簽訂的合同工資額以及其它應扣工資數(shù)、應增工資數(shù),計算出當月實際發(fā)放給該員工的工資的計算式3500.00[合同額]-285.00[個人所得稅]=3215.00元,其中,數(shù)值項"285. OO[個人所得稅]",是通過"應發(fā)工資數(shù)"、"不納 稅最高工資限額"和"稅率"計算得出的,當變更"應發(fā)工資數(shù)"、"不納稅最髙工資限額"和"稅率"中 的任何一個時,軟件會自動計算并更新工資計算式中的"個人所得稅"數(shù)值項,因此,工資計算式的建立 以及個人所得稅計算所依據(jù)的就是業(yè)務邏輯。
圖l是本發(fā)明的實施實例中,所舉例的一段墻體的平面圖。 圖2是本發(fā)明的實施實例中,所舉例的一段墻體的立面圖。實現(xiàn)本發(fā)明的一種實施方式下面結(jié)合一種建筑工程的工程量計算軟件的業(yè)務邏輯,闡述本發(fā)明的一種實施方式。圖1和圖2所示, 是一段墻體的平面圖和立面圖。在軟件的運行過程中,軟件操作者通過交互式的圖形繪制操作,產(chǎn)生建筑構(gòu)件的工程模型。當首先繪制出該段墻體時,墻體上還沒有窗Cl,此時,墻體的工程量為12.00'[中線長]X 3.3,[高]X0.37,[厚] (1)式(1)是由上述工程量計算軟件從工程模型中提取該段墻體的中心線長度、髙度和厚度值,依據(jù)軟件內(nèi)定的業(yè)務邏輯墻體工程量計算規(guī)則,自動產(chǎn)生的計算該段墻體工程量的式子。式中,在每一個數(shù)值 項的最后一位數(shù)字后面,都附帶一個單引號,該符號為特定非數(shù)值符號,在該軟件中規(guī)定帶有該特定非 數(shù)值符號的數(shù)值項為需要自動更新的數(shù)值項,不帶有該特定非數(shù)值符號的數(shù)值項不允許自動更新。在產(chǎn)生計算式(1)以后,軟件操作者發(fā)現(xiàn)該段墻體的工程量應該使用"墻體凈長"而不是"墻體 中線長",于是他直接編輯第一個數(shù)值項,將式(1)修改為11.76[凈長]X3,3'[髙]X0.37'[厚] (2) 在是(2)中,軟件操作者在更改第一個數(shù)值項的同時,取消了數(shù)字后面的單引號。在后續(xù)的軟件操 作中,軟件操作者在該段墻體上增加一個立面寬度為1.8m、立面高度為2. lm的窗Cl,這一操作引發(fā)一次針 對該段墻體的工程量計算式的自動更新按照軟件的內(nèi)定業(yè)務邏輯,重新提取墻體的中線長度、墻體離度、 墻體厚度,并提取窗C1的立面尺寸,在更新計算式(2)時,檢測到數(shù)值項"11.76[凈長]"沒有特定非數(shù) 值符號,為不允許自動更新的數(shù)值項,盡管從工程模型中重新提取的墻體中線長度為"12.00m",與式中 的11.76m不同,但是依據(jù)該發(fā)明方法所規(guī)定的規(guī)則,應該保持式中的編輯結(jié)果不變,則式(2)更新為 (11.76[凈長]X3.3'[高]一 1.8'X2.1'[C1])X0.37,[厚] (3)當軟件操作者再進行一次針對工程模型的編輯操作、將工程模型中的墻體的厚度由0. 37m更改為0. 24m 時,則再次引發(fā)針對計算式(3)的自動更新,按照上述將式(2)更新為式(3)的方法,式(3)將更新 為式(4):(1L76[凈長]X3.3,[髙]一1.8'X2.1'[C1])X0.24'[厚] (4)從上述兩次自動更新過程可以看出,不論是在擴展算數(shù)計算式中自動新增數(shù)值項還是自動更新巳有的 數(shù)值項,依據(jù)該方法,都可以在自動更新的同時,保留軟件操作者直接編輯的結(jié)果。同理,可以看出,當軟件操作者認為某些已經(jīng)直接編輯過的數(shù)值項應該由軟件自動更新時,只要在這 些數(shù)值項上添加一個單引號、并啟動自動更新程序即可實現(xiàn)。為了保證擴展算數(shù)計算式中的數(shù)值項在編輯過程中具有穩(wěn)定的內(nèi)定業(yè)務含義,不至于因為軟件操作者 更改了數(shù)值項中的內(nèi)容而喪失了其內(nèi)定的業(yè)務含義,擴展算數(shù)計算式以及式中的每一個數(shù)值項在內(nèi)存中可 以建立如下格式的二進制映像FormulaID:擴展計箅式的業(yè)務邏輯編號,如"外墻體工程量"的業(yè)務邏輯編號為"WQ01"; ItemiDInFormula:數(shù)值項在計算式中的內(nèi)定業(yè)務含義編號,如"墻體中心線長度"的內(nèi)定含義編號 為"Q001":ItemValue:數(shù)值項的值或者函數(shù)值ItemNote:數(shù)值項的擴展注釋文字,如墻體中心線的擴展注釋文字為[中線長]:ItemAutoFlag:數(shù)值項的特定非數(shù)值符號,當該標志為單引號時,則意味著該數(shù)值項是允許自動更新 的數(shù)值項;在依據(jù)業(yè)務邏輯自動生成擴展算數(shù)計算式時,可以按照上述格式將所生成的擴展算數(shù)計算式保存在內(nèi) 存中;當需要顯示、打印擴展算數(shù)計算式時,軟件將依據(jù)擴展算數(shù)計算式的業(yè)務邏輯編號,決定式中各數(shù) 值項與前一項的運算連接符,從而形成直觀的擴展算數(shù)計算式。很顯然,也可以約定當數(shù)值項的特定非數(shù)值符號ItemAutoFlag的值不是單引號時,則表示其對應 的數(shù)值項允許自動更新;當數(shù)值項的特定非數(shù)值符號ItemAutoFlag的值為單引號時,則其對應的數(shù)值項 為不允許自動更新的數(shù)值項;同樣可以實現(xiàn)不同更新源的數(shù)值項共存、以及可以由軟件操作者直接改變數(shù) 值項更新源標示的效果。工業(yè)實用性本發(fā)明通過在計算式中的數(shù)值項上引入特定非數(shù)值符號、并規(guī)定該特定非數(shù)值符號的具體含義的方 法,來實現(xiàn)在擴展數(shù)學計算式中同時容納不同更新源的數(shù)值項共存的功能,并能將這種功能淸晰地展示在 軟件操作者面前,時刻提示軟件操作者,哪些數(shù)值項是由系統(tǒng)的業(yè)務邏輯自動生成、自動維護的,哪些是 軟件不再自動維護的,軟件操作者可以通過直接添加、刪除特定非數(shù)值符號來控制軟件是否對計算式中的 具體數(shù)值項進行自動更新,這種方式同時具有直觀、操作簡便的特點,使用該發(fā)明方法,將使得涉及算數(shù) 計算式處理的應用軟件具有明顯的靈活性和易用性。
權(quán)利要求
1.一種在擴展算數(shù)計算式中保持不同更新源的數(shù)值項并存的方法,其特征在于在擴展算數(shù)計算式內(nèi)、在需要軟件依據(jù)業(yè)務邏輯自動更新的數(shù)值項的適當位置,添加特定非數(shù)值符號,當軟件依據(jù)業(yè)務邏輯自動計算、并更新所述擴展算數(shù)計算式中的數(shù)值項時,通過判別某數(shù)值項是否帶有所述的特定非數(shù)值符號,來決定是否自動更新該所述數(shù)值項只有當該所述數(shù)值項帶有特定非數(shù)值符號時,才自動更新該所述數(shù)值項;或者,在擴展算數(shù)計算式內(nèi)、在不允許軟件依據(jù)業(yè)務邏輯自動更新的數(shù)值項的適當位置,添加特定非數(shù)值符號,當軟件依據(jù)業(yè)務邏輯自動計算、并更新所述擴展算數(shù)計算式中的數(shù)值項時,通過判別某數(shù)值項是否帶有所述的特定非數(shù)值符號,來決定是否自動更新該所述數(shù)值項只有當該所述數(shù)值項不帶有特定非數(shù)值符號時,才自動更新該所述數(shù)值項;
2. 根據(jù)權(quán)利耍求1所述的方法,所述特定非數(shù)值符號,可以是一個單獨的、除數(shù)字之外的可見符號, 也可以是由字符、數(shù)字等組合而成的特定的符號。
3. 根據(jù)權(quán)利要求1所述的方法,向擴展算數(shù)計算式中的數(shù)值項上添加、刪除特定非數(shù)值符號的操作, 可以由軟件操作者通過輸入設備交互式執(zhí)行,也可以由軟件依據(jù)業(yè)務邏輯自動執(zhí)行。
全文摘要
本發(fā)明提供一種處理算數(shù)計算式的方法,用于軟件對擴展算數(shù)計算式的處理。該方法在擴展算數(shù)計算式中引入一個特定非數(shù)值符號,在軟件計算、更新計算式中數(shù)值項的時候,首先判斷數(shù)值項中是否含有特定非數(shù)值符號,然后再根據(jù)軟件所約定的該特定非數(shù)值符號的含義,決定是否更新該數(shù)值項。該方法實現(xiàn)了在擴展的算數(shù)計算式中同時容納來自不同更新源的數(shù)值項、并能夠允許軟件操作者以簡單的方式改變數(shù)值項的更新源標示,同時明確地向軟件操作者顯示出該擴展算數(shù)計算式中數(shù)據(jù)項的更新源。
文檔編號G06F9/44GK101216767SQ200810032629
公開日2008年7月9日 申請日期2008年1月14日 優(yōu)先權(quán)日2008年1月14日
發(fā)明者劉守奎 申請人:上海同頡軟件有限公司;劉守奎