Migaro. 技術Tips

                       

ミガロ. 製品の技術情報
IBMiの活用に役立つ情報を掲載!


SmartPad4iのcsvファイル出力時パラメータ入力画面をスキップする方法

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機能でパラメータ画面をスキップして、直接ダウンロード画面へ遷移することが可能となります。