Запись состояния источника в поле подсписка - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь создать настраиваемый подсписок с полем подсписка, в котором источником будет запись Состояния, которая управляется в разделе Настройка> Компания> Состояния / Провинции / Страны.Вот пример кода, который я использую, и он не работает.

_sublist.addField({
   id: 'custpage_license_state,
   type: serverWidgetModule.FieldType.SELECT,
   label: 'LICENSE STATE',
   source: 'state' //not recognizing record id
});

Я пытался использовать 'state', 'states', '-195', -195 (смог найти этоэто внутренний идентификатор для записи состояний в нашем экземпляре "-195"), но ничего не работает.

Есть ли у кого-нибудь идеи о том, как заставить это работать.

Спасибо.

1 Ответ

0 голосов
/ 02 ноября 2018

Запись штата / провинции не раскрывается.Вам нужно будет добавить опции к field вручную.Вы можете выполнить поиск по записям клиентов, которые будут возвращать только присвоенные в данный момент состояния;

/**
     * Gets customers geographical states.
     *
     * @returns {Array} of state information.
     */
    function getStates() {
        var records = [];
        var customerSearchObj = search.create({
            type: "customer",
            filters: [
                ["formulatext: {country}", "isnotempty", ""],
                "AND",
                ["formulatext: {state}", "isnotempty", ""]
            ],
            columns: [
                search.createColumn({
                    name: "statedisplayname",
                    summary: "GROUP",
                    sort: search.Sort.ASC
                }),
               search.createColumn({ // abbreviation
                    name: "state",
                    summary: "GROUP"
                })
            ]
        });
        customerSearchObj.run().each(function (result) {
            var rec = {
                state: result.getValue({name: 'state', summary: 'GROUP'}),
                stateDisplay: result.getValue({name: 'statedisplayname', summary: 'GROUP'})
            };
            records.push(rec);
            return true;
        });
        return records;
    }

Или создать клиента в памяти и затем получить состояния;(Извините, код SS1, взято из SA 63293.)

function getAllStatesForCountry() {
    var customer_record = nlapiCreateRecord('customer', {recordmode: 'dynamic'});
    customer_record.selectLineItem('addressbook', 1);
    var addrSubrecord = customer_record.createCurrentLineItemSubrecord('addressbook', 'addressbookaddress');
    addrSubrecord.setFieldValue('country', 'GB');  
    var stateField = addrSubrecord.getField('dropdownstate'); 
    return stateField.getSelectOptions();
}

А затем переберите результат и добавьте их в поле, используя mySelect.addSelectOption().

...