テキスト連結プラグイン
概要
入力した2つのテキストフィールドを連結します。
活用例
2つの入力データからキーフィールドを作成したい場合などに利用できます。
注意事項
- このサイトに掲載しているサンプルプログラムは、参考用としてご提供しています。動作保証はしておりませんので、ご注意ください。
なお、これらのプログラムを使用したことによるトラブルや損害については、責任を負いかねますので、あらかじめご了承ください。
サポート窓口へお問い合わせいただいても、対応はできかねますのでご了承ください。 - JavaScriptプラグインは、プロフェッショナルコースで使用できます。
制限事項
- レコード作成・編集画面のみ動作します。
- 対象フィールドにはテキストタイプのみ選択可能です。
プラグインの機能
-
設定画面
テキストフィールドから、連結したい2つのフィールドと、連結したデータを入力するフィールドを選択します。
また、連結時に使用する連結文字も入力します。
-
プラグイン
顧客コード1と顧客コード2に入力したテキストを連結文字「-」で連結し、顧客NOへ入力します。
顧客コード1もしくは 顧客コード2の値が変わった際に動作します。顧客NOは入力不可の制御をしています。
開発手順
STEP1:設定画面
プラグインを追加したアプリのフィールド一覧を取得し、設定の選択肢として表示します。
フィールド一覧 の取得には、REST API を使用します。
プラグイン設定用にフィールド一覧を取得します。(config.js)
// プラグイン設定情報する (アプリIDの取得用)
const config = atPocket.plugin.app.getConfig();
// フィールド一覧取得API実行する
atPocket.api('apps/'+ config.appId +'/fields', 'GET', {}, function(result) {
// 成功時に実行する処理を記載
// セレクトボックスの選択肢にフィールド一覧をセットします
・・・
}, function(result) {
// エラー時に実行する処理を記載
・・・
});
プラグイン設定表示用のHTMLを記載します。(config.html)
<div class="config_form">
<div class="config_row">
<div class="config_caption">
対象フィールド1
</div>
<div class="config_input">
<select id="target_field1" name="target_field1">
<option value="">(未選択)</option>
</select>
</div>
</div>
・・・
<div class="config_row">
<div class="config_caption">
連結先フィールド
</div>
<div class="config_input">
<select id="concat_field" name="concat_field">
<option value="">(未選択)</option>
</select>
</div>
</div>
</div>
STEP2:プラグイン本体
対象フィールド1と対象フィールド2に入力したテキストを連結文字で連結して、連結先フィールドにセットします。
レコード作成・編集画面表示時に、連結先フィールドを変更不可とします。(plugin.js)
// プラグイン設定画面で設定した値を取得します。
const config = atPocket.plugin.app.getConfig();
// レコード作成画面表示時の処理
atPocket.events.on(['app.record.create.show', 'app.record.edit.show'], function(event) {
// 連結先フィールド変更不可にします
atPocket.app.record.setFieldDisabled(config.concat_field, true);
});
レコード作成・編集画面でフィールド値の変更時、2つのテキストを連結してセットします。(plugin.js)
// レコード作成画面 フィールド値の変更時の処理
atPocket.events.on(['app.record.create.change', 'app.record.edit.change'], function(event) {
// 変更時のレコードデータを取得します
const record = event.record;
// 変更フィールドが対象フィールド1, 対象フィールド2の場合に実行
if (event.changes.name == config.target_field1 || event.changes.name == config.target_field2) {
// テキスト連結処理を記載
・・・
// 値をセット
record[config.concat_field].value = contcatText;
}
// レコードデータを返却
return record;
});
利用しているOSSのライセンス情報
なし