Asai のすべての投稿

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

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

さっそく行挿入機能(オリジナル)ソースコードを記載します。
実際の動作としては、行挿入のボタン押下以下の行を1行下にずらす処理を行っています。
理由としては、[+]ボタンのID名称はマニュアルに記載されておらず、今後のバージョンアップ等々で変更される可能性が有る為です。
行追加の動きは見送り、下にずらす形で今回は補います。
[js] 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;
  }
[/js] 基本的なコードですので、エラーチェック等々は必要です。
例えば、最終行の項目に入力値が無い状態の場合のみ行挿入を行う場合、最終行をカレント行とし、入力チェックを入れる必要があります。

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

ではこの辺で・・・。

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

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

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

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

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

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

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