HTTPサーバーとWeb開発

107. 他のPCサーバーの画像をWeb公開するには ? (2)

先の紹介で QNTC 経由で他の PC サーバーにあたかもローカルにあるかのように
他の PC サーバーにアクセスできることは理解して頂けたことと思う。
そこで次に多い質問は自社の製品などの画像と他の PC サーバーにある画像を
どのように関連づけて登録しておけばよいのか? という疑問である。

【部品マスターM】BUHINM
№     部品番号      部品名                部品区分    在庫区分    基準在庫数
====== =========== ======================= ========== =========== ============
000001 AD-D15FF       超小型アダプター         1           2             1,000
000002 BUH-001        金型パイプ 001           2           2             1,800
000003 BUH-002        5mmネジ               1                        48,000
000004 BUH-003        台座 500 X 250           1                        25,000
000005 BUH-004        六角平ネジ 60 MM         1                         3,000
000006 BUH-005        表示端末                 2                           200
000007 DIS-001        磁気ディスク装置         1                             0
000008 DIS-002        フロッピー 8 インチ         1                             0
000009 DIS-003        ディスケット 5 インチ       1                             0
000010 EKI-054        液晶表示装置             2                             0
000011 MAN-087        マニュアル一式           2                             0
000012 MF333         コンピュター アクセサリー            2                           100
000013 TEN-033        テンプレート 001         1                        12,500
000014 TEN-034        台座200             1                         1,500
000015 TEN-035        発光ダイオード           2                       100,000

このような部品マスターファイル (BUHINM) があったとする。
これに対して「部品イメージ・ファイル」 (BHIMAGE) は次のようなファイルである。

【部品イメージ・ファイル】BHIMAGE
№     部品コード       イメージ保管場所
====== ============  ============================================
000001 BUH-001       /QNTC/192.168.1.43/IMAGE/BIKE1.JPG
000002 BUH-002       /QNTC/192.168.1.43/IMAGE/IMG/BKTTR7.JPG
000003 BUH-003       /QNTC/192.168.1.43/IMAGE/DANCER.JPG
000004 BUH-004       /QNTC/192.168.1.43/IMAGE/KICKBD2.GIF
000005 BUH-005       /QNTC/192.168.1.43/IMAGE/PL1000.JPG
000006 BUH-006       /QNTC/192.168.1.43/IMAGE/RAILCAR.JPG
000007 DIS-001       /QNTC/192.168.1.43/IMAGE/RAILCAR.JPG
000008 DIS-002       /QNTC/192.168.1.43/IMAGE/SHP2000.JPG
000009 DIS-003       /QNTC/192.168.1.43/IMAGE/SSN125.JPG

このイメージ保管場所フィールドの値は

BHNCODE    CHAIN BHIMAGE              99

のような単純な CHAIN 命令で取得できることは容易に理解できるはずである。
出力するプログラムでは

<IMG SRC="/QNTC/192.168.1.43/IMAGE/BIKE1.JPG">

のような HTML タグとして出力するだけのことである。

DSPF には HTML タグを出力するための HTML キー・ワードが
IBM によって提供されている。( 詳しくは DDS 解説書を参照 )

  • AutoWeb であれば HTML キー・ワードを出力することができる。
    ( aXes 他の Web フェーシングでは不可 )
  • IBM 仕様で HTML キー・ワードは SFL 明細行には出力できないが
    AutoWeb の CRTEXDSPF を使えば SFL 明細行にも HTML を
    出力することができる。
【 PGM209FM : サンプル DSPF 】
0001.00      A*%%TS  SD  20080115  153521  QTR         REL-V5R4M0  5722-WDS
0002.00      A*-----------------------------------------------*
0003.00      A*   サブファイル表示     PGM209FM               *
0004.00      A*
0005.00      A*      部品在庫の照会
0006.00      A*
0007.00      A*      SFL レコードに HTML を表示するサンプル
0008.00      A*      CRTEXDSPF QTROBJ/PGM209FM SRCFILE(QTRSRC/QDSPSRC9
0009.00      A*      AUT(*ALL)
0010.00      A*-----------------------------------------------*
0011.00      A*%%EC
0012.00      A                                      DSPSIZ(27 132 *DS4)
0013.00      A                                      MSGLOC(27)
0014.00      A                                      PRINT
0015.00      A          R SFREC01                   SFL
0016.00      A*%%TS  SD  20080115  153521  QTR         REL-V5R4M0  5722-WDS
0017.00      A                                      TEXT(' SFL明細行 ')
0018.00      A*------------------------------------------------*
0019.00      A*( 1 段目の表示 )
0020.00      A            GYO            4A  O  4  2TEXT(' № ')
0021.00      A            BZBHCD        12A  O  4  7TEXT(' 部品コード ')
0022.00      A            BHNAME        20O  O  4 20TEXT(' 部品名 ')
0023.00      A            BZSURY         7Y 0O  4 42TEXT(' 在庫数量 ')
0024.00      A                                      EDTCDE(J)
0025.00      A            BZHATZ         7Y 0O  4 54TEXT(' 発注残数 ')
0026.00      A                                      EDTCDE(J)
0027.00      A*( 2 段目の表示 )
0028.00      A*    画像の URL を SFL レコードの下の段に表示して実際に表示する
0029.00      A*    位置は上の段の右端に POS で移動して表示します。
0030.00      A            IMGTAG       120A  O  5  2TEXT('POS(4,70)')
0031.00      A*
0032.00      A          R SFCTL01                   SFLCTL(SFREC01)
0033.00      A*%%TS  SD  20080115  151505  QTR         REL-V5R4M0  5722-WDS
0034.00      A                                      SFLSIZ(0006)
0035.00      A                                      SFLPAG(0005)
0036.00      A                                      TEXT(' SFL制御見出 ')
0037.00      A                                      OVERLAY
0038.00      A  41                                  SFLDSPCTL
0039.00      A  42                                  SFLDSP
0040.00      A  43                                  SFLINZ
0041.00      A                                      SFLRNA
0042.00      A  44                                  SFLCLR
0043.00      A  45                                  SFLEND(*SCRBAR)
0044.00      A  46                                  SFLDLT
0045.00      A                                      ROLLUP(14 ' 次頁 ')
0046.00      A                                      ROLLDOWN(15 ' 前頁 ')
0047.00      A N88                                  SFLFOLD(CF11)
0048.00      A*N88                                  SFLDROP(CF11)
0049.00      A                                      CF03(03 ' 終了 ')
0050.00      A                                      SETOF(99)
0051.00      A                                      BLINK
0052.00      A                                  2  2' 部品在庫の照会 '
0053.00      A                                      DSPATR(HI)
0054.00      A*( 明細行の桁見出し )
0055.00      A                                  3  2' № '
0056.00      A                                      DSPATR(HI)
0057.00      A                                  3  7' 部品コード '
0058.00      A                                      DSPATR(HI)
0059.00      A                                  3 21' 部品名 '
0060.00      A                                      DSPATR(HI)
0061.00      A                                  3 42' 在庫数量 '
0062.00      A                                      DSPATR(HI)
0063.00      A                                  3 54' 発注残数 '
0064.00      A                                      DSPATR(HI)
0065.00      A  88                              3 66' 画像イメージ '
0066.00      A                                      DSPATR(HI)
0067.00      A          R DSPEND01
0068.00      A                                      TEXT(' 機能キーの表示 ')
0069.00      A*%%TS  SD  19930612  144015  QUATTRO     REL-V2R1M0  5738-PW1
0070.00      A*----------------------------------------------------*
0071.00      A                                      OVERLAY
0072.00      A                                      CF03(03 ' 終了 ')
0073.00      A                                 23  2'F3= 終了 '
0074.00      A                                      COLOR(BLU)
【 PGM209 : サンプル RPG 】
0001.00 H DFTNAME(PGM209) DATEDIT(*YMD/)
0002.00 F**********  部品在庫の照会  ******************************************
0003.00 FPGM209FM  CF   E             WORKSTN
0004.00 F                                     SFILE(SFREC01:RRN1)
0005.00 F                                     INFDS(INFDS)
0006.00 F                                     INFSR(*PSSR)
0007.00 FBHZAIKO   IF   E           K DISK
0008.00 FBUHINM    IF   E           K DISK
0009.00 FBHIMAGE   IF   E           K DISK
0010.00 F**********************************************************************
0011.00 D INFDS           DS
0012.00 D  NUM_COLS             154    155B 0
0013.00 D  TOPRRN               378    379B 0
0014.00 D  BRRN                 376    377B 0
0015.00 D  LINE_NUM                      8A   OVERLAY(INFDS:21)
0016.00 D  CPFID                         7A   OVERLAY(INFDS:40)
0017.00 D  PGMID                        10A   OVERLAY(INFDS:334)
0018.00 D  EXCP_ID                       4A   OVERLAY(INFDS:171)
0019.00 D  EXCP_DATA                    80A   OVERLAY(INFDS:91)
0020.00 D  PROC_MOD                     10A   OVERLAY(INFDS:344)
0021.00
0022.00 D BEG_IMG         C                   CONST('<IMG SRC="')
0023.00 D END_IMG         C                   CONST('" WIDTH="36" HEIGHT="24"-
0024.00 D                                     ALIGN="ABSMIDDLE" -
0025.00 D                                     ONCLICK="IMAGECLICK(event,this)">
0026.00 D VALUE           S            512A
0027.00
0028.00 C                   EXSR      SFLCLR
0029.00 C                   EXSR      READ
0030.00 C                   Z-ADD     1             TOPRRN
0031.00 C*----------------------------------------------------
0032.00 C     DSPLY         TAG
0033.00 C                   WRITE     DSPEND01
0034.00 C                   SETON                                        4142
0035.00 C                   EXFMT     SFCTL01
0036.00 C                   SETOFF                                       4142
0037.00 C*----------------------------------------------------
0038.00 C                   SETOFF                                       99
0039.00 C*( CF03 )- 終了
0040.00 C     *IN03         IFEQ      *ON
0041.00 C                   SETON                                        LR
0042.00 C                   RETURN
0043.00 C                   END
0044.00 C*( 実行キー )
0045.00 C                   GOTO      DSPLY
0046.00 C*****************************************************
0047.00 C     *INZSR        BEGSR
0048.00 C*****************************************************
0049.00 C     NUM_COLS      IFNE      132
0050.00 C     'DSPSIZ ERR'  DSPLY                   ANS               1
0051.00 C                   ENDIF
0052.00 C*( U8: HTML の表示 )
0053.00 C   U8              SETON                                        0888
0054.00 C*( 引用符 )
0055.00 C                   BITOFF    '06'          QUOT              1
0056.00 C                   BITON     '123457'      QUOT
0057.00 C                   ENDSR
0058.00 C*****************************************************
0059.00 C     READ          BEGSR
0060.00 C*****************************************************
0061.00 C     1             DO        *HIVAL        RRN1              4 0
0062.00 C                   SETOFF                                       50
0063.00 C                   READ      BHZAIKO                                50
0064.00 C   50              LEAVE
0065.00 C                   MOVE      RRN1          GYO
0066.00 C                   SETOFF                                       99
0067.00 C     BZBHCD        CHAIN     BUHINM                             99
0068.00 C*   画像イメージの追加
0069.00 C                   EXSR      ADD_IMAGE
0070.00 C*
0071.00 C*----------------------------------------------------+
0072.00 C                   WRITE     SFREC01
0073.00 C*----------------------------------------------------+
0074.00 C                   END
0075.00 C                   ENDSR
0076.00 C*****************************************************
0077.00 C     ADD_IMAGE     BEGSR
0078.00 C*****************************************************
0079.00 C                   SETOFF                                       99
0080.00 C     BZBHCD        CHAIN     BHIMAGE                            99
0081.00 C     *IN99         IFEQ      *OFF
0082.00 C     QUOT          CAT(P)    BEG_IMG:0     VALUE
0083.00 C                   CAT       BMIMAGE:0     VALUE
0084.00 C                   CAT       END_IMG:0     VALUE
0085.00 C                   CAT       QUOT:0        VALUE
0086.00 C                   CAT       X'00':0       VALUE
0087.00 C                   MOVEL(P)  VALUE         IMGTAG
0088.00 C                   END
0089.00 C                   ENDSR
0090.00 C*****************************************************
0091.00 C     SFLCLR        BEGSR
0092.00 C*****************************************************
0093.00 C*----------------------------------------------------+
0094.00 C                   SETON                                        44
0095.00 C                   WRITE     SFCTL01
0096.00 C                   SETOFF                                       44
0097.00 C*----------------------------------------------------+
0098.00 C                   ENDSR
0099.00 C******************************************************
0100.00 C     *PSSR         BEGSR
0101.00 C******************************************************
0102.00 C     'MSGID='      CAT(P)    PGMID:0       DSP40            40
0103.00 C     DSP40         DSPLY                   ANS               1
0104.00 C                   ENDSR     '*CANCL'
【 実行結果の画面 】(AutoWeb)