Как добавить флажок в список (serverWidget.List) в Suitelet

#netsuite #suitescript2.0

#netsuite #suitescript2.0

Вопрос:

Я только начал использовать NetSuite и SuiteScript 2.0. Вот моя потребность:

Мне нужно создать список на основе записи, затем мне нужно выбрать нужные строки в списке, чтобы вызвать функцию только для выбранных строк.

В настоящее время я создал список (используя N / ui /serverWidget.Объект списка), и я могу отображать строки из моей записи, используя модуль N / search для загрузки моего списка, я также создал кнопку в списке, чтобы я мог вызвать функцию.

Где я застрял, это выбрать строки, которые появляются в списке, чтобы запустить функцию только для выбранных строк.

С помощью API я попытался добавить столбец типа CHECKBOX для списка, но это не сработало.

Знаете ли вы лучший способ добиться этого?

Спасибо.

Ответ №1:

Вот пример использования Suitelet для добавления флажка в подсписок. Вы бы обработали их в своем клиентском скрипте, прокручивая строки и проверяя, является ли поле true.

 function onRequest(context) {
        // Create the form
        function createForm() {
            try {
                var form = serverWidget.createForm({
                    title: 'My Form',
                    hideNavBar: false
                });
                // In the client script, handle the checked lines by looping over the
                // custpage_table sublist and looking to see if custpage_wo_process is true
                form.clientScriptModulePath = 'SomeScript.js';
                form.addButton({
                    id: 'custpage_myaction',
                    label: 'Process',
                    functionName: 'printRecords'
                });
                // Add a sublist to the form
                var sublist = form.addSublist({
                    id: 'custpage_table',
                    type: serverWidget.SublistType.LIST,
                    label: 'Records to Process'
                });
                // Show a 'Mark All' button
                sublist.addMarkAllButtons();
                // Add an internalid to track the line item
                var idField = sublist.addField({
                    id: 'custpage_rec_id',
                    label: 'Internal ID',
                    type: serverWidget.FieldType.TEXT
                });
                idField.updateDisplayType({
                    displayType: serverWidget.FieldDisplayType.HIDDEN
                });
                // Add a checkbox to mark which records should be processed
                var printField = sublist.addField({
                    id: 'custpage_rec_process',
                    label: 'Process',
                    type: serverWidget.FieldType.CHECKBOX
                });
                // return the form and sublist
                return {form: form, sublist: sublist};
            } catch (e) {
                log.error('Error creating form.', e);
            }
        }

        function handleGet() {
            var myForm = createForm();
            if (myForm) {
                // Get the form
                var form = myForm.form;
                // Get the sublist
                var sublist = myForm.sublist;
                // Do a search, etc to get the records to add to the sublist
                var addResults = fetchSearchResult();
                // Add the values to the sublist
                for (var i = 0; i < addResults.length; i  ) {
                    sublist.setSublistValue({
                        id: 'custpage_rec_id',
                        line: i,
                        value: addResults[i].id
                    });
                }
                context.response.writePage(form);
            }
        }

        if (context.request.method === 'GET') {
            handleGet();
        }
    }
  

Комментарии:

1. Спасибо! Это было именно то, что мне было нужно. Серверный виджет. Объект List не предлагает много возможностей, serverWidget. Объект Sublist приносит гораздо больше. Тот факт, что они называются List и Sublist, довольно сбивает с толку, потому что вы можете использовать объект Sublist в качестве списка верхнего уровня.