jxTMS--統計

統計

統計,是非常有用的一個效率工具,只是目前在中小微企業中,連基礎的數據採集都沒做到,所以在使用方面如何能更有效的讓用戶來使用,筆者也無太多經驗。因此這個功能,只能簡單講述目前已經做到了什麼樣,如果有開發者有這方面的需要,可聯絡筆者協作支持。

和簡易流程、業務規則一樣,統計也依然是用文本定義的,如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-騰訊雲市場​

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章