Netsuite Clientscript如何使用它从子列表获取值

Netsuite Clientscript如何使用它从子列表获取值,netsuite,suitescript,clientscript,clientscriptmanager,Netsuite,Suitescript,Clientscript,Clientscriptmanager,我有一个suitelet,它有一个表单,生成一个搜索过滤器并填充一个子列表,这个子列表有一个文本字段,必须填充一个数字,才能为该行赋值 //,还指定应用筛选器时哪个字段不起作用, //例如campoitem。一些过滤器工作良好,例如codigobarra /** *@NApiVersion 2.0 *@NScriptType suitelet *@NModuleScope公共 */ 定义['N/ui/serverWidget','N/search','N/log'], functionserv

我有一个suitelet,它有一个表单,生成一个搜索过滤器并填充一个子列表,这个子列表有一个文本字段,必须填充一个数字,才能为该行赋值

//,还指定应用筛选器时哪个字段不起作用, //例如campoitem。一些过滤器工作良好,例如codigobarra /** *@NApiVersion 2.0 *@NScriptType suitelet *@NModuleScope公共 */ 定义['N/ui/serverWidget','N/search','N/log'], functionserverWidget、搜索、日志{ //1-内容功能 函数onRequestcontext{ //2-CARGAMOS LA BUSQUEDA GUARDAD ESTA BUSQUEDA GUARDAD FUE CREADA EN SUITELE //你可以根据标准来定义你的剧本 var busqueda=search.load{id:'customsearch\u axa\u lista\u v5\u ok'}; 试一试{ //配方乳膏 var formulario=serverWidget.createForm{title:'formulario de Busqueda'}; //布斯奎达咖啡馆 var GrupoBusqueda=formulario.addFieldGroup{id:'GrupoBusqueda',标签:'Grupo de Busqueda'}; GrupoBusqueda.issingelcolumn=true; //瓦洛雷斯海滩酒店 addField{id:'codigobarra',类型:serverWidget.FieldType.TEXT,标签:'codigodebarras',容器:'GrupoBusqueda'}; addField{id:'nombrelinea',类型:serverWidget.FieldType.TEXT,标签:'Linea de Producto',容器:'GrupoBusqueda'}; addField{id:'nombrelista',类型:serverWidget.FieldType.TEXT,标签:'Lista de asociados',容器:'GrupoBusqueda'}; formulario.addField{id:'campoitem',类型:serverWidget.FieldType.TEXT,标签:'selecciator Producto',来源:'item',容器:'GrupoBusqueda'}; formulario.addField{id:'formafarma',类型:serverWidget.FieldType.TEXT,标签:'selecciator Tipo de producto Jarabe/tabletas etc',来源:'item',容器:'GrupoBusqueda'; //在这两个城市之间的咖啡馆 var GrupoBusquedaDos=formulario.addFieldGroup{id:'GrupoBusquedaDos',标签:'AXA 2019'}; GrupoBusquedaDos.issingelcolumn=true; //瓦洛雷斯之旅 addField{id:'preciobase1',类型:serverWidget.FieldType.CURRENCY,标签:'Precio desde',容器:'GrupoBusquedaDos'}; addField{id:'preciobase2',类型:serverWidget.FieldType.CURRENCY,标签:'Precio hasta',容器:'GrupoBusquedaDos'}; addField{id:'ivaporcent1',类型:serverWidget.FieldType.PERCENT,标签:'promotiondesde',容器:'GrupoBusquedaDos'}; addField{id:'ivaporcent2',类型:serverWidget.FieldType.PERCENT,标签:'promotionhasta',容器:'GrupoBusquedaDos'}; //环境和林皮亚肉酱 addSubmitButton{id:'markall',标签:'Enviar Filtro'}; formulario.addResetButton{标签:'Limpiar Campos'}; //我们的环境是一个新的世界,它是一个可视化的世界 context.response.writePageformulario; //卡达坎波酒店 //普雷巴个人临时营地 var codigobarra=context.request.parameters.codigobarra; var nombrelinea=context.request.parameters.nombrelinea; var nombrelista=context.request.parameters.nombrelista; var campoitem=context.request.parameters.campoitem; var formafarma=context.request.parameters.formafarma; var preciobase1=context.request.parameters.preciobase1; var preciobase2=context.request.parameters.preciobase2; var ivaporcent1=context.request.parameters.ivaporcent1; var ivaporcent2=context.request.parameters.ivaporcent2; //这是一个很好的例子 //成功的勇气 //这是一个很好的例子 如果科迪戈巴拉{ //布斯奎达酒店 变量f iltrosArray=busqueda.filters; //巴拉河流域生态系统研究所 var filterOne=search.createFilter{name:'upccode',join:'custrecord\u nso\u item',操作符:search.operator.STARTSWITH,值:[codigobarra]}; //ENVIAMOS ESE FILTRO一个NUESTRO阵列 过滤器阵列。推送过滤器; DATOSFILTROSARAY//INICIAMOS LA FUNCION DATOS CON EL FILTRO CREADO }//ESTE CODIGO Functiona NOMBRELINEA 否则,如果nombrelinea{ var filterOne=search.createFilter{name:'vendorname',join:'custrecord\u nso\u item',operator:search.operator.STARTSWITH,value:[nombrelinea]}; var filtersarray=busqueda.filters; 过滤器阵列。推送过滤器; datosfiltrosArray; }//ESTE CODIGO FUNCIONA NOMBRELISTA 否则,如果没有名字{ var filterOne=search.createFilter{name:'name',join:'CUSTRECORD\u AXA\u PRU\u BOD\u CLI',operator:search.operator.STARTSWITH,value:[nombrelista]}; var filtersarray=busqueda.filters; 过滤器阵列。推送过滤器; datosfiltrosArray; }//ESTE CODIGO ACONTINUACION TINE ERROR CAMPOITEM 如果是campoitem{ var filterOne=search.createFilter{name:'displayname',join:'custrecord\u nso\u item',operator:search.operator.STARTSWITH,value:[campoitem]}; var filtersarray=busqueda.filters; 过滤器阵列。推送过滤器; datosfiltrosArray; }//ESTE CODIGO ACONTINUACION TINE错误形式 如果是法玛的话{ var filterOne=search.createFilter{name:'custitem\u nso\u forma\u farmaceutica',join:'custrecord\u nso\u item',operator:search.operator.STARTSWITH,value:[formafarma]}; var filtersarray=busqueda.filters; 过滤器阵列。推送过滤器; datosfiltrosArray; }//ESTE CODIGO Functiona PRECIOBASE 1 Y 2 否则如果preciobase1,preciobase2{ var filterOne=search.createFilter{name:'formulanumeric',formula:'ROUND{custrect\u nso\u costo\u maestro}+{custrect\u nso\u costo\u maestro}*{custrect\u axa\u pru bod\u cli.custrect\u nso\u margen\u 2},0',运算符:search.operator.greatethern,value:[preciobase1]}; var filterTwo=search.createFilter{name:'formulanumeric',formula:'ROUND{custrecord\u nso\u costo\u maestro}+{custrecord\u nso\u costo\u maestro}*{custrecord\u axa\u pru bod\u cli.custrecord\u nso\u margen 2},0',运算符:search.operator.notgreater,value:[preciobase2]}; var filtersarray=busqueda.filters; filterArray.pushfilterOne,filterTwo; datosfiltrosArray; }//ESTE CODIGO ACONTINUACION TINE错误概率1 Y概率2 如果为ivaporcent1,则为ivaporcent2{ var filterOne=search.createFilter{name:'custitem\u axa\u edu\u iva',join:'CUSTRECORD\u NSO\u ITEM',operator:search.operator.GREATERTHAN,值:[ivaporcent1]}; var filterTwo=search.createFilter{name:'custitem\u axa\u edu\u iva',join:'CUSTRECORD\u NSO\u ITEM',operator:search.operator.notgreaterther,value:[ivaporcent2]}; var filtersarray=busqueda.filters; filterArray.pushfilterOne,filterTwo; datosfiltrosArray; } 返回{formulario:formulario}; }抓住e{ log.error“error al-crear el-formuraio.”,e; } //布斯奎达过滤终点站 //在过滤过程中,在过滤过程中收集的数据的功能 函数datosfiltrosArray{ //分区域信息中心 var filtersv4=busqueda.run.getRange{start:0,end:70}; //在达托斯的新公式中 var form=serverWidget.createForm{ 标题:“Datos Filtrados:”+codigobarra+“”+nombrelinea+“”+nombrelista+“”+campoitem+“”+formafarma }; //ACCESO DIRECTO A联合国新过滤器-链接 form.addPageLink{type: serverWidget.FormPageLinkType.CROSSLINK,标题:“Nuevo Filtro”,url:'/app/site/hosting/scriptlet.nl?script=1358&deploy=1'}; //这是一个建筑外的公共设施 form.clientScriptModulePath='SuiteScripts/GHpruebaScript/ClientScript/GHclientScript.js'; //达托斯伯爵酒店 var sublist=form.addSublist{ id:'子列表', 类型:serverWidget.SublistType.LIST、//INLINEEDITOR、LIST'、'EDITOR'或'STATICLIST' 标签:“产品列表” }; //国际验证奶油 var idField=sublist.addField{ id:'custpage\u registro\u interno\u id', 标签:“内部ID”, 类型:serverWidget.FieldType.TEXT }; //坎波德安格鲁坎蒂达德奶油酒店 var cantidad=sublist.addField{ id:“custpage_cantidad”, 标签:“Cantidad Producto”, 类型:serverWidget.FieldType.INTEGER }; cantidad.updateDisplayType{displayType:serverWidget.FieldDisplayType.ENTRY}; //下岩柱的名称 sublist.addField{id:'custpage_empresa',label:'empresa',type:serverWidget.FieldType.TEXT}; sublist.addField{id:'custpage_codigobarra',标签:'Codigo de Barras',类型:serverWidget.FieldType.TEXT}; sublist.addField{id:'custpage_producto',label:'producto',type:serverWidget.FieldType.TEXT}; sublist.addField{id:'custpage_linea',label:'linea',type:serverWidget.FieldType.TEXT}; sublist.addField{id:'custpage_precio',标签:'precio Venta',类型:serverWidget.FieldType.CURRENCY}; sublist.addField{id:'custpage_Descento',标签:'Deccento',类型:serverWidget.FieldType.PERCENT}; sublist.addField{id:'custpage_predesc',标签:'Precio descumento',类型:serverWidget.FieldType.CURRENCY}; sublist.addField{id:'custpage_iva',label:'iva',type:serverWidget.FieldType.PERCENT}; sublist.addField{id:'custpage_preiva',label:'Precio IVA',type:serverWidget.FieldType.CURRENCY}; sublist.addField{id:'custpage_promo',label:'Fecha promotion',type:serverWidget.FieldType.DATE}; sublist.addField{id:'custpage_generico',label:'generico',type:serverWidget.FieldType.TEXT}; sublist.addField{id:'custpage_farma',标签:'FormFarma',类型:serverWidget.FieldType.TEXT}; sublist.addField{id:'custpage_saldo',标签:'saldo',类型:serverWidget.FieldType.INTEGER}; //sublist.addMarkAllButtons; //坎蒂达德酒店 //意念风格的埃斯特坎波·塞雷迪塔多·克里伊(CAMPO AL-SER EDITADO CREE)在达托斯的托马拉(TOMARA LOS DATOS)进行了实地考察 //这是一个很好的例子。 //他是一个很好的专栏作家 var sublist=form.getSublist{id:'sublist'}; 对于var i=0;i}; 如果您只是尝试获取custpage\u registro\u interno\u id字段,您可以使用:

ObjetoRecibido.getSublistValue({
    sublistId:context.sublistId,
    fieldId:'custpage_registro_interno_id',
    line:context.line,
});
如果需要一行中的所有值:

var columnNames =[sublistFieldIdX,sublistFieldIdY];//Store your sublist field ID's from your Suitelet
var lineValues = [];
columnNames.foreach(function(columnName){
    var fieldValue = ObjetoRecibido.getSublistValue({
            sublistId:context.sublistId,
            fieldId:columnName,
            line:context.line,
    });
    lineValues.push(fieldValue);
});
//Do something with your line value
我知道硬编码的子列表字段ID并不理想,但我还没有找到解决方法

希望这有帮助