このサンプルはStaticTableの合計の設定方法です。
ステップ1:Static Tableの表示をする画面と関数を作成します。
ステップ2:Static Tableの表示を確認します。
ステップ1:Static Tableの表示をする画面と関数を作成します。
1-1.<画面>ー<画面レイアウト作成>の画面を開き、「新規」ボタンをクリックします。
1-2.「画面名」にStaticTableを入力、「管理ID」にStaticTableを入力し、ボタンタイプの項目数に1を入力し、「保存して次へ」ボタンをクリックします。
1-3.「フォルダ追加管理」ダイアログボックスが表示されます。画面の登録対象フォルダを選択して「登録」ボタンをクリックします。
1-4.<画面>-<画面レイアウト作成>の画面を開き、画面レイアウト設計「StaticTable」行の「編集」ボタンをクリックし、「画面レイアウト設計」画面を表示します。
1-5.「画面デザイン」画面が表示されます。この画面で項目の移動、変更などが自由に行えます。
「閉じる」ボタンを右クリックし削除を左クリックします。
「btn2」ボタンを右クリック。「項目定義」をクリックし項目名「btn2」を「検索」変更します。「保存」ボタンをクリックし変更を保存します。
ツールバーで「項目追加」ボタンをクリックします。項目名と項目IDを入力して「表示種類」に「表」を選びます。「保存」ボタンをクリックします。
表設定を行います。「表データ件数」に「複数件」を選択します。
作成した表に3列を追加します。「ITEM1」を左クリックし選択します。「ITEM1」を右クリックし「列の挿入」を左クリックします。
「ITEM1」を左クリックし選択します。「ITEM1」を右クリックし「コントロール設定」を左クリックします。
「項目名」を入力し、「保存」ボタンをクリックします。ほかのタイトルも同じように設定します。
下図の通りに設定します。
3行目の「ITEM1」を左クリックし選択します。「ITEM1」を右クリックし「行削除」を左クリックします。
削除した後「社員ID」下のセル「ITEM1」をダブルクリックします。
キーボードの「Backspace」で値を削除します。同じ行のセルも削除します。
「給料」下のセルを左クリックし選択します。セルを右クリックし「コントロール設定」を左クリックします。
項目名を入力、「書式設定->横寄せ」に「右」を選んで保存します。
キーボードの「Backspace」で項目名1を削除します。
ツールバーで「項目追加」ボタンをクリックします。
項目名を入力し、「表示種類」に「Textbox」を選びます。
自由に項目の移動、変更などができます。「保存」ボタンをクリックします。
1-6.関数作成
var st1 = getStaticTable("static4");
var strSql = new StringBuilder();
var param = [1];
var al = null;
var row = null;
var userID = getObj('txt36'); //条件;
var background = "d6e6ff";
var fontcolor = "000000";
var week = "";
var yakushoku;
var stopFlg = false;
try {
strSql.setLength(0);
strSql.append(
"SELECT ID, NAME, DEPT, AGE, SALARY FROM EMPLOYEE"
);
//検索条件:社員ID
if (userID != null && userID != "") {
strSql.append(" WHERE ID LIKE '%" + userID + "%'");
}
strSql.append(" ORDER BY ID");
// 日報承認データ取得
al = exequeryarrylist(strSql.toString());
if (al != null && al.size() > 0) {
var list = new ArrayList();
//合計値の設定
var strint = 0.0;
for (var i = 0; i < al.size(); i++) {
var maptimuzhou = new HashMap();
var keibItemBean = new ItemBean();
row = al.get(i);
keibItemBean = new ItemBean();
keibItemBean.setValue(row.get(0));
keibItemBean.setBackground(background);
keibItemBean.setFontColor(fontcolor);
// 社員ID
maptimuzhou.put("lbl15", keibItemBean);
keibItemBean = new ItemBean();
keibItemBean.setValue(row.get(1));
keibItemBean.setBackground(background);
keibItemBean.setFontColor(fontcolor);
// 社員名
maptimuzhou.put("lbl17", keibItemBean);
keibItemBean = new ItemBean();
keibItemBean.setValue(row.get(2));
keibItemBean.setBackground(background);
keibItemBean.setFontColor(fontcolor);
// 所属
maptimuzhou.put("lbl35", keibItemBean)
keibItemBean = new ItemBean();
keibItemBean.setValue(row.get(3));
keibItemBean.setBackground(background);
keibItemBean.setFontColor(fontcolor);
// 年齢
maptimuzhou.put("lbl29", keibItemBean)
keibItemBean = new ItemBean();
//可入力
keibItemBean.setValue(row.get(4));
keibItemBean.setReadOnly(false);
keibItemBean.setBackground(background);
keibItemBean.setFontColor(fontcolor);
// 給料
maptimuzhou.put("lbl23", keibItemBean)
list.add(maptimuzhou);
//合計の計算
strint += Number(row.get(4));
}
var maptimuzhou = new HashMap();
var keibItemBean = new ItemBean();
keibItemBean = new ItemBean();
keibItemBean.setValue("");
keibItemBean.setBackground(background);
keibItemBean.setFontColor(fontcolor);
// 社員ID
maptimuzhou.put("lbl15", keibItemBean);
keibItemBean = new ItemBean();
keibItemBean.setValue("合计");
keibItemBean.setBackground(background);
keibItemBean.setFontColor(fontcolor);
// 社員名
maptimuzhou.put("lbl17", keibItemBean);
keibItemBean = new ItemBean();
keibItemBean.setValue("");
keibItemBean.setBackground(background);
keibItemBean.setFontColor(fontcolor);
// 所属
maptimuzhou.put("lbl35", keibItemBean)
keibItemBean = new ItemBean();
keibItemBean.setValue("");
keibItemBean.setBackground(background);
keibItemBean.setFontColor(fontcolor);
// 年齢
maptimuzhou.put("lbl29", keibItemBean);
keibItemBean = new ItemBean();
keibItemBean.setValue(strint);
keibItemBean.setBackground(background);
keibItemBean.setFontColor(fontcolor);
// 給料
maptimuzhou.put("lbl23", keibItemBean);
list.add(maptimuzhou);
//表のすべての項目情報を設定
st1.setData(list);
st1.addBreakConditionByParams("lbl35","lbl35,lbl29");
st1.addBreakCondition("lbl29", "lbl29");
ActStr += "" + JsUtil.saasforce_item2js(st1, true, null);
} else {
var list = new ArrayList();
var map = new HashMap();
list.add(map);
ActStr = "alert('該当データは存在しません。');";
}
} catch (e) {
trace(e);
ActStr = "alert('検索時エラーが発生しました。システム管理者にご連絡してください。[" + e + "]');";
}
<ツール>-<ユーザー定義関数>の画面を開き、中央上の「検索条件」ボタンをクリックします。左から2番目「新規」ボタンをクリックします。
「プロパティ定義」画面にて、「関数名称」を入力、「利用範囲」に「詳細画面利用関数」を選択、「関数利用画面」に「P00005-StaticTable」を選択し、「処理方式」に「同期処理」をチェック、「実行場所」に「サーバー」をチェックします。
「関数編集」画面にて、関数をコピーします。関数コードのgetObject()の引数は関数デザイン画面の表の「項目ID」と同じです。そして、 maptimuzhou.put()の引数「lbl15」はタイトル「社員ID」下の項目IDと同じです。maptimuzhou.put()他の引数も同じように設定します。「保存」ボタンをクリックし、「関数ID」が取得できます。
<画面>-<画面レイアウト作成>の画面を開き、「StaticTable」行の「編集」ボタンをクリックします。
「画面デザイン」にて、検索ボタンを右クリックしコード表示を左クリックします。
「関数タイプ」に「詳細画面利用関数」を選択し、関数名称が自動に表示されます。「保存」ボタンをクリックします。