H DATEDIT(*YMD/)
**************************************************************************
*使用ファイルの定義
**************************************************************************
*<<商品マスター>>
FSYOHIN IF E K DISK PREFIX(XX) USROPN
**************************************************************************
*データ構造
**************************************************************************
*<< PROGRAM DATA STRUCTURE >>
D SDS
Dproc_name *PROC
*<< WEB CONTROLL >>
D cur_dsp S 3 INZ
*<< PAGING CONTROLL >>
D pag_mod S 6 INZ
* OPNQRY
D qry_file S 10 INZ('SYOHIN ')
D qry_slt S 500 INZ
D qry_kfld S 200 INZ
D qry_opt S 4 INZ('*ALL')
* CMDEXEC
D qcmd_str S 1000 INZ
D qcmd_len S 15 5 INZ(500)
* WORK
D w_str S 30 INZ
**************************************************************************
*WEBツールの定義
**************************************************************************
*<<初期処理>>
D #IWIN PR 1 EXTPROC('#IWIN')
D 10 value
D sts_in S 1 INZ
D pgm_id S 10 INZ
*<<変数値獲得>>
D #IWVAL PR 1000 EXTPROC('#IWVAL')
D 32 const
D get_nam S 32 INZ
D get_val S 1000 INZ
*<<変数値セット>>
D #IWSET PR 1 EXTPROC('#IWSET')
D 32 const
D 1000 value
D sts_set S 1
D set_nam S 32 INZ
D set_val S 1000 INZ
*<<出力処理>>
D #IWOUT PR 1 EXTPROC('#IWOUT')
D 10 const
D 10 const
D 10 value
D sts_out S 1
D out_lib S 10 INZ
D out_fil S 10 INZ
D out_mbr S 10 INZ
*
D out_mbr1 S 10 INZ('SP0120H1 ')
D out_mbr2 S 10 INZ('SP0120H2 ')
D out_mbr3 S 10 INZ('SP0120H3 ')
D out_mbr4 S 10 INZ('SP0120H4 ')
**************************************************************************
*外部プロシージャの定義
**************************************************************************
*<<文字列数値変換>>
D #CHR2NUM PR 31 EXTPROC('#CHR2NUM')
D 50 value
D 2 0 const
D 2 0 const
*
D cnv_str S 50 INZ
D dec_len S 2 0 INZ
D dec_plen S 2 0 INZ
D DS
D dec_str 1 31
D d_minus 1 1
D d_numeric 2 31
**************************************************************************
*KEYリスト
**************************************************************************
*<<商品マスター>>
C K@01 KLIST
C KFLD W@HINCOD
**************************************************************************
*メイン
**************************************************************************
*<<初期処理>>
C EXSR INZPRC
*<<メイン処理>>
C SELECT
************************************************ ****
*条件入力画面表示
************************************************ ****
C WHEN cur_dsp = 'TOP'
*<<条件入力画面HTML指定>>
C EVAL out_mbr = out_mbr1
*<< PAGING CONTROLL >>
C MOVEL(P) '*BEGIN' set_val
C EVAL sts_set = #IWSET('pag_mod':set_val)
************************************************
*一覧画面表示
************************************************
C WHEN cur_dsp = 'LST'
*<<条件入力情報の獲得>>
C EXSR GETSEL
*<<獲得情報のチェック>>
C EXSR GETCHK
*<<OPNQRYF>>
C EXSR OPNQRY
*<<条件入力情報のセット>>
C EXSR SETSEL
*<<明細表示画面HTML指定>>
C EVAL out_mbr = out_mbr2
************************************************
*詳細画面表示
************************************************
C WHEN cur_dsp = 'DTL'
*<<キー情報の獲得>>
C EXSR GETKEY
*<<データベースの処理>>
C OPEN SYOHIN
C K@01 CHAIN SYOHINR 90
C CLOSE SYOHIN
*<<データが存在する時、明細画面表示>>
C IF *IN90 = *OFF
*<<キー情報のセット>>
C EXSR SETKEY
*<<詳細情報のセット>>
C EXSR SETDTL
*<<詳細表示画面HTML指定>>
C EVAL out_mbr = out_mbr3
C ENDIF
*<<データが存在しない時、エラー画面表示>>
C IF *IN90 = *ON
C EVAL out_mbr = out_mbr4
C ENDIF
C ENDSL
************************************************ ****
*HTML出力処理
************************************************ ****
C EVAL sts_out = #IWOUT('CGISAMPLE':'CGISAMPLE':
C out_mbr)
*CLOF
C EVAL qcmd_str='CLOF ' + qry_file
C EXSR CMDEXE
*<<終了処理>>
C SETON LR
C RETURN
**************************************************************************
*初期処理
**************************************************************************
C INZPRC BEGSR
*<<変数の定義>>
* KEY
C *LIKE DEFINE XXHINCOD W@HINCOD
*選択範囲
C *LIKE DEFINE XXHINCOD W@HINCODF
C *LIKE DEFINE XXHINCOD W@HINCODT
*<< WEB OPERATION INITIALIZE >>
C EVAL pgm_id = proc_name
C EVAL sts_in = #IWIN(pgm_id)
*<<画面モードの獲得>>
C EVAL cur_dsp = #IWVAL('cur_dsp')
*画面モード初期値= 'TOP'
C IF cur_dsp = *BLANK
C EVAL cur_dsp = 'TOP'
C ENDIF
*
C ENDSR
**************************************************************************
*選択条件入力情報の獲得
**************************************************************************
C GETSEL BEGSR
*選択範囲(FROM-TO)
*<<商品コード>> FROM
C EVAL W@HINCODF = #IWVAL('XXHINCOD1')
C IF (W@HINCODF = *BLANK) OR
C (%TRIM(W@HINCODF) = '*BEGIN')
C MOVEL(P) '*BEGIN' W@HINCODF
C ENDIF
*<<商品コード>> TO
C EVAL W@HINCODT = #IWVAL('XXHINCOD2')
C IF (W@HINCODT = *BLANK) OR
C (%TRIM(W@HINCODT) = '*END')
C MOVEL(P) '*END' W@HINCODT
C ENDIF
*
C ENDSR
**************************************************************************
*獲得情報のチェック
**************************************************************************
C GETCHK BEGSR
*<<獲得情報に関するチェック・ロジックは、>>
*<<ここに組み込んでください。 >>
*
C ENDSR
**************************************************************************
*選択条件のセット
**************************************************************************
C SETSEL BEGSR
*選択範囲(FROM-TO)
*<<商品コード>> FROM
C EVAL sts_set = #IWSET('XXHINCOD1':
C %TRIM(W@HINCODF))
*<<商品コード>> TO
C EVAL sts_set = #IWSET('XXHINCOD2':
C %TRIM(W@HINCODT))
*
C ENDSR
**************************************************************************
*キー情報の獲得
**************************************************************************
C GETKEY BEGSR
*<<商品コード>>
C EVAL W@HINCOD = #IWVAL('XXHINCOD')
*
C ENDSR
**************************************************************************
*キー情報のセット処理
**************************************************************************
C SETKEY BEGSR
*<<商品コード>>
C EVAL set_val = %TRIM(W@HINCOD)
C EVAL sts_set = #IWSET('XXHINCOD':set_val)
*
C ENDSR
**************************************************************************
*明細情報のセット処理
**************************************************************************
C SETDTL BEGSR
*明細表示項目
*<<商品コード>>
C EVAL set_val = %TRIM(XXHINCOD)
C EVAL sts_set = #IWSET('XXHINCOD':set_val)
*<<メーカー>>
C EVAL set_val = %TRIM(XXMAKER)
C EVAL sts_set = #IWSET('XXMAKER':set_val)
*<<品種>>
C EVAL set_val = %TRIM(XXHINSYU)
C EVAL sts_set = #IWSET('XXHINSYU':set_val)
*<<品名>>
C EVAL set_val = %TRIM(XXHINMEI)
C EVAL sts_set = #IWSET('XXHINMEI':set_val)
*<<売単価>>
C EVAL set_val = %TRIM(%EDITC(XXUTANKA:'L'))
C EVAL sts_set = #IWSET('XXUTANKA':set_val)
*<<仕入単価>>
C EVAL set_val = %TRIM(%EDITC(XXSTANKA:'L'))
C EVAL sts_set = #IWSET('XXSTANKA':set_val)
*<<在庫数>>
C EVAL set_val = %TRIM(%EDITC(XXZAIKO:'L'))
C EVAL sts_set = #IWSET('XXZAIKO':set_val)
*
C ENDSR
**************************************************************************
*OPNQRYF
**************************************************************************
C OPNQRY BEGSR
* QRYSLT STRING作成
*<<商品コード>> FROM
C IF %TRIM(W@HINCODF) <> '*BEGIN'
C IF qry_slt <> *BLANK
C EVAL qry_slt = %TRIM(qry_slt) + ' *AND '
C ENDIF
C EVAL qry_slt = %TRIM(qry_slt) + ' (' +
C 'HINCOD' + ' >= ''''' +
C %TRIM(W@HINCODF) + ''''')'
C ENDIF
*<<商品コード>> TO
C IF %TRIM(W@HINCODT) <> '*END'
C IF qry_slt <> *BLANK
C EVAL qry_slt = %TRIM(qry_slt) + ' *AND '
C ENDIF
C EVAL qry_slt = %TRIM(qry_slt) + ' (' +
C 'HINCOD' + ' <= ''''' +
C %TRIM(W@HINCODT) + ''''')'
C ENDIF
* KEY FILED
C EVAL qry_kfld = %TRIM(qry_kfld)
C + ' (HINCOD)'
C IF qry_kfld = *BLANK
C MOVEL(P) '*FILE' qry_kfld
C ENDIF
*CLOF
C EVAL qcmd_str='CLOF ' + qry_file
C EXSR CMDEXE
*OPNQRYF
* FILE
C EVAL qcmd_str = 'OPNQRYF'
C + ' FILE(' + %TRIM(qry_file) + ')'
* OPTION
C EVAL qcmd_str = %TRIM(qcmd_str)
C + ' OPTION(' + %TRIM(qry_opt) + ')'
* QRYSLT
C IF qry_slt <> *BLANK
C EVAL qcmd_str = %TRIM(qcmd_str)
C + ' QRYSLT('''
C + %TRIM(qry_slt) + ''')'
C ENDIF
* KEYFLD
C EVAL qcmd_str = %TRIM(qcmd_str)
C + ' KEYFLD('
C + %TRIM(qry_kfld) +')'
* SEQONLY
C EVAL qcmd_str = %TRIM(qcmd_str)
C + ' SEQONLY(*NO)'
C EXSR CMDEXE
*OVRDBF
C EVAL qcmd_str = 'OVRDBF '
C + %TRIM(qry_file)
C + ' '
C + %TRIM(qry_file)
C + ' SHARE(*YES)'
C EXSR CMDEXE
*
C ENDSR
**************************************************************************
*CMD実行
**************************************************************************
C CMDEXE BEGSR
*
C CALL 'QCMDEXC' 80
C PARM qcmd_str
C PARM qcmd_len
*
C CLEAR qcmd_str
*
C ENDSR