このCookBookでは、スプレッドシートでForma入力チェックユーザプログラムを利用して入力チェックを実行する方法について紹介しています。
Formaの入力チェックプログラムでは以下の2つのチェックを実行することが可能です。
【1】 入力チェックの内容をアプリケーション固有のルールに基づいて動的に変更する。
【2】 アプリケーション固有の入力チェックをする。
ただし、スプレッドシートアイテムにはアイテム自体に入力チェックプロパティが存在しないため、【2】ですべてのチェックを実装します。
また、エラーメッセージ表示順の制御についても他アイテム同様に動作するため、そのサンプルも掲載します。
入力チェックプログラムの詳細は以下のドキュメントを参照してください。
IM-FormaDesigner for Accel Platform プログラミングガイド - 入力チェックプログラム
完成イメージ
・ スプレッドシート内の単項目・明細テーブルに対して入力チェックを実装します。
完成サンプル
以下の完成サンプルをダウンロードしてご活用ください。
- Forma定義 : im_cookbook_153540_forma
- Formaアプリケーション情報インポート機能からインポートしてください。
- 手順の詳細は以下のドキュメントを参照してください。
- サンプルに含まれる定義情報は以下の表の通りです。
種類 定義名 補足説明 Formaアプリケーション情報 ユーザプログラムを利用してスプレッドシートに対して入力チェックする 通勤交通費申請を行うアプリケーションです。 - 入力チェックプログラム : im_cookbook_153540_js
- ダウンロードしたファイルを展開し、アプリケーションサーバの以下のディレクトリに配置してください。
WEB-INF/jssp/src/im_cookbook_153540
- ダウンロードしたファイルを展開し、アプリケーションサーバの以下のディレクトリに配置してください。
レシピ
- Formaアプリケーションを作成し、通勤交通費申請書を表現したフォームにスプレッドシートアイテムを配置します。
- 入力チェックプログラムを作成します。
完成サンプルを見ながら以下の解説を確認してください。
1. Formaアプリケーションを作成し、通勤交通費申請書を表現したフォームにスプレッドシートアイテムを配置します。
以下の項目をシート上のフィールドとして定義してください。
- Applicant
- Affiliation department
- Applicant's address
- Closest station
以下の項目をシート上のテーブルとして定義してください。
- Public transport fare
以下の項目をテーブルに表示する列として設定してください。
- Transportation to use
- Boarding section (From)
- Boarding section (To)
- 3 months (commuter pass)
- 1 month (commuter pass)
- one day (round trip)
2. 入力チェックプログラムを作成します。
- getCustomProperties
- 冒頭で説明したとおり、スプレッドシートアイテムにはアイテム自体に入力チェックプロパティが存在しないため、このメソッドで行うことはありません。
- validate
- 単項目は既存のアイテム同様、
sendParam.%フィールド識別ID%
に存在します。 - テーブル定義は明細テーブルやグリッドテーブルのように
sendParam.%テーブル識別ID%
にオブジェクトの配列として存在します。 - 入力チェックエラーと判定した場合は
ImFormaUtil.addValidationError
を使用してエラー情報を登録してください。
- 単項目は既存のアイテム同様、
- getErrorDisplayOrder
validate
メソッドで使用した入力チェックIDを配列として返却することで、エラー表示順序を制御することができます。