You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Suitelet表单中添加List/Record字段?

嘿,我之前在开发Suitelet的时候也遇到过这个困惑,其实NetSuite里的List/Record字段在Suitelet中是通过SELECT类型字段配合selectType属性来实现的,给你整理了完整的实现方法和代码示例,一步一步来:

在Suitelet表单中添加List/Record字段的实现指南

核心原理

NetSuite的Suitelet并没有直接叫"List/Record"的字段类型,这类字段本质是配置了特定数据源的SELECT字段,通过指定selectType属性来关联对应的记录类型(比如客户、供应商)或者自定义列表。

完整代码示例

下面是一个2.x版本的Suitelet示例,包含添加记录类型字段和自定义列表字段的两种场景:

/**
 * @NApiVersion 2.x
 * @NScriptType Suitelet
 */
define(['N/ui/serverWidget'], function(serverWidget) {
    function onRequest(context) {
        // 1. 创建基础表单
        var form = serverWidget.createForm({
            title: 'List/Record字段测试表单'
        });

        // 2. 添加关联客户记录的List/Record字段
        var customerField = form.addField({
            id: 'custpage_selected_customer',
            type: serverWidget.FieldType.SELECT,
            label: '选择客户'
        });
        // 关键配置:指定关联的记录类型
        customerField.selectType = 'customer';
        // 可选:设置字段为必填项
        customerField.isMandatory = true;
        // 可选:设置默认选中的客户内部ID
        customerField.defaultValue = 456; // 替换成你的客户内部ID

        // 3. 添加关联自定义列表的List/Record字段
        var customListField = form.addField({
            id: 'custpage_custom_list',
            type: serverWidget.FieldType.SELECT,
            label: '自定义列表选项'
        });
        // 关键配置:指定自定义列表的ID(格式为customlist_xxx)
        customListField.selectType = 'customlist_my_test_list'; // 替换成你的自定义列表ID

        // 4. 添加提交按钮并返回表单
        form.addSubmitButton({
            label: '提交表单'
        });
        context.response.writePage(form);
    }

    return {
        onRequest: onRequest
    };
});

关键细节说明

  • 如何获取正确的selectType值:
    • 对于标准记录类型(如客户、供应商),直接用记录的内部标识,比如customer、vendor、item,可以在NetSuite的记录URL中找到(例如客户列表页URL包含type=customer)。
    • 对于自定义列表,需要用自定义列表的ID,格式为customlist_xxx,可以在自定义列表的编辑页面URL中找到(URL参数id=customlist_xxx中的xxx部分)。
  • 其他常用配置:
    • 设置displaySize调整字段显示宽度:customerField.displaySize = 30;
    • 设置helpText添加字段提示:customerField.helpText = '请从下拉列表中选择对应的客户';
    • 如果需要过滤选项,可以使用addSelectOption手动添加选项,或者结合N/search模块动态加载过滤后的选项。

注意事项

  • 确保你的Suitelet脚本有对应记录/自定义列表的访问权限,否则字段可能无法正常加载选项。
  • 如果你使用的是1.x版本的Suitelet,写法会略有不同,但核心逻辑也是通过SELECT字段关联数据源,不过更推荐使用2.x版本的API。

内容的提问来源于stack exchange,提问作者ahomsher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 11:05:51