ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
gen 使用方法 【マスタメンテ】
日時: 2010/06/15 12:23
名前: lightbox




ブラウザでダウンロード ↓は、何もオプションを指定しなかった場合 1) 対象テーブルを選択( その結果列の一覧が表示される ) 2) キーとなる列の選択 3) 保存ディレクトリ名の決定 4) マスタメンテ作成ボタン ↓問い合わせはこちら http://lightbox.matrix.jp/ginpro/patio.cgi?mode=view&no=15&w=910
メンテナンス

リードオンリーモード ( No.1 )
日時: 2007/03/18 14:21
名前: lightbox


日時: 2007/03/18 14:21
名前: lightbox
拡張子:
control.php?In1Key=1&GNO=2&ro=yes
明細部に渡す引数に ro=yes を追加すると以下のようになります
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
IFRAME 参照 ( No.2 )
日時: 2007/03/18 15:05
名前: lightbox
あるていど自動的に IFRAME でデータが参照可能。
その為に、問い合わせを作成しておく必要があります。

拡張子:
../req_syobun/frame.php
上記記述によって、以下のようなボタンイベントが付加されます ("1" は、フレーム番号です)
拡張子:
onClick='OpenIframe( "1", "../req_syobun/frame.php?ret=retobj1&func=iframe1set" )'
問い合わせ側は、検索メイン項目にリンクが作成されて、以下のようなイベントが付加されます ( $_POST['ret'] の存在によって、表示されます )
拡張子:
onClick='parent.HeadFrame.SetData(this);'
ヘッドフレームには、以下のような関数があります これで、問い合わせ側のデータのノードリストを渡して 呼び出し側の iframe1set という関数を呼び出して処理させます つまり、データのどの部分を使うかは、呼び出し側しだいです。
拡張子:
// *********************************************************
// 親ページへデータ転送
// *********************************************************
function SetData( obj ) {

	var objNodeTd = obj.parentNode;
	var objNodeTr = objNodeTd.parentNode;

	parent.parent.retobj1 = objNodeTr.getElementsByTagName("SPAN");
	parent.parent.iframe1set();

}
IFRAME 参照実装毎に以下のような関数が追加されています
拡張子:
var retobj1;
function iframe1set() {
try {
	document.getElementsByName("In24")[0].value = retobj1[0].firstChild.nodeValue;
	document.getElementsByName("In24ref")[0].value = retobj1[1].firstChild.nodeValue;
}catch(e) {}
	document.getElementsByName("iframe1")[0].style.visibility = "hidden";
}
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
コンボボックス作成 ( No.3 )
日時: 2007/08/24 11:29
名前: lightbox
通常のコンボボックスは、更新用コード,表示名称 という二つの列を定義して自動的にコンボボックスを作成する
固定コンボボックスは、その場で 更新用コード,表示名称 のペアを書き込む



マルチ表示コンボボックスは、先頭の更新用コード以外を全て表示する


更新用コードも表示したい場合は、列名に別名を付けて、プログラムから参照する列名が重複しないようにします。
( select 社員コード,社員コード as コード,氏名,フリガナ )

拡張子:
$OptionList1 = CreateMultiOption( $SQL, "In216", $Query, "10,10,10,10,10" );
のように作成されるので、"10,10,10,10,10" は表示する列の幅を指定します(1 は、全角一つぶん ) つまり、表示する列数ぶん指定する事になりますが、最後の項目は全て表示されるのでダミーです。 ( たとえ多く指定していても、select 文で指定した数をこえる事はありません ) コンボボックスの正確な幅は、スタイルシートで指定します( style='width:200px' 等 ) ジェネレータでは、SELECT タグに自動的に style='font-family:"MS ゴシック"' が付加されますが、 正しく表示する為に必要です いずれにしても、追加項目は直接ソースコードを変更する
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
非表示 ( No.4 )
日時: 2007/06/07 17:09
名前: lightbox
主キーとして、コード指定した列と、作成日、更新日という列名は自動的に
実装から除外される

非表示を選択した場合は、実装されるが表示されないだけ。
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
Ajax 参照 ( No.5 )
日時: 2007/06/07 17:03
名前: lightbox
拡張子:
select 名称 from 商品分類マスタ where 商品分類 = '{$_GET['tkey']}' 
単純な参照ならば、select 名称 from テーブル名とする。 この場合、Oracle の場合、SQL の中に (ダフルクォーテーション)を使用しないで下さい。 参照ボタンと、表示フィールドが自動的に作成されて、以下のようなコードが組み込まれます
拡張子:
<INPUT  <?= $DISABLED ?>
	type=button
	value="参照"
	onClick='TableRef("1", document.getElementsByName("In24")[0].value, 0, document.getElementsByName("In24ref")[0] )'>
呼び出された関数は以下のようなもので、2番目の引数を使用して(キー)として、Ajax を呼び出します。 戻す値は、3番目の引数で指定できますが、dom の再利用を想定していないので、変更する事は無いでしょう。
拡張子:
function TableRef( sNo, sKey, nNo, setObj ) {

	var result,dom,sValue;

	if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
		dom = new ActiveXObject("Msxml2.DOMDocument.3.0");
		dom.async = false;
	}
	else {
		dom = document.implementation.createDocument("", "", null);
		dom.async = false;
		parser = new DOMParser();
	}

	sKey = encodeURIComponent(sKey);

	// 最後のパラメータの false は、同期実行を意味します
	objXMLHttp.open(
		"GET",
		"ajax" + sNo + ".php?tkey=" + sKey
		, false );
	objXMLHttp.send( "" );
	dom = objXMLHttp.responseXML;


	sValue = dom.getElementsByTagName("value")[0].firstChild.nodeValue;
	if ( sValue == 'error' ) {
		alert('入力されたデータは存在しません   ');
	}
	else {
		if ( dom.getElementsByTagName("value")[nNo].firstChild != null ) {
			setObj.value = dom.getElementsByTagName("value")[nNo].firstChild.nodeValue;
		}
		else {
			setObj.value = '';
		}
	}

}
↓Ajax テスト方法サンプル
拡張子:
ajax1.php?tkey=G20
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
view 追加フォーム数 ( No.6 )
日時: 2007/06/07 20:52
名前: lightbox
マスタメンテでも、問い合わせでも同様に HEAD 部分に追加ボタンが設置されます。

action 属性が記述されていませんが、他の処理結果を BODY に表示する為のボタンです。

このアーティクルの参照用URLをクリップボードにコピー メンテナンス
問合せ用 【ボタン】 実装 ( No.7 )
日時: 2007/06/07 21:01
名前: lightbox
ボタンを実装するかどうかのチェックをして、
ユニークになる値を持つキー列名を指定すると、

chk + 列のデータ という name 属性を持ったそれぞれのボタンが行毎に作成されます

※ 項目が多くなるので、GET を POST に変更しないと送信されない可能性があります。
このアーティクルの参照用URLをクリップボードにコピー メンテナンス