Javascript初心者です。初めて投稿します。
kViewerにて、数値型カラムを表示した時に、kintoneでは空カラムなのに、kViewerでは0に自動変換されてしまいます。kViewerのサポートデスクに相談したところ、「桁区切りをオフにすれば解消する。桁区切りがオン状態では、この現象になる。本件を改修するつもりだが、実施時期は未定」との回答をいただきました。今回の使い方では、空カラムと0とを区別して表示しており、かつ金額で桁区切りで表示したいと思っています。自力でなんとかできないかと思い、kViewer上のJavascript機能を使って対応するべくいろいろ試しましたが、上手くいきません。
当初は「kintoneで桁区切りをオンにして、kViewer上ではJavascriptで『空カラム→0になった』部分の0を除去する」ことも考えましたが、kViewerのHTMLソース内では、元が空カラム→0と、もともとの0を区別できそうになかったので、止めました。
そこで、「kintoneでは桁区切りをオフにして、kViewer上でJavascriptで桁区切りを付与する」方法で試してみました。kintoneで桁区切りをオフにして、以下のスクリプトを試したところ、桁区切りは実装されましたが、もともと空カラムの部分も0に自動変換されてしまいました。
var allTags = document.getElementsByTagName('*');
for (var i =0;i<allTags.length;i++){
if(allTags[i].className=="kv-index-td kv-index-td-9999999"){
allTags[i].innerHTML=Number(allTags[i].innerHTML).toLocaleString();
}
}
IF条件にて、「カラムが空でない場合」をAND条件で追加すればよいと思いまして、以下の感じで組んでみましたが、「カラムが空でない場合」のAND条件が追加されません。「&& allTags[i] != “”」の部分を「&& allTags[i] != /^\d*$/」にしてみても、やはり0に自動変換されてしまいました。
var allTags = document.getElementsByTagName('*');
for (var i =0;i<allTags.length;i++){
if(allTags[i].className=="kv-index-td kv-index-td-9999999" && allTags[i] != ""){
allTags[i].innerHTML=Number(allTags[i].innerHTML).toLocaleString();
}
}
ぜひともアドバイスをいただけると幸いです。よろしくお願いいたします。