【问题标题】:Suitelet with multiple lists具有多个列表的 Suitelet
【发布时间】:2016-12-01 15:42:43
【问题描述】:

我正在尝试创建一个 Suitelet 来显示多组数据。我将有 2 个已保存的搜索,我只想在一页上显示结果,例如 2 个单独的窗口。

我知道您可以使用 response.writePage(list) 来显示结果,其中 list 是一个 nlobjList。我知道 nlobjList 可以通过将它传递给 list.addRows(searchResults) 来显示 nlobjSearchResults 的结果。

我尝试使用 2 个不同的列表进行 2 个 writePage 调用,但正如我预期的那样,它只显示 2 个调用中的第二个。

有人做过吗?这如何实现?

【问题讨论】:

    标签: netsuite suitescript


    【解决方案1】:

    只需处理每个子列表,就好像它是唯一的一样,NetSuite 会为您将它们放在单独的选项卡上。

    function suitelet(request, response) {
        var form = nlapiCreateForm('Test Page');
        var sublist1 = form.addSubList('list1', 'list', 'List 1');
        var sublist2 = form.addSubList('list2', 'list', 'List 2');
    
        sublist1.addField('custpage_field1', 'text', 'Field1');
        sublist1.addField('custpage_field2', 'text', 'Field2');
    
        sublist2.addField('custpage_field3', 'text', 'Field3');
        sublist2.addField('custpage_field4', 'text', 'Field4');
    
        response.writePage(form);
    }
    

    结果:

    【讨论】:

    • 这让我成功了。我现在遇到的问题是如何显示我的搜索结果。我看到我可以使用 sublist.setLineItemValues() 并将其传递给 nlobjSearchResult 数组。我试过了,但没有用。因此,我试图确保首先设置字段 - 我调用了 3 次 sublist.addField() 并确保我的数据类型与结果中的 3 列相匹配。它现在显示 4 行(对我的结果正确),但它没有显示这些行中的实际结果。有什么想法吗?
    • 如果您要将搜索结果传递给 .setLineItemValues(),则子列表的字段名称必须与搜索结果中列的内部 ID 匹配。我知道帮助文档说您的列名必须以“custpage”开头,但情况并非总是如此。如果您在搜索中返回“trandate”,则有一个名为“trandate”的子列表字段,并且值将对齐。
    • 我试过你说的。我意识到我遗漏了一个细节——我需要对字段进行分组。在我保存的搜索中,我将它们分组在那里。当我取消组合时,它工作正常。如何显示分组结果? ——
    猜你喜欢
    • 2016-05-14
    • 2012-04-12
    • 1970-01-01
    • 2022-08-09
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 2016-01-18
    • 1970-01-01
    相关资源
    最近更新 更多