在 2 个数字之间过滤

Filter between 2 numbers

我有一个包含 3 个字段的自定义记录: 最低限度 最大限度 评分

我想建立一个在自定义正文字段中使用数字的搜索,如果该数字介于最小和最大数字之间,它将以比率提醒。

我可以通过保存的搜索或脚本搜索来执行此操作吗?

filters: [
  ["thenumberfield", search.Operator.GREATER_THAN, theMinNumber], "AND",
  ["thenumberfield", search.Operator.LESS_THAN, theMaxNumber]
]
function compare(context){
var minnumber = nlapiGetFieldValue('minnumber');
var maxnumber = nlapiGetFieldValue('maxnumber');
var comparenumber = nlapiGetFieldValue('comparenumber');
var rate = nlapiGetFieldValue('rate');
if(comparenumber > minnumber && comparenumber < maxnumber){
  alert(rate);
}
}

假设您为此使用客户端脚本:

/**
 * @NApiVersion 2.x
 * @NScriptType ClientScript
 */
define(["N/search"], function(search){


    function fieldChanged(ctx){
        if(ctx.fieldId == 'custbody_rate_definer'){ // use the id of your custom body field
            var definer = ctx.currentRecord.getValue({fieldId:ctx.fieldId});
            var rate = null;
            // use the actual values from your rate lookup custom record for the search
            search.create({
                type:'customrecord_custom_rates',
                filters:[
                    ['custrecord_max_val', 'greaterthan', definer], 'AND', 
                    ['custrecord_min_val', 'lessthan', definer], 'AND', 
                ],
                columns:[
                    'custrecord_rate'
                ]
            }).run().each(function(result){
                //this assumes your rates don't overlap and nothing else needs to be done to disambiguate the rate records (e.g. valid during some set of dates)
                rate = parseFloat(result.getValue({name:'custrecord_rate'})) || 0;
                return false;
            });

            if(rate) alert('The rate is '+ rate);

        }
    }


    return {
        fieldChanged:fieldChanged;
    }


});