Suitescript 2.0 Netsuite中的分页

时间:2018-12-04 07:10:23

标签: netsuite suitescript suitescript2.0

我尝试在suitescript 2.0中实现netsuite分页,上一个按钮可用,但返回的不是20个搜索数据,而是整体返回。下一步按钮不起作用总是抛出错误INVALID_PAGE_RANGE

这是套件代码

         var loadSearch = search.load({
            id: 'customsearch_inv123'

        });
        var i = 0;

        var pagedData = loadSearch.runPaged({
            pageSize: 20
        });

        pagedData.pageRanges.forEach(function (pageRange) {

            var lastPageRange = pagedData.pageRanges[pagedData.pageRanges.length - 1];

            var Page = pagedData.fetch({
                index: lastPageRange.index
            });

            if (context.request.parameters.next) {
                Page = Page.next(); 
            }

            if (context.request.parameters.prev) {
                Page =Page.prev();
            }

            Page.data.forEach(function (result) {

                var number = result.getValue({
                    name: 'inventorynumber'
                });

                if (number) {

                    updateSublist.setSublistValue({
                        id: 'custpage_number',
                        line: i,
                        value: number
                    });
                }


                i++;

            });
        });


        // submit button

        form.addSubmitButton({
            label: 'Submit'
        });

        form.addButton({
            id: '_next',
            label: 'Next',
            functionName: 'next'
        });

        form.addButton({
            id: '_prev',
            label: 'Prev',
            functionName: 'prev'
        });


        form.clientScriptModulePath = 'SuiteScripts/client.js';

在客户端脚本中,我编写了next和prev函数,并使用next或prev参数重定向到同一页面,并基于该页面分别命名为page.next和page.prev。

如果您已执行此操作,请帮助我。

这是客户代码。

 next: function () {
                window.location.href = 'example.com' + '&next=t';
            },

            prev: function () {
                window.location.href = 'example.com' + '&prev=t';
            }

1 个答案:

答案 0 :(得分:0)

您应该从客户端脚本传递当前/请求的pageNumber,然后使用它来获取该特定页面的数据,如下所示

var pagedData = loadSearch.runPaged({
    pageSize: 20
});

requestedPageNumber = 2

var page = pagedData.fetch({ index: requestedPageNumber });

page.data.forEach(function (result) {
    // result is the searchResult object
    // YOUR CODE GOES HERE
    var number = result.getValue({
        name: 'inventorynumber'
    });
})

您做错了什么是从最后一个索引开始,然后尝试获取不存在的数组索引,以防用户单击下一步。

注意:应该在没有页面的地方禁用/隐藏上一个按钮,以免遇到相同的错误,并且下一个按钮也可以执行相同的操作。