###ステップ1.関数呼び出し
###ステップ2.画面初期処理
###ステップ3.保存前処理
###ステップ4.保存後処理
###ステップ1.関数呼び出し
最初に、関数を呼び出す方法を説明します。例として、「部品管理画面」の「個数」の処理関数を説明します。
関数を呼び出す方法は図1赤枠内の設定の通りです。
※図1
「個数」をクリックすると、図2赤枠内の関数を呼び出せます。
※図2
関数呼び出しは、SaaSForceの開発環境から確認します。「ツール」の「ユーザー定義関数」から、関数IDと関数名で検索することが出来ます。
SaaSForceシステム===>「ツール」===> 「ユーザー定義関数」
そして、「編集」ボタンを押し、「関数編集」から関数を確認します。
###ステップ2.画面初期処理
次に、画面初期処理の説明をします。まずは、画面初期処理にはサーバー側、クライアント側が含まれています。
「画面初期処理」の後ろに、「クライアント」を付けるとクライアント側処理の関数を作成できます。
※「画面初期処理」の後ろに何も付けないと、デフォルトでサーバー側処理の関数を作成します。
例として、「入金管理検索」の画面初期処理を説明します。
作成した関数はSaaSForceの開発環境から確認します。
ユーザー利用画面表示例↓
###ステップ3.保存前処理
保存前処理はデータを保存する前にの処理です。設定方法は画面詳細設計書に記載します。
var SHIHARAIWARIAIGOUKEI = getObj("SHIHARAIWARIAIGOUKEI").value;
var SHIHARAIHIDZUKE;
var SHIHARAIWARIAI;
var FURIDASHIZUMIHIDZUKE;
var FURIDASHIZUMIKINGAKU;
var FURIDASHIZUMIWARIAI;
var NYUUKINZUMIHIDZUKE;
var NYUUKINZUMIKINGAKU;
var NYUUKINZUMIWARIAI;
var RESHIITOMEISAINO;
var RESHIITONO1;
var MSG = getObj("MSG").value;
var gridrow = getObj("RowGrid61").value;
var gridflg = "";
if(gridrow!=0){
for(var i=1;i<=gridrow;i++){
gridflg = $("#Grid61flg"+i).val();
if(gridflg != null && gridflg!=""){
break;
}
}
}
SF.setServerExecute(true);
/*1.「支払割合合計」を取得。*/
/*2.変数<支払割合合計>に"0"を設定する。*/
SHIHARAIWARIAIGOUKEI = "0";
/*Grid「B8」ループ開始。*/
var intRow = getObj("RowGrid61").value;
for (var i = 1;i <= intRow; i++) {
/* grid loop start */
SHIHARAIHIDZUKE = $('#SHIHARAIHIDZUKE_'+i).val();
SHIHARAIWARIAI = $('#SHIHARAIWARIAI_'+i).val();
FURIDASHIZUMIHIDZUKE = $('#FURIDASHIZUMIHIDZUKE_'+i).val();
FURIDASHIZUMIKINGAKU = $('#FURIDASHIZUMIKINGAKU_'+i).val();
FURIDASHIZUMIWARIAI = $('#FURIDASHIZUMIWARIAI_'+i).val();
NYUUKINZUMIHIDZUKE = $('#NYUUKINZUMIHIDZUKE_'+i).val();
NYUUKINZUMIKINGAKU = $('#NYUUKINZUMIKINGAKU_'+i).val();
NYUUKINZUMIWARIAI = $('#NYUUKINZUMIWARIAI_'+i).val();
RESHIITOMEISAINO = $('#RESHIITOMEISAINO_'+i).val();
RESHIITONO1 = $('#RESHIITONO1_'+i).val();
/*1.「msg」を取得。*/
/*2.変数<msg>に"0"を設定する。*/
MSG = "0";
/*3.Grid「B8」に修正がある場合,以下の処理を行う。*/
if ((gridflg != null && gridflg != '')) {
/*1.「支払割合」が数字でないの場合,以下の処理を行う。*/
if (parseFloat(Number(SHIHARAIWARIAI)).toString() == "NaN" ) {
/*1.変数<msg>に"1"を設定する。*/
MSG = "1";
/*処理終了。*/
}
/*処理終了。*/
}
/*1.「支払割合」が数字の場合,以下の処理を行う。*/
if (!(parseInt(Number(SHIHARAIWARIAI)).toString() == "NaN") ) {
/*4.変数計算(double,小数点以下第2位を四捨五入):<支払割合合計>=<支払割合合計>+<支払割合>。*/
SHIHARAIWARIAIGOUKEI=Number(SHIHARAIWARIAIGOUKEI)+Number(isNaN(Number(SHIHARAIWARIAI)) ? SHIHARAIWARIAI.replaceAll(",","") : SHIHARAIWARIAI);
/*変数計算(double,小数点以下第2位を四捨五入)*/
if (SHIHARAIWARIAIGOUKEI != null && parseInt(SHIHARAIWARIAIGOUKEI) != SHIHARAIWARIAIGOUKEI) {
SHIHARAIWARIAIGOUKEI = parseFloat(SHIHARAIWARIAIGOUKEI).toFixed(2);
}
if (!SHIHARAIWARIAIGOUKEI || isNaN(SHIHARAIWARIAIGOUKEI)) {
SHIHARAIWARIAIGOUKEI = '';
}
/*処理終了。*/
}
/*グリッドループ終了。*/
}
/*3.<msg>が"1"の場合,以下の処理を行う。*/
if (MSG == "1") {
/*1.「数字で入力してください。」メッセージを表示する。*/
alert('数字で入力してください。');
/*2."false"を返す。*/
return false;
/*処理終了。*/
}
/*4.<msg>が"1"でない,且つ<支払割合合計>が"100.00"ではない場合,以下の処理を行う。*/
if (MSG != "1" && SHIHARAIWARIAIGOUKEI != "100.00") {
/*1.「支払割合合計が100%になっていません。」メッセージを表示する。*/
alert('支払割合合計が100%になっていません。');
/*2."false"を返す。*/
return false;
/*処理終了。*/
}
/*5."true"を返す。*/
return true;
/*処理終了。*/
###ステップ4.保存後処理
保存後処理はデータを保存する後の処理です。設定方法は画面詳細設計書に記載します。
SaaSForceの開発環境にログインして、設計書ファイルをインポートします。以下はワンダーロボが作成した保存後処理の関数です。
var param = [];
var sps = null;
var sqlStr = new StringBuilder();
var paramIndex = 0;
var ay1;
var NYUKIN_RESHIITONO = null;
var CHUUBUNSHONO1 = getObj("CHUUBUNSHONO1");
try {
/*データ操作1:テーブル「入金」の項目「レシートNO」を取得,条件は「注文書NO」が画面項目「注文書NO」*/
sqlStr.append("SELECT NYUKIN.RESHIITONO FROM NYUKIN").append(" WHERE 1 = 1 ");
if (CHUUBUNSHONO1 != null && CHUUBUNSHONO1 != "") {
sqlStr.append(" AND ").append("CHUUBUNSHONO = ?");
param[paramIndex] = CHUUBUNSHONO1;
paramIndex++;
}
ay1 = exequeryarrylist(sqlStr.toString(),param);
sqlStr.setLength(0);
paramIndex = 0;
param = [];
if (ay1 != null && ay1.size() > 0) {
NYUKIN_RESHIITONO = ay1.get(0).get(0);
} else {
NYUKIN_RESHIITONO = null;
}
/*データ操作2:テーブル「注文書」の項目「注文書NO」が値「注文書No」のデータに対して,項目「レシートNO」を<レシートNO>に変更する*/
sqlStr.append("UPDATE TYUMONSYO SET ").append("RESHIITONO=").append("?").append(" WHERE 1=1");
param[paramIndex]=NYUKIN_RESHIITONO;
paramIndex++;
if (CHUUBUNSHONO1 != null && CHUUBUNSHONO1 != "") {
sqlStr.append(" AND ").append("CHUUBUNSHONO = ?");
param[paramIndex] = CHUUBUNSHONO1;
paramIndex++;
}
exesql(sqlStr.toString(),param);
paramIndex = 0;param = [];
sqlStr.setLength(0);
} catch(e) {
ActStr += "alert('" + e + "');";
}