DBからのe-Form事前入力

ODIを利用してe-Form入力

  1. HTMLアプリケーションでは、OZビューアはODIパラメータmemberNoの値をmembership.odiに渡します。

  2. Membership.odiは、OZサーバーにデータベースからのデータを要求します。

  3. Membership.odiはデータをmembership-odiparam.ozrに返します。

  4. Membership-odiparam.ozrは、データを各コンポーネントにバインドします。

membership-odiparam.ozr

membership.ozr をコピーして membership-odiparam.ozr ファイルを生成します。その後、 membership-odiparam.ozrを開きます。

ODI追加

セクションODIの作成で既に作成したmembership.odiを挿入します。

TextBoxのデータを取得

メンバーデータセットフィールドから、memberNo、firstName、lastName、contactNo、email、CardNo、photo、sign、signDateTimeに値を割り当てます。

誕生日のデータを取得

// ObBind of yyyy
var items = new Array();
var i = 0;
for ( i=1950; i<2020; items[i-1950]=i++) ;
This.SetItems(items.join("\n"));

var val = This.GetDataSetValue("member.birthday");
if (val) {
	var yyyy = val.substr(0,4);
	for ( i=0; items[i] != yyyy; i++) ;
	This.SetSelectedIndex(i);
} else {
	This.SetSelectedIndex((2020-1950)/2);
}

性別のデータを取得

// OnBind of male
if (This.GetDataSetValue("member.gender") == "M") {
	This.SetChecked(true);
}

メンバーシップのデータを取得

// OnBind of memberType
var items = [ "Trial", "Regular", "Premium" ];
This.SetItems(items.join("\n"));

var val = This.GetDataSetValue("member.memberType");
if (val) {
	for ( i=0; items[i][0] != val; i++) ;
	This.SetSelectedIndex(i);
} else {
	This.SetSelectedIndex(0);
}

支払いのデータを取得

// OnBind of cardType
var items = [ "VISA", "MASTER", "JCB", "HSBC", "UOB" ];
This.SetItems(items.join("\n"));

var val = This.GetDataSetValue("member.cardType");
if (val) {
	for ( i=0; items[i] != val; i++) ;
	This.SetSelectedIndex(i);
} else {
	This.SetSelectedIndex(0);
}

ODIパラメーター伝達

mambership-odi.html
<script type="text/javascript" >
var serverUrl = "https://" + location.host;
function SetOZParamters_OZViewer(){
	var oz = document.getElementById("OZViewer");
	oz.sendToActionScript("information.debug", "true"); // viewer console
	oz.sendToActionScript("connection.servlet",serverUrl + "/oz/server");
	oz.sendToActionScript("connection.reportname","/eform/membership-odiparam.ozr");
	oz.sendToActionScript("odi.odinames", "membership");
	oz.sendToActionScript("odi.membership.pcount", "1"); // number of odi parameters
	oz.sendToActionScript("odi.membership.args1", "memberNo=" + 1002); // odi parameter
	return true;
}
start_ozjs("OZViewer", serverUrl + "/oz/HTML5viewer/");
</script>

Run example

最終更新