目次 > 第3章 サンプルアプリケーション構築 > 3.5 入力値検証
3.5 入力値検証
概要
本節ではClient Frameworkが提供する入力値検証機能を用いて、画面データセットに対して入力値検証を行う方法を説明する。
入力値検証はイベント処理機能が提供するEventController経由で実行する。入力値検証エラーが発生した場合、イベント処理機能はビジネスロジックの実行を行わずにイベント処理を終了する。詳細は、機能説明書『CM-02 入力値検証機能』、『FB-01 イベント処理機能』を参照のこと。
動作イメージ

図3.5-1 動作イメージ

図3.5-2 動作イメージ
- 対象画面
- 計算画面
- 処理概要
- 入力値検証成功の場合
- (クライアント)計算ボタンを押下する。
- (クライアント)数値に対して、入力値検証を行う。
- (クライアント)数値をサーバへ送信し、計算結果をサーバから受信する。
- (クライアント)計算結果がテキストボックスに表示される。
- 入力値検証失敗の場合
- (クライアント)計算ボタンを押下する。
- (クライアント)数値に対して、入力値検証を行う。
- (クライアント)エラーアイコンが計算画面に表示される。
- 入力値検証成功の場合
作業手順
- 作成イメージ

図3.5-3 作業イメージ
1 入力値検証設定ファイルの確認
入力値検証設定ファイル(Validation/ValidationConfiguration.config)の設定を確認する。 本チュートリアルでは、クライアントで何も入力しない場合、入力値検証エラーとする。TERASOLUNAが提供する入力値検証クラスの中の必須入力チェッククラス(RequiredValidator)を利用する。入力値検証クラスの詳細な設定方法については、『CM-02 入力値検証機能』を参照すること。
表3.5-1 入力値検証内容
| テーブル名 | カラム名 | 利用する入力値検証クラス | 検証内容 |
| CalcTable | NumberA | RequiredValidator | 未入力の場合、入力値検証エラーとする。 |
| CalcTable | NumberB | RequiredValidator | 未入力の場合、入力値検証エラーとする。 |
ValidationConfiguration.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="validation" type="Microsoft.Practices.EnterpriseLibrary.Validation.Configuration.ValidationSettings, Microsoft.Practices.EnterpriseLibrary.Validation, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</configSections>
<validation>
<!-- ① データテーブル名 -->
<type assemblyName="TutorialClient"
name="TutorialClient.ViewData.CalcFormDs+CalcTableRow">
<!-- ② ルールセット名 -->
<ruleset name="Default">
<properties>
<!-- ③ データセットのカラム名 -->
<property name="NumberA">
<!-- ④ 必須入力チェック -->
<validator negated="false"
messageTemplate="" messageTemplateResourceName="" messageTemplateResourceType=""
tag="数値A" type="TERASOLUNA.Fw.Common.Validation.Validators.RequiredValidator, TERASOLUNA.Fw.Common"
name="RequiredValidator" />
</property>
<property name="NumberB">
<validator negated="false"
messageTemplate="" messageTemplateResourceName="" messageTemplateResourceType=""
tag="数値B" type="TERASOLUNA.Fw.Common.Validation.Validators.RequiredValidator, TERASOLUNA.Fw.Common"
name="RequiredValidator" />
</property>
</properties>
</ruleset>
</type>
</validation>
</configuration>
表3.5-2 入力値検証設定ファイルの設定項目
| 項番 | 内容 |
| ① | 入力チェックを行うデータテーブルのアセンブリ名及び完全修飾名を設定する。 |
| ② | 入力チェックを行うルールセット名を設定する。 |
| ③ | ①で定義したテーブルに存在するカラム名を設定する。 |
| ④ | 必須入力チェックなどの入力値検証情報を設定する。複数設定可能。 |
備考
実際に入力値検証設定ファイルを編集する際に入力ミスが発生する可能性が高いため、TERASOLUNAが提供する項目テンプレートのValidationConfiguration.config、またはEnterprise Library Configuration Editorを利用して編集することをお勧めする。
2 EventControllerコンポーネントの設定
入力値検証機能を実行するためには、計算画面に追加されているEventControllerコンポーネント(calcEventインスタンス)に入力値検証設定ファイルパスおよびルールセットを設定しなければならない。以下に設定する項目を示す。
表3.5-3 入力値検証に必要なEventControllerのプロパティ一覧
| プロパティ | 設定値 | 説明 |
| ValidationFilePath | Validation/ValidationConfiguration.config | 入力値検証設定ファイルのパス。 |
| RuleSet | Default | ルールセット名。省略すると、"Default"になる。 |

図3.5-4 EventController(calcEvent)のプロパティ
3 ErrorProviderコンポーネントの追加と設定
計算画面にエラーアイコンを表示させるためのErrorProviderコンポーネント(errorProvider)を計算画面に追加する。

図3.5-5 エラープロバイダの追加
ErrorProviderコンポーネントと画面データセットのテーブルを対応づけるためにプロパティを変更する。対応づけることで入力値検証エラーが発生した場合、エラーアイコンを画面に表示することができる。
表3.5-4 ErrorProviderコンポーネントのプロパティ
| プロパティ名 | 設定値 | 内容 |
| Name | errorProvider | ErrorProviderコンポーネントの名前。 |
| DataSource | calcFormDs | ErrorProviderコンポーネントと対応づけるデータセットのインスタンス。 |
| DataMember | CalcTable | ErrorProviderコンポーネントと対応付けたデータセットのテーブル名。 |

図3.5-6 ErrorProviderコンポーネントのプロパティ
動作確認
- サーバアプリケーションを起動する(TutorialServerRichプロジェクトの発行)。
- クライアントアプリケーションを起動する(TutorialClient.exeの押下)。
- ユーザID"tera"、パスワード"soluna"と入力し、ログオンボタンを押下する。

図3.5-7 ログオン画面⇒メニュー画面
- 計算画面ボタンを押下する。

図3.5-8 メニュー画面⇒計算画面
- 数値A、数値Bは未入力の状態で、計算ボタンを押下し、エラーアイコンが表示されることを確認する。

図3.5-9 計算画面⇒計算画面
- 数値Aに"12"、数値Bに"2"を入力後、計算ボタンを押下し、解に掛け算結果"24"が表示されることを確認する。

図3.5-10 計算画面(計算前)⇒計算画面(計算後)
