[英]SuiteScript 2.0: Dynamically add search results to custom column list based on selected Account line
希望您能提供帮助。
我正在尝试将保存的搜索结果添加到我使用用户事件脚本“即时”创建的自定义列列表中。 我曾经成功使用 SuiteScript 1.0,但现在过渡到 2.0,这似乎是不可能的。
为了演示我的代码,我首先构建了一个 UE 脚本,使用“serverWidget”模块创建了一个自定义列列表:
if (recordType === 'journalentry') {
log.debug('works')
var objLineSublist = getForm.getSublist({id: 'line'});
// Add several custom fields to the form
var entityField = objLineSublist.addField({
id: 'custpage_entity',
type: serverWidget.FieldType.SELECT,
label: 'Entity'
});
}
我的 UE 脚本运行良好。
我现在创建一个客户端脚本; 首先检查帐户类型是 A/R 还是 A/P,根据选择的这些,自定义列表 (custpage_entity) 将填充来自已保存搜索的客户或供应商数据。 由于这是一个客户端脚本,我无法访问 serverWidget 模块的属性来捕获子列表字段(与我在 UE 脚本中使用它的方式相同)。 我注意到我可以使用“currentRecord.getField”object,但遗憾的是没有用。 这是我的代码:
var customEntity = currentRecord.getField({fieldId: 'custpage_entity'});
log.debug('customEntity', customEntity);
if (getAcctType === 'AcctRec' || getAcctType === 'AcctPay') {
var recordType = '';
if (getAcctType === 'AcctRec')
recordType = 'customer'
else recordType = 'vendor';
log.debug('getAcctType', getAcctType + ' | ' + recordType);
// Insert a blank option.
customEntity.insertSelectOption({ value: 'test', text: 'test' })
//Execute saved search
var getCustomerResults = getEntityListFromSearch(recordType);
getCustomerResults.run().each(function(result){
// .run().each has a limit of 4,000 results
customEntity.insertSelectOption({
value: result.getValue({name: 'internalid'}),
text: result.getValue({name: 'entityid'})
})
return true;
});
}
如果你能帮助我做错了什么,那将是最有帮助的:我应该注意。 我需要它来处理客户端脚本中“帐户”列字段的 FIELDCHANGE。
您需要在服务器端(UE 脚本)的下拉列表中或客户端脚本的 pageInit 事件中插入您的选项(但这仅在没有您的 fieldChange 的情况下才有效)
我建议在 UE 脚本中创建两个不同的下拉菜单,并为供应商和客户插入一个选项,并添加 CSS class 以隐藏它们。 在 fieldChange 事件中,根据使用 CSS 的用户选择显示正确的下拉列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.