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