「Web Performer」カテゴリーアーカイブ

自動生成ツール

【WebPerformer】明細に行挿入機能②

拡張で使用する JavaScriptのコードなどは、製品サポートの対象外となるので、充分注意して下さい。

さっそく行挿入機能(オリジナル)ソースコードを記載します。
実際の動作としては、行挿入のボタン押下以下の行を1行下にずらす処理を行っています。
理由としては、[+]ボタンのID名称はマニュアルに記載されておらず、今後のバージョンアップ等々で変更される可能性が有る為です。
行追加の動きは見送り、下にずらす形で今回は補います。

function Insert_Rows(){

	//ボタンが押下された行数を取得。
	var currentIndex = disp.get__SRC_EVENT_ROWS();

	//空行挿入用に変数にセットしておく。
	var empty_rows = currentIndex;

	//全行カウント
	var all = disp.get_TEST1_count();
	var SURYO	= [];
	var TANI	= [];
	var TANKA	= [];
	var KINGAKU	= [];
	//行のステータス
	var STATUS	= [];

	//最終行をカレント行とし、空行挿入が行えるかをチェックする。
	disp.setCur_index(all-1);

			//押下行より配列へ値をセット
			for( i = currentIndex; i < all; i++ ){
				//カレント行の指定
				disp.setCur_index(i);
				//添字の初期化
				var ln = i;

				//ボタン押下行の値を変数にセットしておく。※次下行にセットする。
				SURYO[ln]	= disp.get_SURYO();
				TANI[ln]	= disp.get_TANI();
				TANKA[ln]	= disp.get_TANKA();
				KINGAKU[ln]	= disp.get_KINGAKU();

				//行のステータス
				STATUS[ln]	= disp.get__Status_TEST1();
			}

			//行に値をセット
			for( i = currentIndex; i < all; i++ ){

				//カレント行の指定
				disp.setCur_index(i);

				//添字の初期化
				var ln = i;
				if( i == empty_rows ){

					//挿入行を空白にする。(挿入されたかのような動作にしている。)
					disp.set_SURYO(String(""));
					disp.set_TANI(String(""));
					disp.set_TANKA(String(""));
					disp.set_KINGAKU(String(""));

					//行のステータス
					disp.set__Status_TEST1("INSERT");
				}
				else{

					//挿入行以外は値を画面にセット。
					disp.set_SURYO(String(SURYO[ln-1]));
					disp.set_TANI(String(TANI[ln-1]));
					disp.set_TANKA(String(TANKA[ln-1]));
					disp.set_KINGAKU(String(KINGAKU[ln-1]));

					//行のステータス
					disp.set__Status_TEST1(String(STATUS[ln-1]));
				}
			}
		}
	return true;
   }

基本的なコードですので、エラーチェック等々は必要です。
例えば、最終行の項目に入力値が無い状態の場合のみ行挿入を行う場合、最終行をカレント行とし、入力チェックを入れる必要があります。

//最終行をカレント行
disp.setCur_index(all-1);
if(入力チェック){
       正常処理
}
else{ 
       alert("最終行に行追加が必要");
}

ではこの辺で・・・。

【WebPerformer】明細に行挿入機能①

4月も最終日という事で、、、
天候が安定しない日々が続いておりますが、この時期の体調管理には気を付けて下さい。

今回もWebPerformerのユーザ定義実装についての記事になります。
意外にもWebPerformer関連の地味なユーザ定義の情報は評判が良いらしく、引き続き投稿していこうかと思います。

WebPerformerの標準機能だと、明細に行の追加を行う際、最終行に追加されます。
ですが、システムをご利用になるお客様の中では、[途中行に新規行を追加したい]と考えておられる方も多いのではないでしょうか。

javascriptをカスタマイズし、オリジナルの途中行挿入機能を実装してみることにします。
WebPerformerが標準で実装している行追加・削除の[+][-]ボタンの機能は特に変更せず、
アクションボタン押下時にjavascriptをコールし、新規行を挿入するイメージになります。

後程説明しますが、行挿入と記載しておりますが実際には[行が下に1段ズレる動作]を利用しています。
イメージは下図のようになります。

①行挿入前
001
②行挿入後
002