jxTMS--统计

41 篇文章 0 订阅

统计

统计,是非常有用的一个效率工具,只是目前在中小微企业中,连基础的数据采集都没做到,所以在使用方面如何能更有效的让用户来使用,笔者也无太多经验。因此这个功能,只能简单讲述目前已经做到了什么样,如果有开发者有这方面的需要,可联络笔者协作支持。

和简易流程、业务规则一样,统计也依然是用文本定义的,如demo中所演示的:

@myModule.statistics('订单统计'.decode('utf-8'),'1M',False)
def statisticsSO():
    '''
    订单数 classify 总数 when salesOrder:field.State == '交付中' ;
    订单数 classify 按销售统计数 when salesOrder:field.State == '交付中' 则  cache.ClassifyName = people:field.Name  ;
    订单数 classify 按客户统计数 when salesOrder:field.State == '交付中' 则  cache.ClassifyName = salesOrder:field.Custom  ;

    销售额 classify 总数 when salesOrder:field.State == '交付中' 则  cache.StatValue = salesOrder:field.Amount  ;
    销售额 classify 按销售统计 when salesOrder:field.State == '交付中' 则  cache.ClassifyName = people:field.Name , cache.StatValue = salesOrder:field.Amount  ;
    销售额 classify 按客户统计 when salesOrder:field.State == '交付中' 则  cache.ClassifyName = salesOrder:field.Custom  , cache.StatValue = salesOrder:field.Amount;
    '''
    pass

这里定义的是对订单分别按订单数和销售额进行统计,而这两项统计还分别统计了总数、按销售统计数、按客户统计数这三个类别。

统计也是支持条件检测的,也就是说,我们可以对筛选出来的、符合要求的数据对象进行分别统计。

一条统计规则型如:

统计名 classify 分布名 when (对象类:)数据类型名.数据名 比较符号 表达式 则 赋值语句

其中的英文是关键字,如果统计时需要用到多个数据对象,则用这些对象的类名加以区分,而这里的类名是支持继承的,如上述的演示中,使用的是salesOrder,但大家如果看过data文件中的定义,就知道extOrder类是继承自salesOrder的,所以这条规则也同样适用于extOrder类型的订单。

数据类型名包括:

  • cache:本规则表内作为临时缓存使用

  • input:应用本规则表的capa的输入项

  • ctx:应用本规则表时的上下文

  • extand:某数据对象的现场数据集【请参考之前简易流程中的说明】

  • field:某数据对象的字段【对应于数据表中的同名列】

  • method:该数据对象的java函数

  • attr:该数据对象关联的jxTMS内置的属性表

  • tag:该数据对象所标记的某种标记

  • Info:该数据对象的Info中的某个子对象

值比较符,就是等于【==】、不等【!=】、大于【>】、大于等于【>=】、小于【<】、小于等于【<=】、相似【like】,其中,相似意为左值是以右值开头的字符串。

表达式包括值的加减乘除等,因过于复杂,具体的语法以后会在线上编程手册中详细说明。赋值语句则是对数据对象等数据集合进行操作,同样因过于复杂,具体的语法也一同在线上编程手册中进行详细的说明。

此外,演示中,还使用到了两个预定义的辅助功能:

  • cache.ClassifyName:如果该值不为空【本演示中为销售名或订单中的客户名】,则读取【订单数.按销售统计数.ClassifyName的值】的统计项,然后为其Number加一,没有则创建该统计项;同样,读取【销售额.按销售统计.ClassifyName的值】的统计项,然后为其FloatNumber增加cache.StatValue的值,没有则创建该统计项

  • cache.StatValue:jxTMS默认统计的是发生次数,所以对于成交额这种数值型的统计,就需要通过cache.StatValue中转一下

由于在用@myModule.statistics进行修饰时声明了一个1M的时间段定义,所以这六条统计语句,其实是各自进行了两次统计,一次是总的统计,一次是分时段的统计,即【销售额.按销售统计】既将这个订单的成交金额统计到该销售的销售总额,还统计到该销售当月的销售额【'1M’是指令按月进行统计】。

大家可以用总经理账号【tms->导入文档模板->已经上传过的目前demo中的用户文件应将其替代掉importUser.xls,这个文件中的user5,登录名为user58429】登录后点击快捷功能树中的【销售订单->销售额统计图表】和【销售订单->销售额统计列表】来查看统计得到的数据。目前暂没想清楚基于时间的统计图表该如何展示:(

就统计列表来看,笔者认为统计功能本身已经没啥问题了,统计的简便性、灵活性、能统计到的数据都很让人满意,问题在于,对统计到的数据该如何使用,笔者还缺少经验,所以对统计到的数据如何做进一步的加工没有概念,就更无法开发相应的展示工具了。

目前,jxTMS已经打包为云服务器镜像,开发者开箱即用:
jxTMS-腾讯云市场​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值