2016-03-29 93 views
0

如何在現金銷售自定義字段中自動填充項目金額。在自定義字段中自動填充項目金額

我是新來的客戶端腳本,這裏是我試過的代碼片段,但它沒有像預期的那樣工作。請建議。

function custItemAmount(type) 
{ 
    if(type == 'edit') 
    { 
     var record = nlapiLoadRecord(nlapiGetRecordType(), nlapiGetRecordId()); 
     var itemCount = record.getLineItemCount('item'); 

     for(i=1; i<=itemCount; i++) 
     { 
      //fetch amount of each item 
      var item_amount=record.getLineItemValue('item', 'amount', i); 
      if (item_amount != null && item_amount != '') { 
       record.setLineItemValue('item', 'custbody_itemamount', i, item_amount); 
       //set total amount to custom item amount field 
      } 
     } 
     var id = nlapiSubmitRecord(record, true); 
    } 
} 
+0

看起來您正嘗試爲訂單項設置錯誤的字段。 'custbody_itemamount'真的是你想要的領域嗎?對我來說看起來像一個身體領域,而不是行項目字段。我希望它被稱爲'custcol_lineitemamount' – TonyH

+0

錯字..這是正確的。這是custcol_lineitemamount。你看到腳本有問題嗎? – user63827

+0

您想要填充的字段是正文字段還是訂單項字段? – Rockstar

回答

0

看起來您嘗試爲訂單項設置了錯誤的字段。 custbody_itemamount真的是你想要的領域嗎?對我來說看起來像一個身體領域,而不是行項目字段。我期望它被稱爲custcol_lineitemamount

嘗試以下代替,雖然檢查,以確保字段名稱是正確的,因爲我做了一些假設。

{ 
    if(type == 'edit') 
    { 
    var record = nlapiLoadRecord(nlapiGetRecordType(), nlapiGetRecordId()); 
    var itemCount = record.getLineItemCount('item'); 

     for(i=1;i<=itemCount;i++) 
     { 
      //fetch amount of each item 
      var item_amount=record.getLineItemValue('item', 'amount', i); 
       if (item_amount != null && item_amount != '') { 
       record.setLineItemValue('item', 'custcol_itemamount', i, item_amount); 
     //set total amount to custom item amount field 
       } 
    } 
var id = nlapiSubmitRecord(record, true); 
} 
+0

測試過了,但沒有看到正在填充的值。我在這裏錯過了什麼嗎?該腳本是否在VALIDATE LINE FUNCTION上運行?你可以測試並讓我知道它是否有效? – user63827

+0

需要了解更多的上下文。您希望何時自動填充該值。例如,如果這是一個客戶端腳本,那麼爲什麼您要加載記錄來讀取一個項目字段,何時它已經在表單上可用? – TonyH

+0

在客戶端腳本下面進行測試,但在自定義字段中沒有更改。 \t功能custItemAmount(類型) \t { \t \t如果(類型== '編輯') \t \t \t { \t \t \t //迭代項 \t \t \t \t爲(I = 1; I < = nlapiGetLineItemCount( '項目');我++) \t \t \t \t { \t \t \t //每個項目的提取金額 \t \t \t \t \t var item_amount = parseFloat('item','amount',i)); \t \t \t \t \t \t} \t \t \t} \t \t nlapiSetFieldValue( 'custcol_item_amount',nlapiFormatCurrency(item_amount)); \t \t \t} – user63827

0

什麼時候你想看到填充的自定義列?用戶是否添加了該行後?如果是,那麼你的腳本是不正確的。您共享的腳本看起來是一個用戶事件腳本。這些類型的腳本只有在您加載或保存記錄時纔會執行。

0

解決了下面的簡單腳本..感謝您的幫助。

== 功能custItemAmount(類型)

{ 
     if(type == 'item'){ 

    var item_amount=parseFloat(nlapiGetLineItemValue('item','amount')); 
    //nlapiSetFieldValue('custcol_item_amount',item_amount); 

nlapiSetCurrentLineItemValue( '項目', 'custcol_item_amount',nlapiFormatCurrency(item_amount));

}

return true; }

相關問題