SmartPad4iのcsv機能は、IBMiプログラムのRPGやCOBOL側からAPIを呼び出すだけで実装ができる便利な機能です。csv機能では、csvファイルを出力する際に文字コードや、改行コード等を設定するパラメータ画面が表示されます。パラメータ画面の設定を入力後ダウンロードリンクが表示されて、csvファイルがダウンロードできる状態となります。
本Tipsでは、csvファイル出力時に設定するパラメータ画面をスキップする方法についてご紹介します。
SmartPad4iのcsv機能
SmartPad4iのcsv機能は、IBMiプログラム側でAPIが用意されています。
IBMiプログラムからパラメータを設定して、SP4Iライブラリの「SP4ISPFM」プログラムを呼び出すだけで実装が可能です。
例) 「SP4ICSV」ライブラリの「CUSTFP」ファイルをcsv出力する。
*----------------------------------------------------------------
* CSV DOWNLOAD 表示後ダウンロード 61 *OFF
* 直接ダウンロード 61 *ON
*----------------------------------------------------------------
C SB0010 BEGSR
C *IN61 IFEQ *OFF
C MOVEL(P) 'DOWNLOAD.HTM'TFILE 20
C MOVEL(P) 'T ' TOPT 2
C ELSE
C MOVEL 'DISPLAY.HTM' TFILE 20
C MOVEL(P) 'A ' TOPT 2
C ENDIF
C*
C CALL 'SP4ISPFM'
C PARM 'SP4ICSV' FILELB 10
C PARM 'CUSTFP' FILENM 10
C PARM '*FIRST' FILEMB 10
C PARM TOPT OPTION 2
C PARM 'CSVDOWNLD' PCDIR 10
C PARM TFILE TEMPLA 20
C PARM '0020' NBRROW 4
C PARM *BLANK RETURN 2
C ENDSR
SmartPad4i csvファイル出力の画面遷移
通常の画面遷移
SmartPad4iのcsv機能の画面遷移は、「1.アプリ画面」からボタン等でIBMiプログラムを呼び出します。IBMiプログラムでcsv機能のAPI「SP4ISPFM」を実行すると、ブラウザが側に制御が戻り「2.パラメータ画面」が表示されます。「2.パラメータ画面」では、csvファイルの改行コードや文字コード等の設定を入力できます。「2.パラメータ画面」の入力完了後に「3.ダウンロード画面」が表示されます。
「ダウンロード画面」の「ダウンロード」リンクをクリックすることで、csvファイルを取得できます。
パラメータ画面をスキップする場合の画面遷移
本Tipsの内容で、パラメータ画面をスキップすると以下のような画面遷移になります。
パラメータ画面をスキップする方法
HTMLの編集
パラメータの設定
パラメータ画面をスキップするには、Webサーバー側に配置されているhtmlファイルを編集します。
編集するファイルは、以下のディレクトリに配置されています。
- SmartPad4i
「DocumentRoot」/smartpad4i/html/CSVDOWNLD/MYPARM.html - Cobos4i
「DocumentRoot」/cobos4i/html/CSVDOWNLD/MYPARM.html
テキストエディタでMYPARM.htmlを開き、125行目に記述されているgetParm関数を編集します。
以下の、赤太文字で記述されている数値がCSVファイル出力時のパラメータ設定になります。
出力したい形式に合わせて設定ください。
function getParm(){
if(true) return '!12320';//Email SP4i CSV on 2016-05-17
if(isTInput(argv)) return argv.value;
if(isTString(argv)) return argv;
return '';
}
設定するパラメータの詳細は以下になります。2番目の数値から6番目の数値が指定パラメータに対応しています。
- 2番目の数値:列項目の出力設定
・0.出力しない、1.出力する - 3番目の数値:改行設定
・0.改行しない、1.UNIX形式(LF)、2.Windows形式(CRLF) - 4番目の数値:区切り文字設定
・0.なし、1.タブ、2.セミコロン、3.カンマ、4.スペース - 5番目の数値:出力文字設定
・0.Default(Unicode)、1.ANSI 、2.UTF-8 、3.Unicode 、4.Unicode(Big Endian) - 6番目の数値:出力項目の追加設定
・0.追加しない、1.データへ追加、2.項目へ追加
スキップ処理の追加
パラメータ画面をスキップするには、MYPARM.htmlファイルの最下行付近に記述されている「doLoad();」関数の後行に、doReturn();を追加してください。
doLoad();
doReturn();
--></SCRIPT>
</HTML>
この行を追加すると、SmartPad4iのcsv機能でパラメータ画面をスキップして、直接ダウンロード画面へ遷移することが可能となります。