自动计算数值的方法和装置的制作方法

文档序号:6340108阅读:513来源:国知局
专利名称:自动计算数值的方法和装置的制作方法
技术领域
本发明涉及一种自动计算数值的方法和装置。
技术背景
在软件系统中,当最终用户需要数学运算的时候,一般有如下一些方式可以选 择
1、使用操作系统中自带的计算器程序或类似的控件;
2、单独使用Excel或类似软件运算;
3、通过应用系统中支持的自定义公式功能进行表达式的定义,而后实现自动运算。
以上三种方案中,操作方式各不相同,但使用时都不够方便和快捷,具体问题在 于
首先,计算器程序或类似控件中有三个不方便第一、无法方便的输入复杂的表达 式,如1+2*3+4*5,在计算器软件中,类似操作必须通过多次计算,并要手工保存一下中间计 算的结果,最后才能算出用户所需的结果值;第二、看到结果的同时不能看到表达式本身, 我们常常看到,许多人在使用计算器的时候都需要多次输入,这是因为用户担心自己输入 有误,所以要计算多次以便保障自己的输入无误;第三、无法方便的修改表达式,例如,如果 用户输入的是10个数字的和,但输入到第九个数字的时候,发现第八个数字输入错误了, 用户就不得不重新开始运算一次,而不能把中间输错的数字改对。
其次,选择Excel或类似软件来进行数值计算的话,则用户需要额外的启动Excel 等软件,而且Excel软件本身无法方便地与数据进行交互。
最后,应用系统中的自定义公式功能能够解决一部分计算问题,但是,自定义功能 和自动运算功能往往是分离的,即用户想实现自动运算,必须事先定义,而不能随需应变的 随时输入随时运算,这不仅带来一些操作上的不便,而且也不能适应用户变化的需求。
因此,需要一种新的自动计算数值的方式,能够随时根据用户输入的表达式进行 计算,使用户可以即时地了解表达式的计算结果,且使用户可以随时查看已输入的表达式, 以对其进行编辑修改。发明内容
本发明所要解决的技术问题在于,提供一种新的自动计算数值的方式,能够随时 根据用户输入的表达式进行计算,使用户可以即时地了解表达式的计算结果,且使用户可 以随时查看已输入的表达式,以对其进行编辑修改。
有鉴于此,本发明一种自动计算数值的方法,可以包括步骤102,接收用户输入 的公式,并发送给预设的控制器;步骤104,由控制器判断用户是否处于编辑状态;步骤 106,在用户处于非编辑状态时,将公式的计算结果返回给用户;步骤108,在用户处于编辑 状态时,将公式返回给用户。通过该技术方案,用户可以即时地查看公式的计算结果,并可以即时地查看并修改输入的公式。
在上述技术方案中,优选地,公式中可以包括关键字;在步骤106中,从用户的应 用程序中,获取关键字对应的数值,并根据数值取得公式的计算结果。
在上述技术方案中,优选地,应用程序的类型包括B/S结构程序、C/S结构程序和 数据库应用程序;在步骤106中,当应用程序为B/S结构程序时,通过JavMcript的eval 方法取得公式的计算结果,当应用程序为C/S结构程序时,通过用户操作系统中msscript 引擎中的eval方法取得公式的计算结果,当应用程序为数据库应用程序时,通过sql语句 进行数据库查询以取得公式的计算结果。
在上述技术方案中,优选地,在步骤102中,用户将公式输入到文本框中;在步骤 106中,将公式的计算结果记录在文本框中以返回给用户,并将公式保存在文本框的备注属 性中;在步骤108中,从文本框的备注属性中取得公式,并将公式记录在文本框中以返回给 用户。
在上述技术方案中,优选地,在步骤104中,控制器通过监测键盘输入事件、鼠标 输入事件来判断用户是否处于编辑状态。例如监测到用户输入回车、鼠标点击其他编辑框 时,确定用户离开编辑状态。
本发明还提供一种自动计算数值的装置,可以包括公式输入模块,接收用户输入 的公式;响应控制模块,判断用户是否处于编辑状态,并在用户处于非编辑状态时,将公式 的计算结果返回给用户,在用户处于编辑状态时,将公式返回给用户。通过该技术方案,用 户可以即时地查看公式的计算结果,并可以即时地查看并修改输入的公式。
在上述技术方案中,优选地,公式中可以包括关键字;响应控制模块还包括应用 解析模块,从用户的应用程序中,获取关键字对应的数值;公式计算模块,并根据数值取得 公式的计算结果。应用解析模块、公式计算模块也可以不包括在响应控制模块中,仅由其进 行调用。
在上述技术方案中,优选地,应用程序的类型包括B/S结构程序、C/S结构程序和 数据库应用程序;当应用程序为B/S结构程序时,公式计算模块通过JavMcript的eval方 法取得公式的计算结果,当应用程序为C/S结构程序时,公式计算模块通过用户操作系统 中msscript引擎中的eval方法取得公式的计算结果,当应用程序为数据库应用程序时,公 式计算模块通过sql语句进行数据库查询以取得公式的计算结果。
在上述技术方案中,优选地,公式输入模块包括文本框,用户将公式输入到文本框 中;在用户处于非编辑状态时,响应控制模块将公式的计算结果记录在文本框中以返回给 用户,并将公式保存在文本框的备注属性中,在用户处于编辑状态时,响应控制模块从文本 框的备注属性取得公式,并将公式记录在文本框中以返回给用户。
在上述技术方案中,优选地,响应控制模块通过监测键盘输入事件、鼠标输入事件 来判断用户是否处于编辑状态。例如监测到用户输入回车、鼠标点击其他编辑框时,确定用 户离开编辑状态。
根据上述技术方案,可以实现一种自动计算数值的方法和装置,能够随时根据用 户输入的表达式进行计算,使用户可以即时地了解表达式的计算结果,且使用户可以随时 查看已输入的表达式,以对其进行编辑修改。


图1是根据本发明的一个实施例的自动计算数值的方法的流程图2是根据本发明的一个实施例的自动计算数值的装置的框图3是根据本发明的一个实施例的自动计算数值的装置的框图4是根据本发明的一个实施例的自动计算数值的装置的原理示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实 施方式对本发明进行进一步的详细描述。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可 以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实 施例的限制。
图1是根据本发明的一个实施例的自动计算数值的方法的流程图。
如图1所示,本发明一种自动计算数值的方法,可以包括步骤102,接收用户输 入的公式,并发送给预设的控制器;步骤104,由控制器判断用户是否处于编辑状态;步骤 106,在用户处于非编辑状态时,将公式的计算结果返回给用户;步骤108,在用户处于编辑 状态时,将公式返回给用户。通过该技术方案,用户可以即时地查看公式的计算结果,并可 以即时地查看并修改输入的公式。
在上述技术方案中,公式中可以包括关键字;在步骤106中,从用户的应用程序 中,获取关键字对应的数值,并根据数值取得公式的计算结果。
在上述技术方案中,应用程序的类型包括B/S结构程序、C/S结构程序和数据库应 用程序;在步骤106中,当应用程序为B/S结构程序时,通过JavMcript的eval方法取得 公式的计算结果,当应用程序为C/S结构程序时,通过用户操作系统中msscript引擎中的 eval方法取得公式的计算结果,当应用程序为数据库应用程序时,通过sql语句进行数据 库查询以取得公式的计算结果。
在上述技术方案中,在步骤102中,用户将公式输入到文本框中;在步骤106中,将 公式的计算结果记录在文本框中以返回给用户,并将公式保存在文本框的备注属性中;在 步骤108中,从文本框的备注属性中取得公式,并将公式记录在文本框中以返回给用户。
在上述技术方案中,在步骤104中,控制器通过监测键盘输入事件、鼠标输入事件 来判断用户是否处于编辑状态。例如监测到用户输入回车、鼠标点击其他编辑框时,确定用 户离开编辑状态。
图2是根据本发明的一个实施例的自动计算数值的装置的框图。
如图2所示,本发明还提供一种自动计算数值的装置200,可以包括公式输入模 块202,接收用户输入的公式;响应控制模块204,判断用户是否处于编辑状态,并在用户处 于非编辑状态时,将公式的计算结果返回给用户,在用户处于编辑状态时,将公式返回给用 户。通过该技术方案,用户可以即时地查看公式的计算结果,并可以即时地查看并修改输入 的公式。
在上述技术方案中,公式中可以包括关键字;响应控制模块204还包括应用解析 模块2042,从用户的应用程序中,获取关键字对应的数值;公式计算模块2044,并根据数值取得公式的计算结果。应用解析模块2042、公式计算模块2044也可以不包括在响应控制模 块204中,仅由其进行调用。
在上述技术方案中,应用程序的类型包括B/S结构程序、C/S结构程序和数据库应 用程序;当应用程序为B/S结构程序时,公式计算模块2044通过JavMcript的eval方法 取得公式的计算结果,当应用程序为C/S结构程序时,公式计算模块2044通过用户操作系 统中msscript引擎中的eval方法取得公式的计算结果,当应用程序为数据库应用程序时, 公式计算模块2044通过sql语句进行数据库查询以取得公式的计算结果。
在上述技术方案中,公式输入模块202包括文本框,用户将公式输入到文本框中; 在用户处于非编辑状态时,响应控制模块204将公式的计算结果记录在文本框中以返回给 用户,并将公式保存在文本框的备注属性中,在用户处于编辑状态时,响应控制模块204从 文本框的备注属性取得公式,并将公式记录在文本框中以返回给用户。
在上述技术方案中,响应控制模块204通过监测键盘输入事件、鼠标输入事件来 判断用户是否处于编辑状态。例如监测到用户输入回车、鼠标点击其他编辑框时,确定用户 离开编辑状态。
图3是根据本发明的一个实施例的自动计算数值的装置的框图。
如图3所示,本实施例中的自动计算数值的装置包括应用解析模块302、响应控 制模块304、公式计算模块306。
用户在文本框中输入公式,为了实现文本框中公式的自动运算,首先要把文本框 传递给响应控制模块304,响应控制模块304自动对文本框的焦点进入和离开事件以及回 车事件进行响应,响应方式包括
一、当键盘输入焦点离开文本框时,响应控制模块304把文本框中的表达式传递 给公式计算模块306,由其负责计算公式的结果,并把公式本身缓存到文本框的备注(tag) 属性中,公式计算模块306计算出结果后,响应控制模块304自动运算的结果显示到文本 框。
二、当键盘输入焦点进入文本框的时候,响应控制模块304把文本框中的内容恢 复表达式的显示。
三、当用户输入的数据中含有用例如“”包含的关键字的时候,应用解析模块 302会查找当前用户系统界面中所有文本框的标题,标题与公式中“”中的文字符合的, 将会用查找到的文本框中的数值替换用户输入的“”及中间标题文本,这样,本装置就实 现了数字的简化输入。例如用户输入的是总价*0. 98,那么,应用解析模块302首先要 把用户当前的操作界面中的控件按照其标题遍历一遍,用控件中的实际数字去替代表达式 中的关键字,假设在控件中查询到总价是100,则替换后,表达式变成了 100*0. 98,进行了 关键字替换后就可以由公式计算模块对其进行计算了。
其中,公式计算模块306自动运算可以有不同的运算机制,通过这些不同的运算 机制可以覆盖全部用于自动运算的场景,分别适用于不同的场合。
1、如果所需的应用场景是bs (浏览器/服务器)系统中的html页面,则公式计算 模块306可以利用浏览器对javascript的支持来实现自动计算,如可以调用javascript 的eval方法,把表达式当作字符串传递过去,从而取得表达式的运算结果;
2、如果所需应用场景是基于数据库开发的应用系统,则公式计算模块306可以利用sql语句的运算功能来实现自动计算,如对100*0. 98进行运算,可以将表达式拼写为sql 语句“select 100*0.98〃,调用数据库查询引擎计算取得结果;
3、如果所需应用场景是普通cs (客户端/服务器)程序,则公式计算模块306可 以利用操作系统默认的脚本引擎或自定义的公式解析器来完成,如可以调用操作系统自带 的msscript引擎,通过引擎的eval方法取得运算结果。
通过上述的自动计算数值的装置,实现了表达式的输入、解析、编辑、存储和计算。
图4是根据本发明的一个实施例的自动计算数值的装置的原理示意图。
在本实施例中的自动计算数值的装置中,首先由响应控制模块402自动为文本框 404的焦点离开和获取增加处理机制,使用户在文本框404中输入表达式时,响应控制模块 402自动根据处理机制调用公式计算模块406对文本框404中公式进行自动计算,并将文本 框404中的文本置为表达式的运算结果。
其中,在文本框404中的表达式含有关键字时,由应用解析模块408循环用户的当 前界面中的所有控件,在控件中取得关键字的数值,然后再由公式计算模块406计算出表 达式的数值。
例如,假设用户的当前界面中有单价、数量文本框,用户在其中输入单价为50,数 量为2,用户又在文本框404中输入“单价*数量*0. 95”后,回车;响应控制模块402响 应键盘事件,判断按键为回车,自动保存文本框中的表达式到文本框404的tag属性中,而 后调用公式计算模块406、应用解析模块408,由应用解析模块408计算过程遍历界面所有 控件,取得文本框404中的表达式字符串,替换[“单价"]为50,替换“数量”为2,表达 式变为“50*2*0. 95”,由公式计算模块406调用脚本引擎的计算方法解析〃 50*2*0. 95", 得到结果95。响应控制模块95显示到文本框404中。用户将鼠标点击文本框404,文本框 404获得焦点事件触发,响应控制模块402控制器将文本框中tag属性中保存的“单价*数量*0. 95”显示到文本框中。用户用鼠标选择0.95,重新输入为0.98,后回车。响应控 制模块402重新执行计算过程,得到结果98。
通过本发明的技术方案,可以实现一种自动计算数值的方法和装置,可以使用户 在任何时候的任何一个数字输入框中进行运算。使用效果可以为假设用户在文本框中直 接手工输入“ 1+2”,当用户敲击回车按键或当文本框失去焦点的时候,该表达式会自动计算 出结果3,并显示在文本框中,当用户点击鼠标把焦点返回这个文本框时,它又可以恢复原 有表达式的显示“1+2”。如果用户需要修改表达式,则可以直接移动鼠标或者键盘选择所需 要更改的表达式文字,像修改普通文本一样直接修改即可,修改完成后,离开焦点时,文本 框又可按最新的表达式自动计算。同时本发明的技术方案支持复杂表达式的运算顺序,且 可以支持通过“ 0 ”来嵌套的多层运算,如“(1+3)/2*(9-6) ”。
如果用户需要计算的内容和当前界面中的元素相关,比如,从单价文本框中取得 具体的单价,从数量文本框中取得具体的数量,则用户可以直接输入[单价]* [数量],回车 后仍然可以计算出所需结果。
通过以上三点,本发明的技术方案实现了表达式的可查看,可编辑,可支持嵌套, 可以动态从应用系统中取数,其便捷的应用方式完全可以替代原有的计算器程序或类似控 件。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种自动计算数值的方法,其特征在于,包括步骤102,接收用户输入的公式,并发送给预设的控制器; 步骤104,由所述控制器判断所述用户是否处于编辑状态;步骤106,在所述用户处于所述非编辑状态时,将所述公式的计算结果返回给所述用户;步骤108,在所述用户处于所述编辑状态时,将所述公式返回给所述用户。
2.根据权利要求1所述的自动计算数值的方法,其特征在于,所述公式中包括关键字; 在所述步骤106中,从所述用户的应用程序中,获取所述关键字对应的数值,并根据所述数值取得所述公式的计算结果。
3.根据权利要求2所述的自动计算数值的方法,其特征在于,所述应用程序的类型包 括B/S结构程序、C/S结构程序和数据库应用程序;在所述步骤106中,当所述应用程序为所述B/S结构程序时,通过JavMcript的eval 方法取得所述公式的计算结果,当所述应用程序为所述C/S结构程序时,通过用户操作系 统中msscript引擎中的eval方法取得所述公式的计算结果,当所述应用程序为所述数据 库应用程序时,通过sql语句进行数据库查询以取得所述公式的计算结果。
4.根据权利要求1所述的自动计算数值的方法,其特征在于,在所述步骤102中,所述 用户将所述公式输入到文本框中;在所述步骤106中,将所述公式的计算结果记录在所述文本框中以返回给所述用户, 并将所述公式保存在所述文本框的备注属性中;在所述步骤108中,从所述文本框的备注属性中取得所述公式,并将所述公式记录在 所述文本框中以返回给所述用户。
5.根据权利要求1至4中任一项所述的自动计算数值的方法,其特征在于,在所述步骤 104中,所述控制器通过监测键盘输入事件、鼠标输入事件来判断所述用户是否处于所述编 辑状态。
6.一种自动计算数值的装置,其特征在于,包括 公式输入模块,接收用户输入的公式;响应控制模块,判断所述用户是否处于编辑状态,并在所述用户处于非编辑状态时,将 所述公式的计算结果返回给所述用户,在所述用户处于所述编辑状态时,将所述公式返回 给所述用户。
7.根据权利要求6所述的自动计算数值的装置,其特征在于,所述公式中包括关键字; 所述响应控制模块还包括应用解析模块,从所述用户的应用程序中,获取所述关键字对应的数值; 公式计算模块,并根据所述数值取得所述公式的计算结果。
8.根据权利要求7所述的自动计算数值的装置,其特征在于,所述应用程序的类型包 括B/S结构程序、C/S结构程序和数据库应用程序;当所述应用程序为所述B/S结构程序时,所述公式计算模块通过JavMcript的eval 方法取得所述公式的计算结果,当所述应用程序为所述C/S结构程序时,所述公式计算模 块通过用户操作系统中msscript引擎中的eval方法取得所述公式的计算结果,当所述应 用程序为所述数据库应用程序时,所述公式计算模块通过sql语句进行数据库查询以取得所述公式的计算结果。
9.根据权利要求6所述的自动计算数值的装置,其特征在于,所述公式输入模块包括 文本框,所述用户将所述公式输入到所述文本框中;在所述用户处于所述非编辑状态时,所述响应控制模块将所述公式的计算结果记录在 所述文本框中以返回给所述用户,并将所述公式保存在所述文本框的备注属性中,在所述 用户处于所述编辑状态时,所述响应控制模块从所述文本框的备注属性取得所述公式,并 将所述公式记录在所述文本框中以返回给所述用户。
10.根据权利要求6至9中任一项所述的自动计算数值的装置,其特征在于,所述响应 控制模块通过监测键盘输入事件、鼠标输入事件来判断所述用户是否处于所述编辑状态。
全文摘要
本发明一种自动计算数值的方法,可以包括步骤102,接收用户输入的公式,并发送给预设的控制器;步骤104,由控制器判断用户是否处于编辑状态;步骤106,在用户处于非编辑状态时,将公式的计算结果返回给用户;步骤108,在用户处于编辑状态时,将公式本身返回给用户。本发明还提供一种自动计算数值的装置,通过本发明,用户可以即时地查看公式的计算结果,并可以即时地查看并修改输入的公式。
文档编号G06F9/44GK102033752SQ20101060794
公开日2011年4月27日 申请日期2010年12月27日 优先权日2010年12月27日
发明者孙亮朝 申请人:畅捷通软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1