Нумерация страниц в Suitescript 2.0 Netsuite - PullRequest
0 голосов
/ 04 декабря 2018

Я попытался реализовать разбивку по netsuite в suitescript 2.0, кнопка prev работает, но вместо 20 поисковых данных она возвращается как целое.Кнопка Next не работает, всегда выдает ошибку 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 голосов
/ 06 декабря 2018

Вы должны передать текущий / запрошенный 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'
    });
})

То, что вы сделали неправильно, вы начинали с последнего индекса, а затем пыталисьизвлечь индекс несуществующего массива в случае, если пользователь нажимает следующий.

Примечание: предыдущая кнопка должна быть отключена / скрыта, если нет страниц, чтобы не столкнуться с той же ошибкой и той жеможно сделать и для следующей кнопки.

...