Netsuite已保存搜索到Suitelet子列表

时间:2015-11-16 18:45:03

标签: javascript netsuite suitescript

我正在尝试使用我已创建的自定义保存搜索中的数据填充套件中的子列表。我的问题是子列表只填充对应于"类型"的字段中的数据。我正在做的保存搜索。例如,在这种情况下,保存的搜索是"事务"类型搜索。例如,如果我想引用已保存搜索的客户字段,请说"名称"和" Billing Address",此数据不会填充suitelet中的子列表。 “事务”记录本身中引用的所有其他字段都会很好地填充子列表。我只是想知道是否有人遇到过同样的问题,无论如何这里是我试图实现的代码。

 var form,
    sublist;

    //GET
if (request.getMethod() == 'GET')
    {      
        //create form
        form = nlapiCreateForm('Test Custom Suitelet Form', false);

        //create sublist to show results
        sublist = form.addSubList('custpage_sublist_id', 'list', 'Item List');


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

        // run existing saved search
        var searchResults = nlapiSearchRecord('transaction','customsearchID');
        var columns = searchResults[0].getAllColumns();

        // Add the search column names to the sublist field
        for ( var i=0; i< columns.length; i++ )
            {
                sublist.addField(columns[i].getName() ,'text', columns[i].getLabel() ); 
                nlapiLogExecution('DEBUG', 'Column Label',columns[i].getLabel());
            }

        //additional sublist fields
        sublist.addMarkAllButtons();
        sublist.addField('custfield_selected', 'checkbox', 'Selected');

        sublist.setLineItemValues(searchResults)

        response.writePage(form);

    }

1 个答案:

答案 0 :(得分:2)

如果您查看nlobjSublist文档,您会看到sublist.setLineItemValues也可以获取一系列哈希值。工作是什么:

$(".searchable").multiSelect({
    //selectableHeader etc,
    afterSelect: function(value) { selectionChange(value, "select"); },
    afterDeselect: function(value) { selectionChange(value, "deselect"); }
});




function selectionChange(value, operationType) {
    var bookingPrice;
    if(operationType === "deselect") {
        bookingPrice = parseInt(value.BOOKING_PRICE) * -1;
    } else if(operationType === "select") {
        bookingPrice = parseInt(value.BOOKING_PRICE);
    }

    $.ajax({
        type: 'GET',
        url: '/police/get_res_price?price=' + value,
        success: function (data) {
            var initial_price = parseInt($('.give-me-money').val());
            var obj = JSON.parse(data);
            $.each(obj, function (booking_price, value) {
                initial_price += bookingPrice;
            });
            $('.give-me-money').val(initial_price); //set total
        }
    });
    this.qs1.cache();
    this.qs2.cache();
}