数値で通貨を指定した場合に便利なスクリプト
今回、記録テーブルに金額(数値A)を設定し、上記で要望のあった対応をします。
プリザンターでは、数値についての初期値が必ず「0」として入ってしまうため、新規作成では初期値を空にするように設定します。
- 対象のテーブルを開きます。
- メニューから、「管理」→「テーブルの管理」を開きます。
- 「スクリプト」タブを開きます。
- 「新規作成」をクリックし、[タイトル]に「金額カスタマイズ」と入力し、以下のスクリプトを記載します。
- 「出力先」は、「全て」のチェックを外し、「新規作成」と「編集」にチェックをして、「追加」をクリックします。
- さらに「新規作成」をクリックし、[タイトル]に「金額初期化」と入力し、以下のスクリプトを記載します。
- 「更新」をクリック後に、新規作成をクリックして動きを確認します。
<金額カスタマイズスクリプト>
$(function() {
$('#Results_NumA').change(function(){
let text = $('#Results_NumA').val();
let hen = text.replace(/[A-Za-z0-9]/g,function(s){
return String.fromCharCode(s.charCodeAt(0)-0xFEE0);
});
let result = comma(hen);
$('#Results_NumA').val(result);
});
});
function comma(num) {
let s = String(num).split('.');
let ret = String(s[0]).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,');
if (s.length > 1) {
ret += '.' + s[1];
}
return ret;
}
<金額初期化スクリプト>
$p.events.on_editor_load = function(){
// 金額部分の\0を削除
$p.set($('#Results_NumA'),'');
}
数値(通貨)を使用したときの難点
こんにちは、CCS田中です。
社内で営業の方に使ってもらおうと、いくつか管理台帳を作成していたところ、金額欄で以下のようないくつか要望がでてきました。
・全角で入力するとエラーが出るので、全角で入力されてもエラーにならずに半角に自動変換してほしい。
・金額を入れたときに、自動的に桁区切り(カンマ)を入れてほしい。
・初期値に「\0」と表示されているが、何も表示しないでほしい。(数値だけ入力するときに修正が面倒)
これらと同様のことを思われた方もいるかもしれません。
これらはスクリプトで解消できるため、そのスクリプトを紹介したいと思います。
ちなみに、桁区切りは「通貨」を指定しておくと保存や更新時に自動では付くのですが、該当の場所からフォーカスが移動したときに桁区切りが付くようなスクリプトを紹介しています。