2016-12-01 47 views
0

我試圖創建一個Suitelet來顯示多組數據。我將有2個保存的搜索,我想只顯示一個頁面上的2個獨立窗口的結果。具有多個列表的Suitelet

我知道你可以通過使用response.writePage(list)來顯示結果,其中list是一個nlobjList。我知道nlobjList可以通過將它傳遞給list.addRows(searchResults)來顯示nlobjSearchResults的結果。

我試圖用2個不同的列表做2個writePage調用,但正如我預料的那樣,它只顯示了2個調用中的第二個。

有沒有人這樣做?這如何實現?

回答

2

只需處理每個子列表,就好像它是唯一的一個,NetSuite會將它們放在單獨的選項卡上供您使用。

function suitelet(request, response) { 
    var form = nlapiCreateForm('Test Page'); 
    var sublist1 = form.addSubList('list1', 'list', 'List 1'); 
    var sublist2 = form.addSubList('list2', 'list', 'List 2'); 

    sublist1.addField('custpage_field1', 'text', 'Field1'); 
    sublist1.addField('custpage_field2', 'text', 'Field2'); 

    sublist2.addField('custpage_field3', 'text', 'Field3'); 
    sublist2.addField('custpage_field4', 'text', 'Field4'); 

    response.writePage(form); 
} 

結果: enter image description here

+0

這讓我的存在方式的一部分。我現在遇到的問題是如何顯示我的搜索結果。我看到我可以使用sublist.setLineItemValues()並將它傳遞給nlobjSearchResult數組。我試過了,但沒有奏效。我試圖確保首先設置字段 - 我做了3次sublist.addField()調用,並確保我的數據類型與我的結果中的3列匹配。它現在顯示4行(正確的我的結果),但它不顯示這些行中的實際結果。有任何想法嗎? – TMann

+0

如果您要將搜索結果傳遞給.setLineItemValues(),則您的子列表的字段名稱必須與搜索結果中列的內部ID匹配。我知道幫助文檔說你的列名必須以'custpage'開頭,但情況並非總是如此。如果您在搜索中返回「trandate」,則會有一個名爲「trandate」的子列表字段,這些值將排隊。 –

+0

我試過你說的。我意識到我遺漏了一個細節 - 我需要將這些字段分組。在我保存的搜索中,我將它們分組在那裏。當我取消組合時,它工作正常。我怎樣才能顯示分組結果? - – TMann