2017-04-18 3 views
0

アイブ氏のSuiteScript 1.0のSuiteScriptページネーション

ページネーションが他のどこでも非常に簡単ですが、私は周りに私の頭を取得カントを使用してネットスイートでアイテムレコードのコレクションで実行する保存した検索が可能になりますsuiteletを作成しようとしてどのようにNetSuiteでそれを行う。

たとえば、3,000個のアイテムがあり、結果をページあたり100個に制限しようとしています。私は、スクリプトをたくさん見てきました

私の検索からのレコードの数を返すために、私は、検索を実行することができ、開始行とフィルタとして最大行パラメータを適用する方法を理解するのに苦労してい

1,000レコードの上限を超えることができますが、画面に表示されている量を抑えようとしています。しかし、これを行う方法を理解するために失われています。

任意のヒントを大幅にあなたがこのカップルの異なる方法で近づくことができる

function searchItems(request,response) 
{ 
    var start = request.getParameter('start'); 
    var max = request.getParameter('max'); 

    if(!start) 
    { 
     start = 1; 
    } 
    if(!max) 
    { 
     max = 100; 
    } 

    var filters = []; 
    filters.push(new nlobjSearchFilter('category',null,'is',currentDeptID)); 
    var productList = nlapiSearchRecord('item','customsearch_product_search',filters); 
    if(productList) 
    { 
     response.write('stuff here for the items'); 
    } 
} 
+0

どのNetSuiteのバージョンを使用していますか? SuiteScript 2.0を使用していない理由はありますか?彼らは、 'N/search'モジュールに組み込まれたページ付けされたクエリをサポートしています。 –

答えて

1

を高く評価しました。いずれにしても、内部IDなど、意味のある一貫性のある検索結果を並べ替える必要があります。保存された検索定義に結果を並べ替えているか、スクリプトに検索列を追加して検索結果を確認してください。

あなたはまったく同じように検索を構築し、次にproductListアレイのネイティブslice methodを使用することができます。 startendパラメータを使用して、引数としてsliceに適切に渡します。

もう1つの方法は、検索にasync APIを使用することです。それは次のようになります。このアプローチの詳細については言及

var search = nlapiLoadSearch("item", "customsearch_product_search"); 
search.addFilter(new nlobjSearchFilter('category',null,'is',currentDeptID)); 
var productList = search.runSearch().getResults(start, end); 

を、nlobjSearchための「検索のAPI」というタイトルのNetSuiteヘルプページとリファレンスページをチェックしてください。

関連する問題