フレームワークのインポート

<< Click to Display Table of Contents >>

トレーニング(PA-Panel) > エンジニアリングガイド > DCSサンプル解説 > フレームワークの仕組み >

フレームワークのインポート

フレームワークのインポートについて

PA-Clientは、Panel Serverへのログイン時に発生するrootのOnLoginイベント内でフレームワークをインポートします(初回時のみ)。

 

具体的には以下のようなコードにより外部設定ファイルの取り込みを行っています。

 

■フレームワークのインポート

event OnLogin(login,level)
{
	if(::gvIsLoad == F){
		var vImport = ::CStrToArray(root._ImportModules, "/", T);
		var vCnt = ::GetValueTotalElement(vImport);
		if(vCnt == 1) {
			::AddResourceFile(vImport);
		} else {
			for(var i=0; i < vCnt; i++){
				::AddResourceFile(vImport[i]);
			}	
		}
		・・・
		::gvIsLoad = T;
		・・・
	}
	・・・
}

 

上スクリプトで使用されている「AddResourceFile」ルートメソッドの引数にクライアント設定ファイル名を渡して呼び出すと、指定されたクライアント設定ファイルがインポートされます。インポート後は、フレームワーク側に存在するフォームや関数ロジックなどの各種機能を、自身の設定ファイル内に存在する他のオブジェクトと全く同じように自由に呼び出して利用することができます。

 

尚、上の処理記述では、rootの_ImportModulesカスタムプロパティにスラッシュ区切りで定義されたファイル名がインポートされる対象となります。

同プロパティは「PA-Client.ini」で以下のように外部定義されています。

 

_ImportModules=PA-Framework.xml

 

 

hint

rootオブジェクトは全体で1つしか存在できません。前述の場合、実行元であるPA-Client側のrootオブジェクトのみが存在します。フレームワーク側のrootオブジェクトに関数や変数などを定義していた場合は、インポート時に無効化されます(フレームワーク側のrootにロジックが実装されていたとしても、インポートではrootの資源は取り込まれません)。従って、フレームワーク側のrootオブジェクトにはロジックを実装しないようにしてください。

 

hint

インポートは何回でも行えます。例えば、PA-Framework.xml以外の設定ファイルに独自の機能やロジックを構築し、それをインポートすることも可能です。但し、インポート元の各設定ファイルで同一フォルダ名、同一フォーム名の重複がないように実装されている必要があります。

 

hint

Panel Editorのセットアップ機能から、クライアント設定ファイル(XML)を暗号化形式に変換することができます(拡張子BRW)。暗号化ファイルは、フレームワーク部分のソースコードを非可視化して運用したい場合などに利用します。フレームワークを暗号化した場合、_InportModulesに指定するファイル名の拡張子も併せて修正する必要があります。