0

非常需要帮助.. 我正在尝试在我的nlapiSearchRecord API 中添加一个条件,但没有遵循该条件。尽管它运行良好且没有错误,但套件正在查看第一个参数,即使它应该遵循 else 语句。

请参考以下线路:var arrSearchResults = nlapiSearchRecord(searchRecordType, null, arrSearchFilters, (searchRecordType = 'transaction') ? arrSearchColumnsTrans : arrSearchColumnsCustomers) || [];

即使 searchRecordType 是“ customers ”,它仍然遵循arrSearchColumnsTrans,而不是arrSearchColumnsCustomers


var searchRecordType = request.getParameter ('custpage_rectype'); 
var searchLookupText = request.getParameter ('custpage_lookuptext'); 
var searchLookupField = request.getParameter ('custpage_lookupfield'); 
var searchParameter = request.getParameter ('custpage_searchparam'); 

var arrSearchFilters = [new nlobjSearchFilter(searchLookupField, null, searchParameter, searchLookupText)];
                            
var arrSearchColumnsTrans = [new nlobjSearchColumn('internalid'),
                                  new nlobjSearchColumn('type'),
                                  new nlobjSearchColumn('entity')];

var arrSearchColumnsCustomers = [new nlobjSearchColumn('internalid'),
                                  new nlobjSearchColumn('entityid'),
                                  new nlobjSearchColumn('companyname')];
        
  
var arrSearchResults =  nlapiSearchRecord(searchRecordType, null, arrSearchFilters, 
(searchRecordType = 'transaction') ? arrSearchColumnsTrans : arrSearchColumnsCustomers) || [];
        
var objVal = {};
for (var i = 0, ii = arrSearchResults.length; i < ii; i++) 
{
    var val = arrSearchResults[i];
    objVal[val.getId()] = {};
    objVal[val.getId()].tranid = val.getValue('tranid');
    objVal[val.getId()].internalid = val.getValue('internalid');
    objVal[val.getId()].type = val.getValue('type');
    objVal[val.getId()].entityid = val.getValue('entityid');
    objVal[val.getId()].entity = val.getText('entity');
    }
   
4

2 回答 2

0

您的三元语句实际上没有条件:

(searchRecordType = 'transaction') ? ...

因为您正在使用=,所以您只是将值分配给'transaction'to searchRecordType。如果您想比较这两个值,则需要使用==or ===

请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Equalityhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators /Strict_equality

于 2020-11-05T15:01:21.903 回答
0

谢谢!现在都好了。。

var arrSearchResults = (searchRecordType === 'transaction') ? nlapiSearchRecord(searchRecordType, null, arrSearchFilters, arrSearchColumnsTrans) : (searchRecordType === 'item') ? nlapiSearchRecord(searchRecordType, null, arrSearchFilters, arrSearchColumnsItems) : nlapiSearchRecord(searchRecordType, null, arrSearchFilters, arrSearchColumns) || [];
于 2020-11-09T21:48:04.470 回答