摘要:
目前所使用的各种会计核算软件所采用的查询方法较多,有单项查询或综合查询等。在查总帐与明细帐时只要输入科目代码即可查到相应的帐簿数据。查询往来单位一般可按地区、行业、单位名称等进行。对于凭证可按日期、凭证号、汉字摘要、金额等单项或多项进行综合查询。但大多是精确查询(如查往来帐时需输入单位全称)或提供参照直接将全部数据(如科目字典库中全部科目)显示出来以供人工翻屏查找。这种查询方法如果是直接输入汉字(单位全称)或在大量数据中查找虽然简单明了,但存在输入速度慢和查询效率低之不足,不能满足用户简便、快捷查找的要求。由此可见,在会计核算软件设计中模糊查询是一个薄弱环节。
举例讲,如“银行存款—人民币存款—工商银行存款”科目所对应的科目代码为“1020101”,在凭证录入过程中或查明细帐时,必须输入科目代码“1020101”,一旦输入代码“1020”、“10”或“1”时,则在数据库记录中找不到相应的值。又如要查询‘支付职工李永生住院费’这张凭证的摘要时,一般要输这10个汉字,且输入的汉字串中间一旦插入空格或采用‘支付住院费’这样的简称时,则通常也找不到相应的记录。再如要查往来单位“中南财经大学”这个户头,若输入...
目前所使用的各种会计核算软件所采用的查询方法较多,有单项查询或综合查询等。在查总帐与明细帐时只要输入科目代码即可查到相应的帐簿数据。查询往来单位一般可按地区、行业、单位名称等进行。对于凭证可按日期、凭证号、汉字摘要、金额等单项或多项进行综合查询。但大多是精确查询(如查往来帐时需输入单位全称)或提供参照直接将全部数据(如科目字典库中全部科目)显示出来以供人工翻屏查找。这种查询方法如果是直接输入汉字(单位全称)或在大量数据中查找虽然简单明了,但存在输入速度慢和查询效率低之不足,不能满足用户简便、快捷查找的要求。由此可见,在会计核算软件设计中模糊查询是一个薄弱环节。
举例讲,如“银行存款—人民币存款—工商银行存款”科目所对应的科目代码为“1020101”,在凭证录入过程中或查明细帐时,必须输入科目代码“1020101”,一旦输入代码“1020”、“10”或“1”时,则在数据库记录中找不到相应的值。又如要查询‘支付职工李永生住院费’这张凭证的摘要时,一般要输这10个汉字,且输入的汉字串中间一旦插入空格或采用‘支付住院费’这样的简称时,则通常也找不到相应的记录。再如要查往来单位“中南财经大学”这个户头,若输入“中南财大”或“财大”时,也找不到对应的记录。凡此种种都构成一种模糊现象。
因此,在研制会计核算软件时,应考虑设计具有模糊查询功能的模块。如在输入了代码“10201”、“10”或“1”时,则相应显示出“工商银行存款(1020101)、农业银行存款(1020102)”等明细科目或输入代码所对应的科目名称;而在输入摘要“支付住院费”时,则应显示出所有摘要为“支付×××住院费”的凭证。又如在输入“财大”时,则显示出“上海财经大学”、“东北财经大学”、“中南财经大学”等汉字串中含有“财大”的往来单位名称,供用户选择。进一步讲,当我们输入摘要或往来单位名称时,我们不输入汉字,仅输入汉字拼音头“ZFZYF”(支付住院费)、“ZNCJDX”(中南财经大学),即能找出相应的摘要或往来单位名称。同样,若用户不习惯使用科目代码时也可输入会计科目的汉字拼音头即助记码,也能够找出对应的凭证数据、往来单位、会计科目。
笔者集多年研制会议核算软件之经验,设计了一种功能较强的模糊查询模块,在此简略加以介绍,以供参考。
一、科目代码的模糊查询
在录入凭证数据、查帐或查凭证需输入科目代码时,可输入任意位长的代码或汉字拼音头,然后到数据库科目代码字段中进行非精确查找。若科目代码字段中没有此科目,则到助记码字段中查找,如仍未找到,则进行出错提示。若输入的代码为空,则显示全部科目并定位到库首。当输入精确值的明细科目代码时,自动定位到该记录(输入代码“101”找出对应的会计科目‘现金’)。如输入的代码不是明细科目,则将相应的明细科目显示出来(输入代码“211”,显示出应付工资所属的栏目:岗位工资、基本工资等)。输入“2”、“21”、“2110”等代码时,则显示与代码相对应的一个或多个会计科目。首先将指针定位到第一个与其值匹配的记录,根据输入代码的长度确定是哪一级科目,然后将符合条件的会计科目显示出来。此时范围已大大缩小,由用户选择直至找到明细科目。
二、汉字摘要和往来单位的模糊查询
试列举三种模糊现象如下:
(一)输入的汉字摘要或往来单位名称,以及被查找的汉字串前后中间出现空格。如:输入的汉字摘要为‘预付本月电费’,被查找项中的汉字摘要为‘预付本月电费’。
(二)输入的已知条件(汉字摘要或往来单位名称)可以是要求查找的汉字串中若干个汉字组成的汉字串。如:要求查找的汉字摘要为‘提取现金备用,,输入的已知条件为‘提现’;要查往来单位“中南财经大学”,输入已知条件为“财大”。
(三)输入的已知条件为汉字拼音头,要查找的是汉字串,即汉字拼音查询法。如:要求找到的汉字摘要为‘提取现金备用’,输入的已知条件为‘TQXJBY’。
实现上述(一)、(二)两种模糊查询的设计思想及方法是:
取出第一条记录被检测项的值(如摘要字段),然后把被检测项的值和已知条件(如汉字摘要‘提现,)都滤去前后的空格。将已知条件的第一个汉字“提”字取出,判断是否包含在检测项摘要字段中。倘若不是则退出再查找下一记录,若是则截取该汉字后的汉字串“现”字作为新的已知条件,截取被检测值该汉字以后的汉字串“取现金备用”作为新的被检测值。同样再滤去各自的前后空格,重复上述过程,直至原来已知条件中的汉字都被测试且全部匹配为止。此时该记录中的测试值就是要查找的汉字摘要。如凭证库中有多条摘要为‘提取现金备用’的记录,而此记录不是所要找的凭证,则继续重复上述过程,直至找到所需凭证为止。
实现上述第(三)种查询法即拼音查询法,是将词组技术应用到数据库中。首先将数据库中汉字摘要的拼音头通过程序方法生成,象词组方式一样将这些拼音头索引。查询时只需输入汉字摘要的拼音头,系统即可通过索引找到所有与输入的已知条件的拼音头相匹配的记录。如果找到的不是唯一记录,则对所有匹配记录编一序号,并将序号及其汉字摘要显示出来。由用户通过键盘从中选出要查询的记录,然后,显示出该摘要记录对应的凭证。例如,当想查询摘要为‘提取现金备用’的凭证时,只要键入‘TQXJBY’就可以找到所有拼音头为‘TQXJBY’的凭证记录。
采用拼音查询法由于用户不需花时间记忆编码,输入速度快,查询方便且效率高。同时由于摘要拼音头的长度突破了词组方式字母个数的限制,所以重码率也很低。
此查询法需注意以下几点:
1.在词组中不应含有空格符,而汉字摘要项允许有空格符,在程序生成其拼音头时应去掉空格,如‘提取现金备用’的拼音头应为‘TQXJBY’而不是‘TQXJ BY’。
2.汉字摘要可能含有字母数字,如‘出售M6420D滚刀刃磨床一台’,此时规定ASC11码字符的拼音头就是它自身,这样‘出售M6420D滚刀刃磨床一台’的拼音头为CSM6420D’,汉字摘要拼音头取其前八位。
3.在采用拼音查询法时,只需输入其拼音编码的前导子集。如上述“提取现金备用”,其拼音编码为“TQXJBY”,输入“T、TQ、TQX、TQXJ”均可。
以上几种方法真正体现了模糊查询的功能。当用户输入的已知信息有限且不规范时,模糊查询法可提供极大的方便。
责任编辑 刘志新