Я пытаюсь создать настраиваемый подсписок с полем подсписка с источником для записи состояний, который управляется в разделе «Настройка»> «Компания»> «Штаты / провинции / страны». Вот пример кода, который я использую, но он не работает.
_sublist.addField({
id: 'custpage_license_state,
type: serverWidgetModule.FieldType.SELECT,
label: 'LICENSE STATE',
source: 'state' //not recognizing record id
});
Я пробовал использовать «состояние», «состояния», «-195», -195 (смог определить, что это внутренний идентификатор для записи состояний в нашем экземпляре «-195»), но ничего не работает.
Есть ли у кого-нибудь идеи, как заставить это работать.
Спасибо.
Запись о штате / провинции не раскрывается. Вам нужно будет добавить параметры в 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()
.