【技术实现步骤摘要】
基于SARP数据处理规则编译方法及数据处理方法
[0001]本专利技术涉及SARP数据处理
,具体为一种基于SARP数据处理规则编译方法及数据处理方法。
技术介绍
[0002]SARP2000软件在个人电脑普及初期具有较高的先进性,但随着互联网、大数据、云计算、人工智能时代的到来,其先天不足逐渐表现出来。首先,由于是单机版软件,数据处理的数据量和效率取决于所安装的单机硬件性能高低,无法满足海量数据处理需求,同时单机软件也不能满足网络版所能提供的多人同时访问并发响应能力;其次,此软件只能运行在WINDOWS操作系统环境中,不能运行在国产化要求的国产操作系统中,需要采用JAVA等跨平台开发环境;第三,由于数据处理没有采用多线程技术,不能并行运算,在目前多CPU、超线程的服务器或个人电脑上只能实现单线程运算,无法充分发挥硬件资源的算力;第四,采用自定义格式的二进制文件存储数据,没有采用大型数据库存储数据,造成数据存取效率较低。
[0003]各级统计部门为了解决SARP2000软件的不足,逐步采用了其它很多解决方案。这 ...
【技术保护点】
【技术特征摘要】
1.一种基于SARP数据处理规则编译方法,其特征在于,所述数据编译方法包括以下步骤:步骤S100:预先整理SARP的规则,并将整理后的规则写入一个字符型数据组,设该个字符型数据组为规则数组;步骤S200:查询数据库中某条数据处理规则记录,获取该条数据处理规则记录的更新时间作为该条数据的版本号;步骤S300:生成定义Java程序中的公共的类,包括分开申明主进程程序中使用的变量和线程程序中使用的变量;步骤S400:遍历规则数组找到名录表,将各个名录库相关参数信息以及相关参数信息的取值存入名录表数组中;步骤S500:遍历规则数组找到报表,将各个报表相关参数信息以及相关参数信息的取值存入报表数组中;步骤S600:遍历规则数组找到语法关键字,对规则数组中SARP的规则中的条件语句、循环语句、审核语句、直接转换语句、计算语句、汇总语句和表达式进行编译处理,转换成JAVA程序;步骤S700:将执行审核语句、计算语句和汇总语句时的生成数据写入数据库的JAVA程序中。2.根据权利要求1所述的一种基于SARP数据处理规则编译方法,其特征在于:所述步骤S600中对循环语句进行编译处理包括:如果规则数组中某条SARP规则的格式为“DO循环变量=开始值终止值步长”,判断该条SARP规则中是否包含特征规则后,线程程序生成对应开始值、终止值和步长的JAVA格式的循环语句;如果规则数组中某条SARP规则的格式为“DO循环变量=值1,值2,
…
,值a”,a为自然数,那么,线程程序生成遍历值1到值a的JAVA格式的循环语句;其中,所述判断该条SARP规则中是否包含特征规则包括:当该条SARP规则中包含“.RLEN”或“.CLEN”,主进程程序生成各种报表的主栏或宾栏长度变量值的代码,当该条SARP规则中包含“.COUNT”,主进程程序生成单位名录库的单位个数的变量值的代码。3.根据权利要求1所述的一种基于SARP数据处理规则编译方法,其特征在于:所述步骤S600中对汇总语句进行编译处理包括:所述汇总语句包括汇总总条件语句、汇总取数语句、汇总条件语句和分组汇总语句,其中,当规则数组中某条SARP规则为汇总总条件语句时,将汇总总条件语句中的表达式转换成条件判断程序,执行完条件判断程序后筛选出满足条件的单位进行汇总;当规则数组中某条SARP规则为汇总取数语句时,包括以下步骤:
①
将所有的汇总取数语句分别存入各个取数标签数组;
②
遍历各个取数标签数组,解析各取数标签数组的元素后,将元素存入汇总取数数组;
③
遍历汇总取数数组,将各报表取数坐标存到数组中并生成JAVA格式的线程程序;当规则数组中某条SARP规则为汇总条件语句时,包括以下步骤:
①
将所有的汇总条件语句分别存入各个条件标签数组;
②
遍历各个条件标签数组,解析各条件标签数组中的元素后,将元素存入汇总条件数组;
③
遍历汇总条件数组,如果汇总条件数组中的条件以“T_GROUP”开始,那么采集参数指定的名录库分组属性中的分组值作为条件表达式,否则,提取汇总条件数组中的名录库中的单位属性条件作为条件表达式;
④
分解汇总条件数组的条件表达式得到多个表达式,对表达式进行编译处理,生成JAVA格式的线程程序;当规则数组中某条SARP规则为分组汇总语句时,包括以下步骤:
①
遍历分组汇总语句中的每个字符,获取其中的分组汇总标签,并根据分组汇总标签从分组汇总语句中提取条件组和取数组,并获取条件组和取数组中的取数分量,设提取的条件组和取数组分别为总T、总Q,如果条件T组中的内容包括取数Q的内容,那么交换总T和总Q的内容,并用变量记录左括号组中的是主条件,其中,分组汇总标签包括两组括号,条件组为分组汇总标签中两种括号组中括号括起来的内容仅包括条件标签的那一组,取数组为分组汇总标签中两种括号组中的另一组,条件T组为分组汇总标签中两组括号括起的条件分量和取数组中的条件分量,取数Q为分组汇总标签中的两组括号括起的条件分量和取数组中的取数分量,左括号组为分组汇总标签中的两组括号位于左边那个括号组,主条件为两组括号内只有条件分量没有取数分量的那个条件组;
②
执行编译取数组中的取数标签,返回各种相关变量与状态值,并追加到线程代码供主程序调用;
③
将总Q的取数分量存入二维数组,其中,二维数组的第一维是“+”分隔的段,二维数组的第二维是“*”分隔的段;
④
循环处理各个取数组,如果总Q的某个分量的格式不是Q*T格式,其中,Q为取数标签,T为条件标签,那么将该个分量的格式转化为Q*T格式后,再对Q*T进行处理后,并将处理后的数据存入相关数组;
⑤
执行编译汇总条件语句中的条件标签,返回各种相关变量与状态值,并追加到线程代码;
⑥
线程代码增加各单位遍历循环代码,开始处理汇总名录表中的各单位的数据,汇总对所有单位只...
【专利技术属性】
技术研发人员:叶剑秋,王一翔,
申请(专利权)人:江苏维邦软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。