2017-02-06 13 views
-1

Итак, я пытаюсь создать пользовательскую страницу перераспределения позиций, основное отличие - данные в ожидаемой дате отправки. Я хочу сделать, чтобы заполнить под-список на основе того, что находится в Item ID и Location. Точно так же, как работают стандартные элементы перераспределения.Netsuite - Как заполнить подсписку на основе поиска предметов и местоположения

До сих пор я создал ff js как Костюм для страницы.

var form = nlapiCreateForm('Reallocate Items'); 
    nlapiLogExecution('DEBUG', 'DEBUG', form); 

    form.setScript('customscriptcust_reallocate_field_change'); 
    var item = form.addField('item','select', 'Item','item'); 
    var location = form.addField('location','select', 'Location','location'); 
    var qtyonhand = form.addField('qtyonhand','float', 'Quantity On Hand'); 
    qtyonhand.setDisplayType('disabled'); 
    var qtycommitted = form.addField('qtycommitted','text', 'Quantity Committed'); 
    qtycommitted.setDisplayType('disabled'); 
    var qtyrequired = form.addField('qtyrequired','text', 'Quantity Required'); 
    qtyrequired.setDisplayType('disabled'); 
    var qtypicked = form.addField('qtypicked','currency', 'Quantity Picked'); 
    qtypicked.setDisplayType('disabled'); 
    var units = form.addField('unitofmeasure','select', 'Units','unitstype'); 
    units.setDisplayType('disabled'); 

    var sublist = form.addSubList('sublist','list', '') 
    var checkbox = sublist.addField('checkbox', 'checkbox', 'Allocate'); 
    var orddate = sublist.addField('orderdate', 'date', 'Order Date'); 
    orddate.setDisplayType('disabled'); 
    var expshipdate = sublist.addField('cust_tl_expectedshipdate', 'date', 'Custom Expected Ship Date'); 
    expshipdate.setDisplayType('disabled'); 
    var custreqdate = sublist.addField('custreqdate', 'date', 'Customer Request Date'); 
    custreqdate.setDisplayType('disabled'); 
    var ordernumber = sublist.addField('ordernumber', 'text', 'Order No.'); 
    ordernumber.setDisplayType('disabled'); 
    var specialorder = sublist.addField('specialorder', 'text', 'Special Order'); 
    specialorder.setDisplayType('disabled'); 
    var customer = sublist.addField('customer', 'select', 'Customer','customer'); 
    customer.setDisplayType('disabled'); 
    var qtyord = sublist.addField('qtyord', 'float', 'Quantity Ordered'); 
    qtyord.setDisplayType('disabled'); 
    var qtyremaining = sublist.addField('qtyremaining', 'float', 'Quantity Remaining'); 
    qtyremaining.setDisplayType('disabled'); 
    var commit = sublist.addField('commit', 'text', 'Commit'); 
    commit.setDisplayType('disabled'); 
    var qrtcommitted = sublist.addField('qtycommitted', 'float', 'Quantity Committed'); 

    form.addSubmitButton('Submit'); 
    form.addResetButton('Reset'); 


    response.writePage(form); 

И вот мой скрипт клиента.

if ((name === 'item' || name === 'location') && !isEmpty(nlapiGetFieldValue("item")) && !isEmpty(nlapiGetFieldValue("location"))){ 

    var item = nlapiGetFieldValue('item'); 
    var unitstype = nlapiLookupField('item',item,'unitstype'); 
    nlapiSetFieldValue('unitofmeasure',unitstype); 
    var location = nlapiGetFieldValue('location'); 

    var filters = new Array(); 
    filters[0] = new nlobjSearchFilter('inventorylocation', null, 'anyof', location); 
    filters[1] = new nlobjSearchFilter('internalid', null, 'anyof', item); 
    var columns = new Array(); 
    columns[0] = new nlobjSearchColumn('locationquantitycommitted'); 
    columns[1] = new nlobjSearchColumn('locationquantityonhand'); 
    var search = nlapiSearchRecord('item', null, filters, columns); 

    if (search){ 
    var searchrow = search[0]; 
    var quantitycommitted = searchrow.getValue('locationquantitycommitted'); 
    var quantityonhand = searchrow.getValue('locationquantityonhand'); 
    //var quantitypicked = searchrow.getValue('quantitypicked'); 
    nlapiSetFieldValue('qtycommitted',quantitycommitted); 
    nlapiSetFieldValue('qtyonhand',quantityonhand); 
    nlapiSetFieldValue('qtypicked', '100'); 
    } 
    } 
} 

Мой вопрос в том, как заполнить под-список так же, как он работает в разделе Перераспределения? Спасибо!

+0

Что вы хотите сказать? – Sabuncu

+0

Как заполнить подсписку при выборе значения из идентификатора и местоположения, как на странице «Стандартные страницы перераспределения»? – shutdowndev

ответ

0

Используйте методы setLineItemValues и setLineItemValue на вашем nlobjSublist ссылку.

Если ваши идентификаторы столбцов подписи совпадают точно с идентификаторами столбцов в результатах поиска, вы можете просто передать массив результатов поиска nlobjSublist.setLineItemValues, чтобы заполнить весь список результатами поиска. Будут заполнены только столбцы подписок, которые соответствуют столбцам поиска.

В противном случае вы можете перебирать результаты поиска и использовать nlobjSublist.setLineItemValue для заполнения каждой строки вручную, используя каждый результат поиска.

+0

что должно быть внутри nlobgSearchColumn(),? каждое поле в подсписке? Если да, где я могу найти внутренние идентификаторы? – shutdowndev

+0

Ваши столбцы поиска выглядят отлично; это просто идентификатор поля, которое вы хотите получить от результата поиска. – erictgrubaugh