Discussões
Filtrar um campo de 'seleção' na mudança de campo usando o SuiteScript
Aplica-se a
Produto: NetSuite 2021.2
Cenário
O usuário gostaria de ter uma página que contenha um campo 'selecionar' que filtra outro campo 'selecionar'.
Solução
Abaixo estão os scripts de amostra para obter o resultado.
No SuiteScript 1.0
Script Suitelet:
function filterSelect(request,response){
var pEntity = request.getParameter('custpage_entity');
if (!pEntity) pEntity = 0;
var action = request.getParameter('custpage_action');
if (action == null || action == 'refresh')
{
response.writePage(refreshOtherSelect(pEntity));
}
}
function refreshOtherSelect(pEntity){
try {
var form = nlapiCreateForm('Fulfill Order Lines');
var action = form.addField('custpage_action', 'text', 'Action');
action.setDefaultValue('submit');
action.setDisplayType('hidden');
var entity = form.addField('custpage_entity', 'select', 'Customer');
addEntityOptions(entity, pEntity);
var transactions = form.addField('custpage_transaction','select','Transactions');
nlapiLogExecution('DEBUG','Entity', 'Entity is: '+pEntity);
nlapiLogExecution('DEBUG','Run Search', 'Running Search');
var search = nlapiLoadSearch('transaction', 'customsearch_all_transactions');
search.addFilter(new nlobjSearchFilter('entity', null, 'anyof', pEntity));
var resultSet = search.runSearch();
resultSet.forEachResult(function(result) {
var n = 0;
nlapiLogExecution('DEBUG','Transactions',result.getValue('number'));
transactions.addSelectOption(n, result.getValue('type') + ' ' + result.getValue('number'));
n++;
return true;
});
} catch(e) {
if ( e instanceof nlobjError )
nlapiLogExecution('DEBUG','Error','Details: ' + e.getDetails() + ' Code: ' + e.getCode());
else
nlapiLogExecution('DEBUG','Error','Error Details: ' + e.toString());
}
form.setScript('customscript_item_fulfillment_cs');
form.addSubmitButton('Submit');
form.addResetButton();
return(form);
}
function addEntityOptions(select, default_)
{
select.addSelectOption(0, '- Select One -');
var search = nlapiLoadSearch('transaction', 'customsearch_all_transactions');
search.addFilter(new nlobjSearchFilter('mainname', null, 'noneof',
Rotulado:
0
Olá, bem-vind@!
Faça login
Para ver todos os detalhes, faça o login.
Cadastre-se
Não tem uma conta? Clique aqui para começar!