2016-12-07 12 views
0

私はSharePointリストに通貨フィールドタイプのフィールドを持っています。リスト内のすべてのアイテムをテーブルとして表示する必要があります。しかし、通貨分野では、数字だけが表示されます。 SPリストに表示されている値を表示する必要があります。 $ 432,98.00のように。私のコードは以下の通りですJavascriptを使用してSP通貨フィールドタイプの値を取得する方法

var list = web.get_lists().getByTitle(listName); 
    var caml = new SP.CamlQuery(); 
    caml.set_viewXml("<View><Query><OrderBy><FieldRef Name='" + columnName + "' Ascending='False'/></OrderBy></Query></View>"); 
    var ascItems = list.getItems(caml); 
    context.load(ascItems); 

//to get the value of each item based on field 
var fieldType = fieldNames[i].get_fieldTypeKind(); 
if (fieldType === SP.FieldType.currency) { 
       item = listItem.get_item(fieldNames[i].get_internalName()); 
      } 

ここで、fieldNamesはすべての列名を持つ配列です。 アイテムは43298のような数値として値を返します。助けてください

+1

私は正規表現 –

+0

を使用しますが、JSlinkではフィールド値をそのままリストに返すget_item()関数を使用できます。だから、正規表現を使わずにjsomで同様の方法を期待している。 –

+0

ありがとう@FlashThunder。最後に、私は私の問題を解決するために正規表現を使用しました。 if(fieldType === SP.FieldType.currency){ var currency = listItem.get_item(fieldNames [i] .get_internalName()); if(currency!= null) { item = '$' + currency.toFixed(2).replace(/(\ d)(?=(\ d \ d \ d)+(?!\ d))/g、 "$ 1"); } } –

答えて

0

正しい通貨フォーマットを取得するには、FieldValuesAsTextをインクルードして使用します。

<script> 
ExecuteOrDelayUntilScriptLoaded(retrieveListItems, "sp.js"); 
function retrieveListItems() { 
    var context = SP.ClientContext.get_current(); 
    var list = context.get_web().get_lists().getByTitle("YourListName"); 
    var items = list.getItems(new SP.CamlQuery()); 

    context.load(items, 'Include(FieldValuesAsText)'); 
    context.executeQueryAsync(function (sender, args) { 
     var enumerator = items.getEnumerator(); 

     while (enumerator.moveNext()) { 
      var item = enumerator.get_current(); 
      var fieldValuesAsText = item.get_fieldValuesAsText(); 
      var fieldValues = fieldValuesAsText.get_fieldValues(); 
      console.log(fieldValues.YourCurrencyFieldName); 
     } 
    }, function (sender, args) { 
     alert(args.get_message()); 
    }); 
} 
</script> 

・ホープ、このヘルプ:

はこのような何かを試してみてください!

+0

FieldValuesAsTextを使用すると、値だけが返されます。しかし、getfields()関数が返すようなフィールドプロパティが必要です。私はそれがリストに表示されているように各フィールドを表示し、各フィールドのフィールドのタイプに基づいてそれをやりたい。 var fieldType = fieldNames [i] .get_fieldTypeKind(); –

関連する問題