天天看點

JVS開源架構系列:函數公式說明「含軟開企服的開源位址」

 JVS項目簡介

JVS是面向軟體開發團隊可以快速實作應用的基礎開發架構,采用微服務分布式架構,提供豐富的基礎功能,內建衆多業務引擎,它靈活性強,界面化配置對開發者友好,底層容器化建構,集合持續化建構。

項目倉庫:https://gitee.com/software-minister/jvs

函數公式使用場景介紹

在填寫表單或修改表單資料時,可以使該字段的值根據公式自動計算出來,不需要再手動填寫。

目前一共支援 96 種函數,函數的靈活應用,對于資料收集有很多作用:

(1)可以提高填寫表單的效率,将一些資料自動計算出來,減少需要填寫的内容

如,分數在 90 以上時等級為 A,否則為 B。那麼在輸入分數之後,等級是 A 或 B 就能根據公式自動判斷出來。

(2)可以減少錯誤

如,目前庫存總數量=入庫數量-已出庫數量。那麼在入庫數量、已出庫數量輸入之後,目前庫存總數量就能根據公式自動計算出來,避免手工計算出錯。

函數公式設定

目前基本上所有的元件都已經支援編輯公式。

路徑:選擇畫布中的元件 >> 屬性配置面闆 >>事件 >> 公式設定 >>配置

JVS開源架構系列:函數公式說明「含軟開企服的開源位址」
JVS開源架構系列:函數公式說明「含軟開企服的開源位址」

編輯

JVS開源架構系列:函數公式說明「含軟開企服的開源位址」
JVS開源架構系列:函數公式說明「含軟開企服的開源位址」

編輯

參與來源與表單攜帶過來的資料、系統底層提供的全局資料等,配置方式類excel的函數配置。

公式使用的場景

公式的組成

公式通常由元件、函數、運算符和标點符号組成

所有的字段,實際上都有一個内置的唯一辨別,而所能看見的元件名稱,也僅僅是一個顯示名稱。當公式需要将字段值作為變量時,手動輸入或複制粘貼都是無效的(目前頁面的公式可以拷貝給目前頁面使用)

因為元件名可以重複,如果需要在公式中插入元件,應在字段清單中點選該元件,而不是手動輸入元件名稱。

公式内所有出現的符号,都需要在英文狀态下輸入

公式規則

在目前/所有表單字段中選擇字段

公式所要用到的字段,絕大多數情況下是從 目前表單字段 中選擇

隻有 業務關聯規則的函數會用到 所有表單字段

提醒:從目前表單字段中選擇的字段是藍色的,從所有表單字段中選擇的字段是綠色的

運算符号

公式中,支援基本的運算操作符 +、-、*、/

+ - * /

注:JVS公式中,等于邏輯應該用 EQ() ,而不是 = 。

公式概覽(部分公式計劃中)

函數 函數分類 說明 說明 上手執行個體
EQ 邏輯函數 兩個值比較,相等傳回 true,預設忽略大小寫,若不忽略,則填寫第三個參數true 2個,必填 EQ(value1,value2)
NE 邏輯函數 兩個值比較,不相等傳回 true,預設忽略大小寫,若不忽略,則填寫第三個參數true 2個,必填 NE(value1,value2)
LT 邏輯函數 value1小于value2傳回 true 2個,必填 LT(value1,value2)
GT 邏輯函數 value1大于value2傳回 true 2個,必填 GT(value1,value2)
LE 邏輯函數 value1小于等于value2傳回 true 2個,必填 LE(value1,value2)
GE 邏輯函數 value1大于等于value2傳回 true 2個,必填 GE(value1,value2)
AND 邏輯函數 當參數組中的所有參數邏輯值為 true 時(逗号隔開的邏輯式子都滿足),才傳回 true,當參數組中的任何一個參數邏輯值為 false 時,就會傳回false。 至少1個,必填 AND(logical1, [logical2], ...)
OR 邏輯函數 在參數組中,任何一個參數邏輯值為 true(逗号隔開的邏輯式子其中一項滿足),即傳回 true;隻有當所有邏輯參數值為 false,才傳回 false。 至少1個,必填 OR(logical1,[logical2], ...)
NOT 邏輯函數 對參數邏輯值求反。NOT 比較簡單,就是把括号裡為 true 的值變成 false,括号裡為 false 的值變為 true。 1個,必填 NOT(logical)
IF 邏輯函數 判斷一個條件能否滿足;如果滿足傳回一個值,如果不滿足則傳回另外一個值 3個,必填 IF(A,B,C)
ISEMPTY 邏輯函數 判斷一個字段是否為空;如果為空,則傳回 true;如果不為空則傳回 false 1個,必填 ISEMPTY(字段)
CONCATENATE 文本函數 将多個字元串拼接合成一個文本字元串 至少1個,必填 CONCATENATE(text1,[text2], ...)
LEFT 文本函數 從一個文本字元串的第一個字元開始傳回指定個數的字元,如果文本長度小于自定字元個數,就将原始文本傳回 2個,必填 LEFT(text,num_chars)
RIGHT 文本函數 從一個文本字元串的最後一個字元開始傳回指定個數的字元,如果文本長度小于自定字元個數,就将原始文本傳回 2個,必填 RIGHT(text,num_chars)
LEN 文本函數 傳回文本字元串中的字元個數 1個,必填 LEN(text)
LOWER 文本函數 将一個文本字元串中的所有大寫字母轉換為小寫字母 1個,必填 LOWER(text)
UPPER 文本函數 将一個文本字元串中的所有小寫字母轉換為大寫字母 1個,必填 UPPER(text)
REPLACE 文本函數 根據指定的字元數,将部分文本字元串替換為不同的文本字元串 1個,必填 REPLACE(oldtext, startnum, numchars, newtext)
REPT 文本函數 将文本重複指定次數 2個,必填 REPT(text, number_times)
SEARCH 文本函數 在第二個文本字元串中查找第一個文本字元串,并傳回第一個文本字元串的起始位置的編号,該編号從第二個文本字元串的第一個字元算起。傳回 0 則表示未查找到 3個,前2個必填 SEARCH(findtext,withintext,[start_num])
MID 文本函數 截取文本的有效部分内容 3個,必填 MID(text,start_index,end_index)
ISEMPTY 文本函數 判斷值是否為空字元串、空對象或者空數組 1個,必填 ISEMPTY(text)
ADD 數學函數 計算多個字段值總和 至少1個,必填 ADD(number1, [number2], ...)
AVERAGE 數學函數 求多個數值的平均值 至少1個,必填 AVERAGE(number1, [number2], ...)
MAX 數學函數 傳回一組數字中的最大值 至少1個,必填 MAX(Number1, [Number2], ...)
MIN 數學函數 傳回一組數字中的最小值 至少1個,必填 MIN(Number1, [Number2], ...)
ABS 數學函數 當數值為負數的時候傳回他的絕對值數值 1個,必填 ABS(Number)
ROUND 數學函數 數值出現小數點的時候,将小位數指定到對應的位數 2個,必填 ROUND(number, num_digits)
CEILING 數學函數

傳回将參數

number 向上舍入(沿絕對值增大的方向)為最接近的指定基數的倍數

2個,必填 CEILING(number, significance)
FLOOR 數學函數

将參數

number 向下舍入(沿絕對值減小的方向)為最接近的 significance 的倍數

2個,必填 FLOOR(number, significance)
INTNUM 數學函數 将數字向下舍入到最接近的整數 1個,必填 INTNUM(number)
LOG 數學函數 根據指定底數傳回數字的對數 2個,必填 LOG(number, base)
MOD 數學函數

傳回 2

個數值元件相除的餘數

2個,必填 MOD(number, divisor)
POWER 數學函數 計算出數值元件乘幂的值 2個,必填 POWER(number, power)
FIXED 數學函數 将數字舍入到指定的小數位數,以十進制數格式對該數進行格式設定,并以數字形式傳回結果 2個,必填 FIXED(number, decimals)
SQRT 數學函數 取數值元件值正的平方根 1個,必填 SQRT(number)
SUM 數學函數 函數使所有以參數形式給出的數字相加并傳回和 至少1個,必填 SUM(number1, [number2], ...)
PRODUCT 數學函數 數字相乘 2個,必填 PRODUCT(number1,number2)
SUMPRODUCT 數學函數 在給定的數組中,将數組間對應的元素相乘,并傳回乘積之和 2個,必填 SUMPRODUCT(array1, array2)
NUMBERCOMPARE 數學函數 數值元件與數值元件2比較,大于傳回1,等于傳回0,小于傳回-1 2個,必填 NUMBERCOMPARE(數值元件1,數值元件2)
NOW 時間函數 自此日期起的1970年1月1日,00:00:00 GMT以來的毫秒數。 不可填 NOW()
INTERSECTIONSET 集合函數 計算兩個集合的交集 2個,必填 INTERSECTIONSET(array1,array2)
UNIONSET 集合函數 計算兩個集合的并集 2個,必填 UNIONSET(array1,array2)
DIFFERENCESET 集合函數 計算兩個集合的差集 2個,必填 DIFFERENCESET(array1,array2)
SUBSET 集合函數 計算第二個集合是否第一個集合的子集 2個,必填 SUBSET(array1,array2)
ARRAYGET 集合函數 傳回資料集中第k個值 2個,必填 ARRAYGET(Array, k)
LARGE 集合函數 傳回資料集中第k個最大值 2個,必填 LARGE(Array, k)
SMALL 集合函數 傳回資料集中第k個最小值 2個,必填 SMALL(Array,k)
USER 人員類

無參數模式:User()

擷取目前登入人;

1個,選填 USER()

有參數模式:User(level)

目前登入人的主管, level 是 擷取目前登入人的主管

USER([level])
USERFIELD 人員類 人員搜尋框需要關聯帶出一些基本資訊 2個,必填

USERFIELD(

成員 ,"userId"),USERFIELD( 成員 ,"name")

GETUSERNAME 人員類 擷取目前登入人昵稱 不可填 GETUSERNAME()
EMPLOYEE 人員類 傳回對應的人員資訊對象數組(即人員元件底層的值) 1個,必填 EMPLOYEE(array1)
DIRECTOR 人員類 擷取目前登陸人的主管名稱 1個,必填 DIRECTOR(level)
LOGINUSER 人員類 登入人 不可填 LOGINUSER()
LOGINUSERWORKNO 人員類 擷取目前登入人員工唯一ID(員工UserID) 不可填 LOGINUSERWORKNO()
DEPTNAME 部門類 擷取指定人所在部門名稱 1個,必填 DEPTNAME(userId)
COUNT 通用類 統計指定表單送出的資料總數 至少1個,必填