/** * 报表公式,常用函数 * @author cls * @date 2021-01-19 */ // 获取转换数值值 export function getNumberVal(val) { if (typeof val == "number") { return val; } else if (typeof val == "string") { return val.indexOf(".") == -1 ? parseInt(val) : parseFloat(val); } else if (typeof val == "boolean") { return val ? 1 : 0; } } /** * showdoc * @catalog JS工具类/FormclaBasic * @title 求合 * @description 根据传入对象数组,参数列表求合 * @method static * @url import { sum } from '@birt/funclib/FormclaBasic.js' * @param number 必选 int|string|array 动态数值参数 * @return number 求合值 * @remark 测试用例 * sum(1,2,3) => 6 或 sum([1,2,3]) => 6 */ export function sum() { if (arguments.length == 0) { console.error("sum函数必须传入相应数值参数 num1,num2,[num3,num4],..."); return; } let sumVal = 0; for (let i = 0, l = arguments.length; i < l; i++) { let p = arguments[i]; if (Array.isArray(p)) { p.forEach(pi => { sumVal += getNumberVal(pi); }) } else { sumVal += getNumberVal(p); } } return sumVal; } export const FormulaBasics = { sum: sum }