NetSuite和/或过滤器

时间:2014-02-08 01:11:59

标签: netsuite

我正在尝试在NetSuite中创建报告。我想过滤掉一个参数的某些数据,然后我想通过使用另一个参数来过滤数据。 NetSuite中是否有AND / OR过滤器?

4 个答案:

答案 0 :(得分:7)

如果您使用Netsuite报告/搜索界面,请点击使用高级搜索,然后选中使用表达式。您会在Criteria Tab中看到And / Or列。

如果您使用套装脚本执行此操作,请使用“搜索过滤器表达式”

//Define search filter expression
var filterExpression = [ 
   [ 'trandate', 'onOrAfter', 'daysAgo90' ],
   'or',
   [ 'projectedamount', 'between', 1000, 100000 ],
   'or',
   'not', [ 'customer.salesrep', 'anyOf ', -5] 
];

答案 1 :(得分:3)

我遇到了需要在Netsuite中使用AND / OR过滤器的情况。 我通过以下方式实现了这一目标:

您可以通过

直接提供静态过滤器值
meta-fsl-arm

如果您想动态添加过滤器, 将过滤器存储/推送到数组并将此数组设置为过滤器。 你可以通过

实现这一目标
filters: [
    ['internalid', 'anyof', parseInt(customer_internal_id)],
    'and',
    ['transaction.internalidnumber', 'equalto', parseInt(salesorder_internal_id)],
    'and',
    ['transaction.mainline', 'is', 'true']
]

最后通过设置

var individualFilter = [], combineIndividualFilter = [], defaultFilters = [];
for (var i = 0; i < numLines; i++) {
    individualFilter[0] = ['formulatext: {category}','startswith',"Related Items for "+ itemName[i].split(" :")[0]];
    combineIndividualFilter.push(individualFilter[0]);
    if ((i + 1) != numLines) {
        combineIndividualFilter.push('OR');
    }
}
defaultFilters.push(combineIndividualFilter);
defaultFilters.push('AND');
defaultFilters.push(['website', 'anyof', 3 ]);
defaultFilters.push('AND');
defaultFilters.push(['formulatext: {storedisplayimage}','isnotempty', null ]);

答案 2 :(得分:2)

我认为您也可以使用已保存的搜索选项实现相同的目标 转到:列表 - &gt;搜索 - &gt;已保存的搜索 - &gt;新
在条件子选项卡上创建新的已保存搜索 使用表达式框上的标记。将过滤条件与“和/或”结合放置。

否则请使用以下内容:
var filters = new Array(); filters [0] = new nlobjSearchFilter('custrecord01',null,'contains','alpha')。setOr(true);
filters [1] = new nlobjSearchFilter('custrecord02',null,'contains','x')。setOr(true);

答案 3 :(得分:2)

我们也可以在公式搜索中使用sql OR,如下所示

var flt = new Array();
var strFormula = "case when {internalid}=123 OR {internalid}=456 then 'yes' else 'no' end";
flt.push(new nlobjSearchFilter('formulatext',null,'is','yes').setFormula(strFormula));

var col = new Array();
col.push(new nlobjSearchColumn("entityid"));

var rslt = nlapiSearchRecord('customer',null,flt,col);