他の連携サービスを用いた際に文字化けしてしまいます。
kintoneの入力時点で、環境依存文字を入力出来ないように(または変換)
することは可能でしょうか?
他の連携サービスを用いた際に文字化けしてしまいます。
kintoneの入力時点で、環境依存文字を入力出来ないように(または変換)
することは可能でしょうか?
https://www.drk7.jp/MT/archives/001521.html
上記のように環境依存文字を定義し、置換するスクリプトをかき、
レコード保存時のイベントで置換するなりすればできそうです。
ご回答ありがとうございます。
まだカスタマイズを始めたばかりで
知識薄です。
(function() {
“use strict”;
以下、どの様に書けば反映できますか?
よろしくお願いします。
レコード保存時のイベントはリファレンスに詳細があります
https://developer.cybozu.io/hc/ja/articles/201941984#step2
具体的には下記のような形になります。
|
(function() {
"use strict";
kintone.events.on('app.record.create.submit',function(event) {
var record = event.record;
// ここに環境依存文字を置換するコードを書く
return event;
});
})();
|
| | |
チュートリアルもありますので是非ご参考に!
下記で合っていますでしょうか?
(function() {
“use strict”;
kintone.events.on(‘app.record.create.submit’, function (event) {
var record = event.record;
// 機種依存文字置換関数
function replace_Char(textid){
var text = textid.value;
var ngchr = [
‘①’,‘②’,‘③’,‘④’,‘⑤’,‘⑥’,‘⑦’,‘⑧’,‘⑨’,‘⑩’,‘⑪’,‘⑫’,‘⑬’,‘⑭’,‘⑮’,
‘⑯’,‘⑰’,‘⑱’,‘⑲’,‘⑳’,‘Ⅰ’,‘Ⅱ’,‘Ⅲ’,‘Ⅳ’,‘Ⅴ’,‘Ⅵ’,‘Ⅶ’,‘Ⅷ’,‘Ⅸ’,‘Ⅹ’,
‘㍉’,‘㌔’,‘㌢’,‘㍍’,‘㌘’,‘㌧’,‘㌃’,‘㌶’,‘㍑’,‘㍗’,‘㌍’,‘㌦’,‘㌣’,‘㌫’,‘㍊’,‘㌻’,
‘㎜’,‘㎝’,‘㎞’,‘㎎’,‘㎏’,‘㏄’,‘㎡’,‘㍻’,
‘〝’,‘〟’,‘№’,‘㏍’,‘℡’,‘㊤’,‘㊥’,‘㊦’,‘㊧’,‘㊨’,‘㈱’,‘㈲’,‘㈹’,‘㍾’,‘㍽’,‘㍼’,
];
var trnchr = [
‘(1)’,‘(2)’,‘(3)’,‘(4)’,‘(5)’,‘(6)’,‘(7)’,‘(8)’,‘(9)’,‘(10)’,‘(11)’,‘(12)’,‘(13)’,‘(14)’,‘(15)’,
‘(16)’,‘(17)’,‘(18)’,‘(19)’,‘(20)’,‘I’,‘II’,‘III’,‘IV’,‘V’,‘VI’,‘VII’,‘VIII’,‘IX’,‘X’,
‘ミリ’,‘キロ’,‘センチ’,‘メートル’,‘グラム’,‘トン’,‘アール’,‘ヘクタール’,‘リットル’,‘ワット’,‘カロリー’,‘ドル’,‘セント’,‘パーセント’,‘ミリバール’,‘ページ’,
‘mm’,‘cm’,‘km’,‘mg’,‘kg’,‘cc’,‘平方メートル’,‘平成’,
‘「’,‘」’,‘No.’,‘K.K.’,‘TEL’,‘(上)’,‘(中)’,‘(下)’,‘(左)’,‘(右)’,‘(株)’,‘(有)’,‘(代)’,‘明治’,‘大正’,‘昭和’,
];
for(var i=0; i<=ngchr.length;i++){
text = text.replace( ngchr[i], trnchr[i], ‘mg’ );
}
textid.value = text;
}
// 機種依存文字チェック関数
return event;
});
})();
replace_Char関数ですが使い勝手のために多少書き直しました。
また、どのフィールドコードを置換したいかはなかったので、ここではtextフィールドtext2フィールドを書き換えるコードを示します。
(function() {
"use strict";
function replace_Char(text){
var ngchr = [
'①','②','③','④','⑤','⑥','⑦','⑧','⑨','⑩','⑪','⑫','⑬','⑭','⑮',
'⑯','⑰','⑱','⑲','⑳','Ⅰ','Ⅱ','Ⅲ','Ⅳ','Ⅴ','Ⅵ','Ⅶ','Ⅷ','Ⅸ','Ⅹ',
'㍉','㌔','㌢','㍍','㌘','㌧','㌃','㌶','㍑','㍗','㌍','㌦','㌣','㌫','㍊','㌻',
'㎜','㎝','㎞','㎎','㎏','㏄','㎡','㍻',
'〝','〟','№','㏍','℡','㊤','㊥','㊦','㊧','㊨','㈱','㈲','㈹','㍾','㍽','㍼',
];
var trnchr = [
'(1)','(2)','(3)','(4)','(5)','(6)','(7)','(8)','(9)','(10)','(11)','(12)','(13)','(14)','(15)',
'(16)','(17)','(18)','(19)','(20)','I','II','III','IV','V','VI','VII','VIII','IX','X',
'ミリ','キロ','センチ','メートル','グラム','トン','アール','ヘクタール','リットル','ワット','カロリー','ドル','セント','パーセント','ミリバール','ページ',
'mm','cm','km','mg','kg','cc','平方メートル','平成',
'「','」','No.','K.K.','TEL','(上)','(中)','(下)','(左)','(右)','(株)','(有)','(代)','明治','大正','昭和',
];
for(var i=0; i<=ngchr.length;i++){
text = text.replace( ngchr[i], trnchr[i], 'mg' );
}
return text;
}
kintone.events.on('app.record.create.submit',function (event) {
varrecord = event.record;
// 置換したいテキストフィールドは textとtext2 とする
// replace_Charに任意の文字列を渡すことで、機種依存文字が変換されて返ってくる
record.text = replace_Char(record.text);
record.text2 = replace_Char(record.text2); // 対象のフィールドにそれぞれreplace_Charする
returnevent;
});
})();
ありがとうございます。
何度も質問で申し訳ありませんが、教えてください。
「番地」「支店名」フィールドに環境依存文字が入力された際に
変換をさせたいです。下記で合っていますか?
実装してみましたが、変換されない状態です。
// 置換したいテキストフィールドは textとtext2 とする // replace_Charに任意の文字列を渡すことで、機種依存文字が変換されて返ってくる record.番地 = replace_Char(record.番地); record.支店名 = replace_Char(record.支店名); // 対象のフィールドにそれぞれreplace_Charする
すいません、提示したコードがちょっと間違ってますね
record.フィールドコード.value
という風にするのが正しいので
record.番地.value = replace_Char(record.番地.value);
という感じでためしてみてください〜
ありがとうございます。
変更してみました。下記で合っていますか? 変換は出来ない状態です。
(function() {
“use strict”;
function replace_Char(text){
var ngchr = [
‘①’,‘②’,‘③’,‘④’,‘⑤’,‘⑥’,‘⑦’,‘⑧’,‘⑨’,‘⑩’,‘⑪’,‘⑫’,‘⑬’,‘⑭’,‘⑮’,
‘⑯’,‘⑰’,‘⑱’,‘⑲’,‘⑳’,‘Ⅰ’,‘Ⅱ’,‘Ⅲ’,‘Ⅳ’,‘Ⅴ’,‘Ⅵ’,‘Ⅶ’,‘Ⅷ’,‘Ⅸ’,‘Ⅹ’,
‘㍉’,‘㌔’,‘㌢’,‘㍍’,‘㌘’,‘㌧’,‘㌃’,‘㌶’,‘㍑’,‘㍗’,‘㌍’,‘㌦’,‘㌣’,‘㌫’,‘㍊’,‘㌻’,
‘㎜’,‘㎝’,‘㎞’,‘㎎’,‘㎏’,‘㏄’,‘㎡’,‘㍻’,
‘〝’,‘〟’,‘№’,‘㏍’,‘℡’,‘㊤’,‘㊥’,‘㊦’,‘㊧’,‘㊨’,‘㈱’,‘㈲’,‘㈹’,‘㍾’,‘㍽’,‘㍼’,
];
var trnchr = [
‘(1)’,‘(2)’,‘(3)’,‘(4)’,‘(5)’,‘(6)’,‘(7)’,‘(8)’,‘(9)’,‘(10)’,‘(11)’,‘(12)’,‘(13)’,‘(14)’,‘(15)’,
‘(16)’,‘(17)’,‘(18)’,‘(19)’,‘(20)’,‘I’,‘II’,‘III’,‘IV’,‘V’,‘VI’,‘VII’,‘VIII’,‘IX’,‘X’,
‘ミリ’,‘キロ’,‘センチ’,‘メートル’,‘グラム’,‘トン’,‘アール’,‘ヘクタール’,‘リットル’,‘ワット’,‘カロリー’,‘ドル’,‘セント’,‘パーセント’,‘ミリバール’,‘ページ’,
‘mm’,‘cm’,‘km’,‘mg’,‘kg’,‘cc’,‘平方メートル’,‘平成’,
‘「’,‘」’,‘No.’,‘K.K.’,‘TEL’,‘(上)’,‘(中)’,‘(下)’,‘(左)’,‘(右)’,‘(株)’,‘(有)’,‘(代)’,‘明治’,‘大正’,‘昭和’,
];
for(var i=0; i<=ngchr.length;i++){
text = text.replace( ngchr[i], trnchr[i], ‘mg’ );
}
return text;
}
kintone.events.on(‘app.record.create.submit’, function (event) {
var record = event.record;
// 置換したいテキストフィールドは textとtext2 とする
// replace_Charに任意の文字列を渡すことで、機種依存文字が変換されて返ってくる
record.番地.value = replace_Char(record.番地.value);
record.支店名.value = replace_Char(record.支店名.value); // 対象のフィールドにそれぞれreplace_Charする
return event;
});
})();
あれから、試行錯誤の後 正常に動作しました。
ありがとうございました!
なかなか返信できずすいません。正常に動作できたならよかったです!!
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。