• 検索結果がありません。

業務アプリケーション側で入力抑止をする

ドキュメント内 運用ガイド (ページ 92-95)

第 7 章 JSVRAX の運用

7.4 業務アプリケーション側で入力抑止をする

「7.1 外字の入力表示および内字の字形統一をする」で説明したTextarea HTCを使用してください。

7.4 業務アプリケーション側で入力抑止をする

入力部品を使用せず、アプリケーション独自に値をチェックし、入力抑止をしたい場合に使用できます。

◆要件例

・ 入力抑止はしたいが、運用中の業務アプリの改修やオペレータへの影響を考慮すると、すぐにTextarea HTCやInputValidator HTC を適用するのは困難。

・ Textarea HTCやInputValidator HTCによる入力抑止(入力不可文字の自動補正)は行いたくない。アプリケーションで、値をチェッ

クすることで抑止したい。

・ 文字入力以外のタイミングにおいて、システムで使用できない文字を抑止したい。

◆使用する主な

JSVRAX

の機能

JSVRAX.Utility

◆業務アプリケーションへの組み込み方

1. 文字処理定義を作成する

ここでは、文字処理定義ファイルサンプルの中から、「マイクロソフトのシフトJIS文字セット」に相当するものを使用します。

Unicode_MS932_m_s.js var Unicode_MS932_m_s = [

{init:"0", def:"000000000000000000000000000...}, {init:"3"},

・ ];

2. JSVRAX.Utility.CharBehavior.Parserクラスを使用し、ハンドラ内で文字をチェックする 次のようになります。

<html xmlns:JSVRAX> <!-- 「JSVRAX」というnamespace を宣言 -->

<head>

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<!-- 文字処理定義ファイルをインクルードする -->

<script src="Unicode_MS932_m_s.js"></script>

<!-- JSVRAXの環境設定 Environment HTCをインポートする -->

<?import namespace="JSVRAX" implementation="/JSVRAX/Environment.htc">

<!-- JSVRAXの環境を設定する -->

<JSVRAX:environment />

<script>

// UCS4コード値を文字化する関数 function toCharacter( charCode ) { if( charCode < 0x10000 )

return String.fromCharCode(charCode);

else

return String.fromCharCode(0xd800+(((charCode-0x10000)>>10)&0x3FF)) + String.fromCharCode(0xdc00+(charCode&0x3FF));

}

// 解析ハンドラを定義

function checkHandler( parser, code, charBehav ) { if( charBehav.isInvalid() ) {

// 入力不可文字があった場合、メッセージを表示して終了 alert("「"+toCharacter(code)+"」は使用できません。");

return false;

} }

// 値をチェックする関数 function checkValue() { // 解析する文字列の取り出し

var targetString = document.getElementsByName("ipt")[0].value;

// JSVRAXの文字列解析クラスのインスタンスを生成

var parser = new JSVRAX.Utility.CharBehavior.Parser( targetString, Unicode_MS932_m_s, checkHandler );

// 解析実行 parser.parse();

} </script>

</head>

<body>

<!-- 入力フォーム -->

<form action="" >

<input id="ipt" value="森?外"> <!--「?」はシフトJISで表現できない文字 -->

<!-- ボタンが押されたら、値をチェックする -->

<input type="button" value="check it now!" onclick="checkValue()">

</form>

</body>

</html>

参考

・ 純粋なロジックであり、GUI要素はありません。すでに運用中のシステムに対しても、アプリの改修やオペレータの再教育などの影 響を最小限に抑え、組み込むことができます。

・ ほとんどの場合、文字処理定義のサンプルをそのまま使用することができます。詳しくは「4.5 JSVRAXの文字処理定義のサンプ ル」を参照してください。

・ 使用できる文字を変更したい場合は、文字処理定義をカスタマイズし使用してください。詳しくは、「コマンドリファレンス」の8.10.2 項を参照してください。

ドキュメント内 運用ガイド (ページ 92-95)