專利名稱:自動計算數(shù)值的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種自動計算數(shù)值的方法和裝置。
技術(shù)背景
在軟件系統(tǒng)中,當(dāng)最終用戶需要數(shù)學(xué)運(yùn)算的時候,一般有如下一些方式可以選 擇
1、使用操作系統(tǒng)中自帶的計算器程序或類似的控件;
2、單獨使用Excel或類似軟件運(yùn)算;
3、通過應(yīng)用系統(tǒng)中支持的自定義公式功能進(jìn)行表達(dá)式的定義,而后實現(xiàn)自動運(yùn)算。
以上三種方案中,操作方式各不相同,但使用時都不夠方便和快捷,具體問題在 于
首先,計算器程序或類似控件中有三個不方便第一、無法方便的輸入復(fù)雜的表達(dá) 式,如1+2*3+4*5,在計算器軟件中,類似操作必須通過多次計算,并要手工保存一下中間計 算的結(jié)果,最后才能算出用戶所需的結(jié)果值;第二、看到結(jié)果的同時不能看到表達(dá)式本身, 我們常??吹?,許多人在使用計算器的時候都需要多次輸入,這是因為用戶擔(dān)心自己輸入 有誤,所以要計算多次以便保障自己的輸入無誤;第三、無法方便的修改表達(dá)式,例如,如果 用戶輸入的是10個數(shù)字的和,但輸入到第九個數(shù)字的時候,發(fā)現(xiàn)第八個數(shù)字輸入錯誤了, 用戶就不得不重新開始運(yùn)算一次,而不能把中間輸錯的數(shù)字改對。
其次,選擇Excel或類似軟件來進(jìn)行數(shù)值計算的話,則用戶需要額外的啟動Excel 等軟件,而且Excel軟件本身無法方便地與數(shù)據(jù)進(jìn)行交互。
最后,應(yīng)用系統(tǒng)中的自定義公式功能能夠解決一部分計算問題,但是,自定義功能 和自動運(yùn)算功能往往是分離的,即用戶想實現(xiàn)自動運(yùn)算,必須事先定義,而不能隨需應(yīng)變的 隨時輸入隨時運(yùn)算,這不僅帶來一些操作上的不便,而且也不能適應(yīng)用戶變化的需求。
因此,需要一種新的自動計算數(shù)值的方式,能夠隨時根據(jù)用戶輸入的表達(dá)式進(jìn)行 計算,使用戶可以即時地了解表達(dá)式的計算結(jié)果,且使用戶可以隨時查看已輸入的表達(dá)式, 以對其進(jìn)行編輯修改。發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于,提供一種新的自動計算數(shù)值的方式,能夠隨時 根據(jù)用戶輸入的表達(dá)式進(jìn)行計算,使用戶可以即時地了解表達(dá)式的計算結(jié)果,且使用戶可 以隨時查看已輸入的表達(dá)式,以對其進(jìn)行編輯修改。
有鑒于此,本發(fā)明一種自動計算數(shù)值的方法,可以包括步驟102,接收用戶輸入 的公式,并發(fā)送給預(yù)設(shè)的控制器;步驟104,由控制器判斷用戶是否處于編輯狀態(tài);步驟 106,在用戶處于非編輯狀態(tài)時,將公式的計算結(jié)果返回給用戶;步驟108,在用戶處于編輯 狀態(tài)時,將公式返回給用戶。通過該技術(shù)方案,用戶可以即時地查看公式的計算結(jié)果,并可以即時地查看并修改輸入的公式。
在上述技術(shù)方案中,優(yōu)選地,公式中可以包括關(guān)鍵字;在步驟106中,從用戶的應(yīng) 用程序中,獲取關(guān)鍵字對應(yīng)的數(shù)值,并根據(jù)數(shù)值取得公式的計算結(jié)果。
在上述技術(shù)方案中,優(yōu)選地,應(yīng)用程序的類型包括B/S結(jié)構(gòu)程序、C/S結(jié)構(gòu)程序和 數(shù)據(jù)庫應(yīng)用程序;在步驟106中,當(dāng)應(yīng)用程序為B/S結(jié)構(gòu)程序時,通過JavMcript的eval 方法取得公式的計算結(jié)果,當(dāng)應(yīng)用程序為C/S結(jié)構(gòu)程序時,通過用戶操作系統(tǒng)中msscript 引擎中的eval方法取得公式的計算結(jié)果,當(dāng)應(yīng)用程序為數(shù)據(jù)庫應(yīng)用程序時,通過sql語句 進(jìn)行數(shù)據(jù)庫查詢以取得公式的計算結(jié)果。
在上述技術(shù)方案中,優(yōu)選地,在步驟102中,用戶將公式輸入到文本框中;在步驟 106中,將公式的計算結(jié)果記錄在文本框中以返回給用戶,并將公式保存在文本框的備注屬 性中;在步驟108中,從文本框的備注屬性中取得公式,并將公式記錄在文本框中以返回給 用戶。
在上述技術(shù)方案中,優(yōu)選地,在步驟104中,控制器通過監(jiān)測鍵盤輸入事件、鼠標(biāo) 輸入事件來判斷用戶是否處于編輯狀態(tài)。例如監(jiān)測到用戶輸入回車、鼠標(biāo)點擊其他編輯框 時,確定用戶離開編輯狀態(tài)。
本發(fā)明還提供一種自動計算數(shù)值的裝置,可以包括公式輸入模塊,接收用戶輸入 的公式;響應(yīng)控制模塊,判斷用戶是否處于編輯狀態(tài),并在用戶處于非編輯狀態(tài)時,將公式 的計算結(jié)果返回給用戶,在用戶處于編輯狀態(tài)時,將公式返回給用戶。通過該技術(shù)方案,用 戶可以即時地查看公式的計算結(jié)果,并可以即時地查看并修改輸入的公式。
在上述技術(shù)方案中,優(yōu)選地,公式中可以包括關(guān)鍵字;響應(yīng)控制模塊還包括應(yīng)用 解析模塊,從用戶的應(yīng)用程序中,獲取關(guān)鍵字對應(yīng)的數(shù)值;公式計算模塊,并根據(jù)數(shù)值取得 公式的計算結(jié)果。應(yīng)用解析模塊、公式計算模塊也可以不包括在響應(yīng)控制模塊中,僅由其進(jìn) 行調(diào)用。
在上述技術(shù)方案中,優(yōu)選地,應(yīng)用程序的類型包括B/S結(jié)構(gòu)程序、C/S結(jié)構(gòu)程序和 數(shù)據(jù)庫應(yīng)用程序;當(dāng)應(yīng)用程序為B/S結(jié)構(gòu)程序時,公式計算模塊通過JavMcript的eval方 法取得公式的計算結(jié)果,當(dāng)應(yīng)用程序為C/S結(jié)構(gòu)程序時,公式計算模塊通過用戶操作系統(tǒng) 中msscript引擎中的eval方法取得公式的計算結(jié)果,當(dāng)應(yīng)用程序為數(shù)據(jù)庫應(yīng)用程序時,公 式計算模塊通過sql語句進(jìn)行數(shù)據(jù)庫查詢以取得公式的計算結(jié)果。
在上述技術(shù)方案中,優(yōu)選地,公式輸入模塊包括文本框,用戶將公式輸入到文本框 中;在用戶處于非編輯狀態(tài)時,響應(yīng)控制模塊將公式的計算結(jié)果記錄在文本框中以返回給 用戶,并將公式保存在文本框的備注屬性中,在用戶處于編輯狀態(tài)時,響應(yīng)控制模塊從文本 框的備注屬性取得公式,并將公式記錄在文本框中以返回給用戶。
在上述技術(shù)方案中,優(yōu)選地,響應(yīng)控制模塊通過監(jiān)測鍵盤輸入事件、鼠標(biāo)輸入事件 來判斷用戶是否處于編輯狀態(tài)。例如監(jiān)測到用戶輸入回車、鼠標(biāo)點擊其他編輯框時,確定用 戶離開編輯狀態(tài)。
根據(jù)上述技術(shù)方案,可以實現(xiàn)一種自動計算數(shù)值的方法和裝置,能夠隨時根據(jù)用 戶輸入的表達(dá)式進(jìn)行計算,使用戶可以即時地了解表達(dá)式的計算結(jié)果,且使用戶可以隨時 查看已輸入的表達(dá)式,以對其進(jìn)行編輯修改。
圖1是根據(jù)本發(fā)明的一個實施例的自動計算數(shù)值的方法的流程圖2是根據(jù)本發(fā)明的一個實施例的自動計算數(shù)值的裝置的框圖3是根據(jù)本發(fā)明的一個實施例的自動計算數(shù)值的裝置的框圖4是根據(jù)本發(fā)明的一個實施例的自動計算數(shù)值的裝置的原理示意圖。
具體實施方式
為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結(jié)合附圖和具體實 施方式對本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。
在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可 以采用其他不同于在此描述的其他方式來實施,因此,本發(fā)明并不限于下面公開的具體實 施例的限制。
圖1是根據(jù)本發(fā)明的一個實施例的自動計算數(shù)值的方法的流程圖。
如圖1所示,本發(fā)明一種自動計算數(shù)值的方法,可以包括步驟102,接收用戶輸 入的公式,并發(fā)送給預(yù)設(shè)的控制器;步驟104,由控制器判斷用戶是否處于編輯狀態(tài);步驟 106,在用戶處于非編輯狀態(tài)時,將公式的計算結(jié)果返回給用戶;步驟108,在用戶處于編輯 狀態(tài)時,將公式返回給用戶。通過該技術(shù)方案,用戶可以即時地查看公式的計算結(jié)果,并可 以即時地查看并修改輸入的公式。
在上述技術(shù)方案中,公式中可以包括關(guān)鍵字;在步驟106中,從用戶的應(yīng)用程序 中,獲取關(guān)鍵字對應(yīng)的數(shù)值,并根據(jù)數(shù)值取得公式的計算結(jié)果。
在上述技術(shù)方案中,應(yīng)用程序的類型包括B/S結(jié)構(gòu)程序、C/S結(jié)構(gòu)程序和數(shù)據(jù)庫應(yīng) 用程序;在步驟106中,當(dāng)應(yīng)用程序為B/S結(jié)構(gòu)程序時,通過JavMcript的eval方法取得 公式的計算結(jié)果,當(dāng)應(yīng)用程序為C/S結(jié)構(gòu)程序時,通過用戶操作系統(tǒng)中msscript引擎中的 eval方法取得公式的計算結(jié)果,當(dāng)應(yīng)用程序為數(shù)據(jù)庫應(yīng)用程序時,通過sql語句進(jìn)行數(shù)據(jù) 庫查詢以取得公式的計算結(jié)果。
在上述技術(shù)方案中,在步驟102中,用戶將公式輸入到文本框中;在步驟106中,將 公式的計算結(jié)果記錄在文本框中以返回給用戶,并將公式保存在文本框的備注屬性中;在 步驟108中,從文本框的備注屬性中取得公式,并將公式記錄在文本框中以返回給用戶。
在上述技術(shù)方案中,在步驟104中,控制器通過監(jiān)測鍵盤輸入事件、鼠標(biāo)輸入事件 來判斷用戶是否處于編輯狀態(tài)。例如監(jiān)測到用戶輸入回車、鼠標(biāo)點擊其他編輯框時,確定用 戶離開編輯狀態(tài)。
圖2是根據(jù)本發(fā)明的一個實施例的自動計算數(shù)值的裝置的框圖。
如圖2所示,本發(fā)明還提供一種自動計算數(shù)值的裝置200,可以包括公式輸入模 塊202,接收用戶輸入的公式;響應(yīng)控制模塊204,判斷用戶是否處于編輯狀態(tài),并在用戶處 于非編輯狀態(tài)時,將公式的計算結(jié)果返回給用戶,在用戶處于編輯狀態(tài)時,將公式返回給用 戶。通過該技術(shù)方案,用戶可以即時地查看公式的計算結(jié)果,并可以即時地查看并修改輸入 的公式。
在上述技術(shù)方案中,公式中可以包括關(guān)鍵字;響應(yīng)控制模塊204還包括應(yīng)用解析 模塊2042,從用戶的應(yīng)用程序中,獲取關(guān)鍵字對應(yīng)的數(shù)值;公式計算模塊2044,并根據(jù)數(shù)值取得公式的計算結(jié)果。應(yīng)用解析模塊2042、公式計算模塊2044也可以不包括在響應(yīng)控制模 塊204中,僅由其進(jìn)行調(diào)用。
在上述技術(shù)方案中,應(yīng)用程序的類型包括B/S結(jié)構(gòu)程序、C/S結(jié)構(gòu)程序和數(shù)據(jù)庫應(yīng) 用程序;當(dāng)應(yīng)用程序為B/S結(jié)構(gòu)程序時,公式計算模塊2044通過JavMcript的eval方法 取得公式的計算結(jié)果,當(dāng)應(yīng)用程序為C/S結(jié)構(gòu)程序時,公式計算模塊2044通過用戶操作系 統(tǒng)中msscript引擎中的eval方法取得公式的計算結(jié)果,當(dāng)應(yīng)用程序為數(shù)據(jù)庫應(yīng)用程序時, 公式計算模塊2044通過sql語句進(jìn)行數(shù)據(jù)庫查詢以取得公式的計算結(jié)果。
在上述技術(shù)方案中,公式輸入模塊202包括文本框,用戶將公式輸入到文本框中; 在用戶處于非編輯狀態(tài)時,響應(yīng)控制模塊204將公式的計算結(jié)果記錄在文本框中以返回給 用戶,并將公式保存在文本框的備注屬性中,在用戶處于編輯狀態(tài)時,響應(yīng)控制模塊204從 文本框的備注屬性取得公式,并將公式記錄在文本框中以返回給用戶。
在上述技術(shù)方案中,響應(yīng)控制模塊204通過監(jiān)測鍵盤輸入事件、鼠標(biāo)輸入事件來 判斷用戶是否處于編輯狀態(tài)。例如監(jiān)測到用戶輸入回車、鼠標(biāo)點擊其他編輯框時,確定用戶 離開編輯狀態(tài)。
圖3是根據(jù)本發(fā)明的一個實施例的自動計算數(shù)值的裝置的框圖。
如圖3所示,本實施例中的自動計算數(shù)值的裝置包括應(yīng)用解析模塊302、響應(yīng)控 制模塊304、公式計算模塊306。
用戶在文本框中輸入公式,為了實現(xiàn)文本框中公式的自動運(yùn)算,首先要把文本框 傳遞給響應(yīng)控制模塊304,響應(yīng)控制模塊304自動對文本框的焦點進(jìn)入和離開事件以及回 車事件進(jìn)行響應(yīng),響應(yīng)方式包括
一、當(dāng)鍵盤輸入焦點離開文本框時,響應(yīng)控制模塊304把文本框中的表達(dá)式傳遞 給公式計算模塊306,由其負(fù)責(zé)計算公式的結(jié)果,并把公式本身緩存到文本框的備注(tag) 屬性中,公式計算模塊306計算出結(jié)果后,響應(yīng)控制模塊304自動運(yùn)算的結(jié)果顯示到文本 框。
二、當(dāng)鍵盤輸入焦點進(jìn)入文本框的時候,響應(yīng)控制模塊304把文本框中的內(nèi)容恢 復(fù)表達(dá)式的顯示。
三、當(dāng)用戶輸入的數(shù)據(jù)中含有用例如“”包含的關(guān)鍵字的時候,應(yīng)用解析模塊 302會查找當(dāng)前用戶系統(tǒng)界面中所有文本框的標(biāo)題,標(biāo)題與公式中“”中的文字符合的, 將會用查找到的文本框中的數(shù)值替換用戶輸入的“”及中間標(biāo)題文本,這樣,本裝置就實 現(xiàn)了數(shù)字的簡化輸入。例如用戶輸入的是總價*0. 98,那么,應(yīng)用解析模塊302首先要 把用戶當(dāng)前的操作界面中的控件按照其標(biāo)題遍歷一遍,用控件中的實際數(shù)字去替代表達(dá)式 中的關(guān)鍵字,假設(shè)在控件中查詢到總價是100,則替換后,表達(dá)式變成了 100*0. 98,進(jìn)行了 關(guān)鍵字替換后就可以由公式計算模塊對其進(jìn)行計算了。
其中,公式計算模塊306自動運(yùn)算可以有不同的運(yùn)算機(jī)制,通過這些不同的運(yùn)算 機(jī)制可以覆蓋全部用于自動運(yùn)算的場景,分別適用于不同的場合。
1、如果所需的應(yīng)用場景是bs (瀏覽器/服務(wù)器)系統(tǒng)中的html頁面,則公式計算 模塊306可以利用瀏覽器對javascript的支持來實現(xiàn)自動計算,如可以調(diào)用javascript 的eval方法,把表達(dá)式當(dāng)作字符串傳遞過去,從而取得表達(dá)式的運(yùn)算結(jié)果;
2、如果所需應(yīng)用場景是基于數(shù)據(jù)庫開發(fā)的應(yīng)用系統(tǒng),則公式計算模塊306可以利用sql語句的運(yùn)算功能來實現(xiàn)自動計算,如對100*0. 98進(jìn)行運(yùn)算,可以將表達(dá)式拼寫為sql 語句“select 100*0.98〃,調(diào)用數(shù)據(jù)庫查詢引擎計算取得結(jié)果;
3、如果所需應(yīng)用場景是普通cs (客戶端/服務(wù)器)程序,則公式計算模塊306可 以利用操作系統(tǒng)默認(rèn)的腳本引擎或自定義的公式解析器來完成,如可以調(diào)用操作系統(tǒng)自帶 的msscript引擎,通過引擎的eval方法取得運(yùn)算結(jié)果。
通過上述的自動計算數(shù)值的裝置,實現(xiàn)了表達(dá)式的輸入、解析、編輯、存儲和計算。
圖4是根據(jù)本發(fā)明的一個實施例的自動計算數(shù)值的裝置的原理示意圖。
在本實施例中的自動計算數(shù)值的裝置中,首先由響應(yīng)控制模塊402自動為文本框 404的焦點離開和獲取增加處理機(jī)制,使用戶在文本框404中輸入表達(dá)式時,響應(yīng)控制模塊 402自動根據(jù)處理機(jī)制調(diào)用公式計算模塊406對文本框404中公式進(jìn)行自動計算,并將文本 框404中的文本置為表達(dá)式的運(yùn)算結(jié)果。
其中,在文本框404中的表達(dá)式含有關(guān)鍵字時,由應(yīng)用解析模塊408循環(huán)用戶的當(dāng) 前界面中的所有控件,在控件中取得關(guān)鍵字的數(shù)值,然后再由公式計算模塊406計算出表 達(dá)式的數(shù)值。
例如,假設(shè)用戶的當(dāng)前界面中有單價、數(shù)量文本框,用戶在其中輸入單價為50,數(shù) 量為2,用戶又在文本框404中輸入“單價*數(shù)量*0. 95”后,回車;響應(yīng)控制模塊402響 應(yīng)鍵盤事件,判斷按鍵為回車,自動保存文本框中的表達(dá)式到文本框404的tag屬性中,而 后調(diào)用公式計算模塊406、應(yīng)用解析模塊408,由應(yīng)用解析模塊408計算過程遍歷界面所有 控件,取得文本框404中的表達(dá)式字符串,替換[“單價"]為50,替換“數(shù)量”為2,表達(dá) 式變?yōu)椤?0*2*0. 95”,由公式計算模塊406調(diào)用腳本引擎的計算方法解析〃 50*2*0. 95", 得到結(jié)果95。響應(yīng)控制模塊95顯示到文本框404中。用戶將鼠標(biāo)點擊文本框404,文本框 404獲得焦點事件觸發(fā),響應(yīng)控制模塊402控制器將文本框中tag屬性中保存的“單價*數(shù)量*0. 95”顯示到文本框中。用戶用鼠標(biāo)選擇0.95,重新輸入為0.98,后回車。響應(yīng)控 制模塊402重新執(zhí)行計算過程,得到結(jié)果98。
通過本發(fā)明的技術(shù)方案,可以實現(xiàn)一種自動計算數(shù)值的方法和裝置,可以使用戶 在任何時候的任何一個數(shù)字輸入框中進(jìn)行運(yùn)算。使用效果可以為假設(shè)用戶在文本框中直 接手工輸入“ 1+2”,當(dāng)用戶敲擊回車按鍵或當(dāng)文本框失去焦點的時候,該表達(dá)式會自動計算 出結(jié)果3,并顯示在文本框中,當(dāng)用戶點擊鼠標(biāo)把焦點返回這個文本框時,它又可以恢復(fù)原 有表達(dá)式的顯示“1+2”。如果用戶需要修改表達(dá)式,則可以直接移動鼠標(biāo)或者鍵盤選擇所需 要更改的表達(dá)式文字,像修改普通文本一樣直接修改即可,修改完成后,離開焦點時,文本 框又可按最新的表達(dá)式自動計算。同時本發(fā)明的技術(shù)方案支持復(fù)雜表達(dá)式的運(yùn)算順序,且 可以支持通過“ 0 ”來嵌套的多層運(yùn)算,如“(1+3)/2*(9-6) ”。
如果用戶需要計算的內(nèi)容和當(dāng)前界面中的元素相關(guān),比如,從單價文本框中取得 具體的單價,從數(shù)量文本框中取得具體的數(shù)量,則用戶可以直接輸入[單價]* [數(shù)量],回車 后仍然可以計算出所需結(jié)果。
通過以上三點,本發(fā)明的技術(shù)方案實現(xiàn)了表達(dá)式的可查看,可編輯,可支持嵌套, 可以動態(tài)從應(yīng)用系統(tǒng)中取數(shù),其便捷的應(yīng)用方式完全可以替代原有的計算器程序或類似控 件。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種自動計算數(shù)值的方法,其特征在于,包括步驟102,接收用戶輸入的公式,并發(fā)送給預(yù)設(shè)的控制器; 步驟104,由所述控制器判斷所述用戶是否處于編輯狀態(tài);步驟106,在所述用戶處于所述非編輯狀態(tài)時,將所述公式的計算結(jié)果返回給所述用戶;步驟108,在所述用戶處于所述編輯狀態(tài)時,將所述公式返回給所述用戶。
2.根據(jù)權(quán)利要求1所述的自動計算數(shù)值的方法,其特征在于,所述公式中包括關(guān)鍵字; 在所述步驟106中,從所述用戶的應(yīng)用程序中,獲取所述關(guān)鍵字對應(yīng)的數(shù)值,并根據(jù)所述數(shù)值取得所述公式的計算結(jié)果。
3.根據(jù)權(quán)利要求2所述的自動計算數(shù)值的方法,其特征在于,所述應(yīng)用程序的類型包 括B/S結(jié)構(gòu)程序、C/S結(jié)構(gòu)程序和數(shù)據(jù)庫應(yīng)用程序;在所述步驟106中,當(dāng)所述應(yīng)用程序為所述B/S結(jié)構(gòu)程序時,通過JavMcript的eval 方法取得所述公式的計算結(jié)果,當(dāng)所述應(yīng)用程序為所述C/S結(jié)構(gòu)程序時,通過用戶操作系 統(tǒng)中msscript引擎中的eval方法取得所述公式的計算結(jié)果,當(dāng)所述應(yīng)用程序為所述數(shù)據(jù) 庫應(yīng)用程序時,通過sql語句進(jìn)行數(shù)據(jù)庫查詢以取得所述公式的計算結(jié)果。
4.根據(jù)權(quán)利要求1所述的自動計算數(shù)值的方法,其特征在于,在所述步驟102中,所述 用戶將所述公式輸入到文本框中;在所述步驟106中,將所述公式的計算結(jié)果記錄在所述文本框中以返回給所述用戶, 并將所述公式保存在所述文本框的備注屬性中;在所述步驟108中,從所述文本框的備注屬性中取得所述公式,并將所述公式記錄在 所述文本框中以返回給所述用戶。
5.根據(jù)權(quán)利要求1至4中任一項所述的自動計算數(shù)值的方法,其特征在于,在所述步驟 104中,所述控制器通過監(jiān)測鍵盤輸入事件、鼠標(biāo)輸入事件來判斷所述用戶是否處于所述編 輯狀態(tài)。
6.一種自動計算數(shù)值的裝置,其特征在于,包括 公式輸入模塊,接收用戶輸入的公式;響應(yīng)控制模塊,判斷所述用戶是否處于編輯狀態(tài),并在所述用戶處于非編輯狀態(tài)時,將 所述公式的計算結(jié)果返回給所述用戶,在所述用戶處于所述編輯狀態(tài)時,將所述公式返回 給所述用戶。
7.根據(jù)權(quán)利要求6所述的自動計算數(shù)值的裝置,其特征在于,所述公式中包括關(guān)鍵字; 所述響應(yīng)控制模塊還包括應(yīng)用解析模塊,從所述用戶的應(yīng)用程序中,獲取所述關(guān)鍵字對應(yīng)的數(shù)值; 公式計算模塊,并根據(jù)所述數(shù)值取得所述公式的計算結(jié)果。
8.根據(jù)權(quán)利要求7所述的自動計算數(shù)值的裝置,其特征在于,所述應(yīng)用程序的類型包 括B/S結(jié)構(gòu)程序、C/S結(jié)構(gòu)程序和數(shù)據(jù)庫應(yīng)用程序;當(dāng)所述應(yīng)用程序為所述B/S結(jié)構(gòu)程序時,所述公式計算模塊通過JavMcript的eval 方法取得所述公式的計算結(jié)果,當(dāng)所述應(yīng)用程序為所述C/S結(jié)構(gòu)程序時,所述公式計算模 塊通過用戶操作系統(tǒng)中msscript引擎中的eval方法取得所述公式的計算結(jié)果,當(dāng)所述應(yīng) 用程序為所述數(shù)據(jù)庫應(yīng)用程序時,所述公式計算模塊通過sql語句進(jìn)行數(shù)據(jù)庫查詢以取得所述公式的計算結(jié)果。
9.根據(jù)權(quán)利要求6所述的自動計算數(shù)值的裝置,其特征在于,所述公式輸入模塊包括 文本框,所述用戶將所述公式輸入到所述文本框中;在所述用戶處于所述非編輯狀態(tài)時,所述響應(yīng)控制模塊將所述公式的計算結(jié)果記錄在 所述文本框中以返回給所述用戶,并將所述公式保存在所述文本框的備注屬性中,在所述 用戶處于所述編輯狀態(tài)時,所述響應(yīng)控制模塊從所述文本框的備注屬性取得所述公式,并 將所述公式記錄在所述文本框中以返回給所述用戶。
10.根據(jù)權(quán)利要求6至9中任一項所述的自動計算數(shù)值的裝置,其特征在于,所述響應(yīng) 控制模塊通過監(jiān)測鍵盤輸入事件、鼠標(biāo)輸入事件來判斷所述用戶是否處于所述編輯狀態(tài)。
全文摘要
本發(fā)明一種自動計算數(shù)值的方法,可以包括步驟102,接收用戶輸入的公式,并發(fā)送給預(yù)設(shè)的控制器;步驟104,由控制器判斷用戶是否處于編輯狀態(tài);步驟106,在用戶處于非編輯狀態(tài)時,將公式的計算結(jié)果返回給用戶;步驟108,在用戶處于編輯狀態(tài)時,將公式本身返回給用戶。本發(fā)明還提供一種自動計算數(shù)值的裝置,通過本發(fā)明,用戶可以即時地查看公式的計算結(jié)果,并可以即時地查看并修改輸入的公式。
文檔編號G06F9/44GK102033752SQ20101060794
公開日2011年4月27日 申請日期2010年12月27日 優(yōu)先權(quán)日2010年12月27日
發(fā)明者孫亮朝 申請人:暢捷通軟件有限公司