第9章 環境パラメタ
11.4 カスタマイズ例
機能部 詳細操作ID 処理
Insert01 挿入(1/1画面)
直接実 行
Direct Operation
直接操作 入力
Input 直接操作入力
カスタマイズ項目
- 標準画面では、一画面ごとに検索したデータを表形式で表示しています。検索したすべてのデータを記憶して おき、検索行の指定に従って一件をカード形式で表示するように変更します。なお、簡単な処理にするために、
BLOB型の列は表示しません。
手順
1. データ操作の検索結果のフォーマットファイルを処理概要から探します。
対象フォーマットファイル:WebDBtools_DataOperationSelect02.html
2. 対象フォーマットファイルの処理内容を調査します。一画面ごとに検索したデータを表形式で表示しています。
一画面に表示できない場合は、[次ページ]ボタンをクリックしたときに、再検索したデータを表形式で表示して います。
3. 変更後の処理を検討します。
検索したデータを記憶させておき、表示したい行を指定することにより、対象の一件をカード形式で表示させる よう変更します。
4. 元のフォーマットファイルをバックアップします。
5. フォーマットファイルを変更します。
初回のみ検索させるために、フラグの設定と判定を変更します。
<!elseif '(formmode eq "initial" && execoption eq "submit") || (formmode eq "action" && execoption eq "confirm")'>
・・・
<!setvar execoption "submit"> <!-- ← 修正前(1) -->
<!else>
<!setvar rslt "success">
<!/if>
<!if 'execoption eq "submit"'> <!-- ← 修正前(2) -->
<!elseif '(formmode eq "initial" && execoption eq "submit") || (formmode eq "action" && execoption eq "confirm")'>
・・・
<!setvar execoption "select"> <!-- ← 修正後(1) -->
<!else>
<!setvar rslt "success">
<!/if>
<!if 'execoption eq "select"'> <!-- ← 修正後(2) -->
データを表形式で表示させる処理を削除し、データを記憶させる処理を追加します。
<!-- ↓ 修正前(3) -->
<B>結果</B>
<BR>
<!-- ↑ 修正前(3) -->
<!-- ↓ 修正前(4) -->
<!hreplace totalcount>件 検索されました。<BR><BR>
<TABLE BORDER="0" CELLSPACING="1" CELLPADDING="1">
・・・
</TABLE>
<!-- ↑ 修正前(4) -->
<!do "COMMIT WORK">
<!if 'SYSTEM::DB_ERRORCODE ne "00000"'>
・・・
<!else>
<!-- ↓ 修正前(5) -->
<!setvar rslt "success">
<!if 'nextpage ne "" && nextpage ne "none"'>
<TABLE BORDER="0">
・・・
</TABLE>
<!/if>
<BR><BR>
<TABLE BORDER="0">
・・・
</TABLE>
<!-- ↑ 修正前(5) -->
<!/if>
<!-- 修正後(3) 処理なし -->
<!if 'rslt eq "success"'>
<!-- ↓ 修正後(4) -->
<!if 'defined(Dat_SelectData)'>
<!undefvar Dat_SelectData>
<!/if>
<!if 'defined(Dat_SelectCol)'>
<!undefvar Dat_SelectCol>
<!/if>
<!var Dat_SelectData scope="GLOBAL">
<!var Dat_SelectCol scope="GLOBAL">
<!setvar Dat_SelectData SelResult>
<!for lcnt 0 'listlen(SelResult[0])-1'>
<!setvar Dat_SelectCol[lcnt] key(SelResult[0],lcnt)>
<!/for>
<!-- ↑ 修正後(4) -->
<!do "COMMIT WORK">
<!if 'SYSTEM::DB_ERRORCODE ne "00000"'>
・・・
<!else>
<!-- ↓ 修正後(5) -->
<!setvar rslt "success">
<!setvar line '1'>
<!setvar execoption "display">
<!-- ↑ 修正後(5) -->
<!/if>
データをカード形式で表示させる処理を追加します。
<!elseif 'execoption eq "confirm"'>
・・・
<!-- 修正前(6) 処理なし -->
<!/if>
<!-- 修正前(7) 処理なし -->
<!elseif 'execoption eq "confirm"'>
・・・
<!-- ↓ 修正後(6) -->
<!elseif 'execoption eq "submit"'>
<!setvar line 'QUERY::PrintLine'>
<!setvar execoption "display">
<!-- ↑ 修正後(6) -->
<!/if>
<!-- ↓ 修正後(7) -->
<!if 'execoption eq "display"'>
<!setvar lineMax 'listlen(Dat_SelectData)'>
<!if '1 > line || line > lineMax'>
<TABLE BORDER="0">
<TR>
<TD> </TD>
<TD>(<!replace line>/<!replace lineMax>) 範囲外です。</TD>
</TR>
</TABLE>
<!else>
<TABLE BORDER="0" CELLSPACING="1" CELLPADDING="1">
<TR>
<TD> </TD>
<TD>(<!replace line>/<!replace lineMax>)</TD>
</TR>
<!for lcnt 0 'listlen(Dat_SelectData[line-1])-1'>
<!setvar col Dat_SelectCol[lcnt]>
<!if 'col eq "ROW_ID"'>
<!continue>
<!/if>
<TR>
<TD> </TD>
<TD CLASS="DatTableColor5" NOWRAP><B><!hreplace col></B></TD>
<TD CLASS="DatTableColor7" NOWRAP><!hreplace Dat_SelectData[line-1][lcnt]></TD>
</TR>
<!/for>
</TABLE>
<!/if>
<TABLE BORDER="0">
<TR>
<TD> </TD>
<TD>
<INPUT TYPE="text" NAME="PrintLine" VALUE="$line" SIZE="5">
<INPUT TYPE="submit" VALUE="表示" WIDTH="62" HEIGHT="26">
<!setvar prevLine 'line-1'>
<!setvar nextLine 'line+1'>
<INPUT TYPE="submit" VALUE=">>" CLASS="ButtonSize4" WIDTH="62"
HEIGHT="26" OnClick="PrintLine.value='$nextLine'">
</TD>
</TR>
</TABLE>
<BR>
<TABLE BORDER="0">
<TR>
<TD> </TD>
<TD><INPUT TYPE="submit" VALUE="終了" CLASS="ButtonSize1"
WIDTH="62" HEIGHT="26" onClick="SetCloseForm()"></TD>
</TR>
</TABLE>
<!/if>
<!-- ↑ 修正後(7) -->
付録 A WebScript ヒント集
WebScriptを利用する場合に、ヒントとなる項目について説明します。