跳转至

数字函数

方法清单

函数名 参数 说明
isPositive(num) num: 数字型参数 判断是否为正数
isNegative(num) num: 数字型参数 判断是否为负数
round(num, pos) num: 需要四舍五入的数字;pos: 小数点后保留几位 提供精确的小数位四舍五入处理
ToCeil(num) num: 数字参数 返回大于等于其数字参数的最小整数
ToFloor(num) num: 数字参数 返回小于等于其数字参数的最大整数

方法示例

1.isPositive(num)

作用:实现isPositive(num)函数的应用,正数校验

脚本示例:

// 表单字段B隐藏脚本:A字段(编号)为正数时显示B(返回false),否则隐藏B(返回true)
(() => {
    const fieldAValue = getItemValueAsString("编号") || "";
    // 初始化隐藏状态:默认隐藏(返回true)
    let isHideFieldB = true;

    if (fieldAValue.trim()) {
        const numValue = Number(fieldAValue);
        if (!isNaN(numValue) && NUMBER.isPositive(fieldAValue)) {
            isHideFieldB = false;
        }
    }

    return isHideFieldB;
})();

2.isNegative(num)

作用:实现isNegative(num)函数的应用,负数校验

脚本示例:

// B表单字段值脚本:统计A表单符合条件的文档个数(按编号过滤)
(() => {
    const FORM_A_NAME = "fm_A"; // A表单的标识(如表单名/表名)
    const FILTER_FIELD = "编号"; // 用于过滤的A表单字段名

    const filterValue = getItemValueAsString(FILTER_FIELD) || "";
    let docCount = 0;

    try {
        let dql = `$formname='${FORM_A_NAME}'`;
        if (filterValue.trim()) {
            const escapedValue = filterValue.replace(/'/g, "''");
            dql += ` and ${FILTER_FIELD}='${escapedValue}'`;
        }

        const docList = queryDocumentByDQL(dql); // 平台通用DQL查询方法
        if (docList && docList.size) {
            docCount = docList.size() || docList.length;
        }
        println(`A表单符合条件的文档数量:${docCount}`);
    } catch (e) {
        println(`统计A表单文档数量异常:${e.message || e}`);
        docCount = 0; // 异常时默认返回0
    }
    return docCount;
})();

3.round(num, pos)

作用:实现round(num, pos)函数的应用,四舍五入函数

脚本示例:

// 表单B字段值脚本:将A字段(价格)四舍五入保留2位小数后赋值给B
(() => {
    const fieldAValue = getItemValueAsDouble("价格") || 0;
    let roundedValue = "";

    if (!isNaN(fieldAValue)) {
        roundedValue = NUMBER.round(fieldAValue, 2);
        roundedValue = String(roundedValue);
    }

    return roundedValue;
})();

4.toCeil(num)

作用:实现toCeil(num)函数的应用,取最小整数

脚本示例:

// 表单B字段值脚本:将A字段(价格)向上取整为最小整数后赋值给B
(() => {
    const fieldAValue = getItemValueAsDouble("价格") || 0;
    let ceilValue = "";

    if (!isNaN(fieldAValue)) {
        ceilValue = NUMBER.toCeil(fieldAValue);
        ceilValue = String(ceilValue);
    }

    return ceilValue;
})();

5.toFloor(num)

作用:实现toFloor(num)函数的应用,取最大整数

脚本示例:

// 表单B字段值脚本:将A字段(价格)向下取整为最大整数后赋值给B
(() => {
    const fieldAValue = getItemValueAsDouble("价格") || 0;
    let floorValue = "";

    if (!isNaN(fieldAValue)) {
        floorValue = NUMBER.toFloor(fieldAValue);
        floorValue = String(floorValue);
    }

    return floorValue;
})();