帐票1

来源:互联网 发布:中国软件协会 编辑:程序博客网 时间:2024/05/15 23:52

*----------------------------------------------------------------------*
* Program ID   :  Z_TEST_ZHANG                                         *
* Program Name : 受注伝票一覧                                          *
*----------------------------------------------------------------------*
* Date Created : 2007/09/10                                            *
* Created By   : 張                                             *
* Description  : 受注伝票一覧                     *
*              : ・受注-ヘッダテーブル(ZBUSB_T5010)                  *
*              : ・受注-明細POSテーブル(ZBUSB_T5020)                  *
*              : ・受注-明細BUNテーブ  (ZBUSB_T5030)                  *
*----------------------------------------------------------------------*
* Modification :                                                       *
*   Date Modified  Modified By  Transport Request  Description         *
*   <YYYY/MM/DD>   <更新者>     <移送依頼番号>  <更新理由/内容>     *
*----------------------------------------------------------------------*

REPORT  Z_TEST_ZHANG NO STANDARD PAGE HEADING
LINE-SIZE 300
LINE-COUNT 300.
*契約形態のダウンリストの定義
TYPE-POOLS: VRM .
TABLES:ZBUSB_T5010.
*----------------------------------------------------------------------*
* TYPES      * データ型宣言
*----------------------------------------------------------------------*

*レポート用項目構造
TYPES:
BEGIN OF strt_obj_data,
  jc_dp_no    TYPE ZBUSB_T5010-jc_dp_no,       "受注伝票番号
  od_no    TYPE ZBUSB_T5010-od_no,             "オーダNO
  sod_hk_dt    TYPE ZBUSB_T5010-sod_hk_dt,     "主オーダ発行年月日
  ke_no    TYPE ZBUSB_T5010-ke_no,             "契約NO
  ss_kky_cd    TYPE ZBUSB_T5010-ss_kky_cd,     "最終顧客コード
  hb_kei_cd    TYPE ZBUSB_T5010-hb_kei_cd,     "販売形態
  ke_kei_cd    TYPE ZBUSB_T5010-ke_kei_cd,     "契約形態コード
  ps_no    TYPE ZBUSB_T5020-ps_no,             "POSNO
  km_cd    TYPE ZBUSB_T5020-km_cd,             "型名
  hin_sj    TYPE ZBUSB_T5020-hin_sj,           "品名
  ps_oi_no    TYPE ZBUSB_T5030-ps_oi_no,       "POS追番
  jc_sr    TYPE ZBUSB_T5030-jc_sr,             "受注数量
  ke_gk    TYPE ZBUSB_T5030-ke_gk,             "契約合価
  nk_frm_dt    TYPE ZBUSB_T5030-nk_frm_dt,     "納期From
  nk_to_dt    TYPE ZBUSB_T5030-nk_to_dt,       "納期to
  flg(30) type c,  "後続あるかどうか
END OF strt_obj_data.

*ZBUSB_T5030のデータ構造
TYPES:
BEGIN OF strt_obj_data1,
  jc_dp_no    TYPE ZBUSB_T5030-jc_dp_no,     "受注伝票番号
  ps_oi_no    TYPE ZBUSB_T5030-ps_oi_no,     "POS追番
  jc_sr    TYPE ZBUSB_T5030-jc_sr,           "受注数量
  ke_gk    TYPE ZBUSB_T5030-ke_gk,           "契約合価
  nk_frm_dt    TYPE ZBUSB_T5030-nk_frm_dt,   "納期From
  nk_to_dt    TYPE ZBUSB_T5030-nk_to_dt,     "納期to
END OF strt_obj_data1.


*----------------------------------------------------------------------*
* DATA       * 内部テーブル宣言
*----------------------------------------------------------------------*
DATA: obj_data type table of strt_obj_data.  "ZBUSB_T5010とZBUSB_T5020のデータ
DATA: sy_data type table of strt_obj_data.  "最終のデータ


*----------------------------------------------------------------------*
* DATA       * 変数宣言
*----------------------------------------------------------------------*

DATA: NAME TYPE VRM_ID ,
      LIST TYPE VRM_VALUES ,
      VALUE LIKE LINE OF LIST .

DATA:  t_answer,             "ポップアップの戻り値
cond(72) TYPE C,
ITAB_ERR LIKE TABLE OF cond. "エラーメッセージ


*一時比較用変数
DATA:
jcp_no_temp  TYPE ZBUSB_T5010-jc_dp_no,           "受注伝票番号
od_no_temp TYPE ZBUSB_T5010-od_no,                "オーダNO
sod_hk_dt_temp    TYPE ZBUSB_T5010-sod_hk_dt,     "主オーダ発行年月日
ke_no_temp    TYPE ZBUSB_T5010-ke_no,             "契約NO
ps_no_temp    TYPE ZBUSB_T5020-ps_no,             "POSNO
ps_oi_no_temp    TYPE ZBUSB_T5030-ps_oi_no.       "POS追番

DATA: ita_data1 TYPE strt_obj_data.               "ZBUSB_T5010とZBUSB_T5020のデータ
DATA: ita_data2 TYPE strt_obj_data1.              "ZBUSB_T5030のデータ

DATA: kouzoku(72) TYPE C.

*----------------------------------------------------------------------*
* CONSTANTS  * 定数宣言
*----------------------------------------------------------------------*
* ↓ ● <アプリチーム編集箇所> ● ↓ *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
* 使用するリテラル値を宣言する
CONSTANTS: CC_LIST_D(24) TYPE C
                       VALUE '買取/一括払い',
           CC_LIST_A(24) TYPE C
                       VALUE '月額払い/自社通常レンタル',
           CC_LIST_B(24) TYPE C
                       VALUE '自社3年定期レンタル',
           CC_LIST_C(24) TYPE C
                       VALUE '自社4年定期レンタル',
           CC_LIST_H(24) TYPE C
                       VALUE '第三者通常レンタル',
           CC_LIST_J(24) TYPE C
                       VALUE '第三者3年定期レンタル',
           CC_LIST_K(24) TYPE C
                       VALUE '第三者4年定期レンタル',
           CC_LIST_G(24) TYPE C
                       VALUE '全償却リース',
           CC_LIST_E(24) TYPE C
                       VALUE 'PL',
           CC_LIST_Q(24) TYPE C
                       VALUE '無償',

           CC_RADIO(24) TYPE C
                       VALUE 'X',

           CC_OUT_02(24) TYPE C
                       VALUE '受注伝票番号',
           CC_OUT_26(24) TYPE C
                       VALUE 'オーダNO',
           CC_OUT_57(24) TYPE C
                       VALUE '主オーダ発行年月日',
           CC_OUT_180(24) TYPE C
                       VALUE '契約NO',
           CC_OUT_214(24) TYPE C
                       VALUE '最終顧客コード',
           CC_OUT_239(24) TYPE C
                       VALUE '販売形態',
           CC_OUT_266(24) TYPE C
                       VALUE '契約形態コード',
           CC_OUT_15(24) TYPE C
                       VALUE 'POSNO',
           CC_OUT_41(24) TYPE C
                       VALUE '型名',
           CC_OUT_76(24) TYPE C
                       VALUE '品名',
           CC_OUT_357(24) TYPE C
                       VALUE 'POS追番',
           CC_OUT_201(24) TYPE C
                       VALUE '受注数量',
           CC_OUT_229(24) TYPE C
                       VALUE '契約合価',
           CC_OUT_254(24) TYPE C
                       VALUE '納期From',
           CC_OUT_280(10) TYPE C
                       VALUE '納期To',


           CC_KAKUNIN(24) TYPE C
                       VALUE '確認',
           CC_ZENKEN(24) TYPE C
                       VALUE '全件表示されますが',
           CC_YOROSI(24) TYPE C
                       VALUE 'よろしいですか?',
           CC_KOUZOKU(24) TYPE C
                       VALUE '後続有',
           CC_KZTITLE(24) TYPE C
                       VALUE '後続伝票有無',

           CC_TITLE(24) TYPE C
                       VALUE '受注伝票一覧',
           CC_ERR(24) TYPE C
                       VALUE 'エラー情報:',
           CC_ERR01(24) TYPE C
                       VALUE 'に副明細が存在しません。',
           CC_ERR02(24) TYPE C
                       VALUE 'にBUNデータが存在しません。'.

 

*----------------------------------------------------------------------*
* PARAMETERS * PARAMETERS宣言
*----------------------------------------------------------------------*

SELECTION-SCREEN BEGIN OF BLOCK BLOK1 WITH FRAME TITLE title.
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN POSITION 8.
PARAMETERS: p_tan RADIOBUTTON GROUP rad1.
SELECTION-SCREEN POSITION 2.
SELECTION-SCREEN COMMENT 12(8) TEXT-001.
SELECTION-SCREEN: END OF LINE.


SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN POSITION 8.
PARAMETERS: p_fuku RADIOBUTTON GROUP rad1.
SELECTION-SCREEN POSITION 2.
SELECTION-SCREEN COMMENT 12(12) TEXT-002.
SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN SKIP.
SELECTION-SCREEN COMMENT /3(13) TEXT-003.

SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
SELECTION-SCREEN COMMENT 3(16) TEXT-004.
SELECTION-SCREEN POSITION 28.
PARAMETERS: p_dp_no TYPE char128.
SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN SKIP.
SELECTION-SCREEN COMMENT /3(17) TEXT-005.

SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
SELECTION-SCREEN COMMENT 3(22) TEXT-006.
SELECTION-SCREEN POSITION 33.
SELECT-OPTIONS s_tr_dt FOR ZBUSB_T5010-CRDAT.
SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
SELECTION-SCREEN COMMENT 3(29) TEXT-007.
SELECTION-SCREEN POSITION 33.
SELECT-OPTIONS s_ko_tm FOR ZBUSB_T5010-AEDAT.
SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
SELECTION-SCREEN COMMENT 3(29) TEXT-008.
SELECTION-SCREEN POSITION 36.
PARAMETERS: p_od_no TYPE char16.
SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
SELECTION-SCREEN COMMENT 3(29) TEXT-009.
SELECTION-SCREEN POSITION 33.
SELECT-OPTIONS s_hk_dt FOR ZBUSB_T5010-SOD_HK_DT.
SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
SELECTION-SCREEN COMMENT 3(29) TEXT-010.
SELECTION-SCREEN POSITION 36.
PARAMETERS: P_LIST(20) TYPE C AS LISTBOX
                                  VISIBLE LENGTH 25.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN END OF BLOCK BLOK1.

*----------------------------------------------------------------------*
* INITIALIZATION        初期処理
*----------------------------------------------------------------------*

INITIALIZATION.
  title = CC_TITLE.

*----------------------------------------------------------------------*
* AT SELECTION-SCREEN  画面制御処理
*----------------------------------------------------------------------*

AT SELECTION-SCREEN OUTPUT .

  REFRESH LIST .
  VALUE-KEY = 'D' .
  VALUE-TEXT = CC_LIST_D .
  APPEND VALUE TO LIST .
  VALUE-KEY = 'A' .
  VALUE-TEXT = CC_LIST_A .
  APPEND VALUE TO LIST .
  VALUE-KEY = 'B' .
  VALUE-TEXT = CC_LIST_B .
  APPEND VALUE TO LIST .
  VALUE-KEY = 'C' .
  VALUE-TEXT = CC_LIST_C .
  APPEND VALUE TO LIST .
  VALUE-KEY = 'H' .
  VALUE-TEXT = CC_LIST_H .
  APPEND VALUE TO LIST .
  VALUE-KEY = 'J' .
  VALUE-TEXT = CC_LIST_J .
  APPEND VALUE TO LIST .
  VALUE-KEY = 'K' .
  VALUE-TEXT = CC_LIST_K .
  APPEND VALUE TO LIST .
  VALUE-KEY = 'G' .
  VALUE-TEXT = CC_LIST_G .
  APPEND VALUE TO LIST .
  VALUE-KEY = 'E' .
  VALUE-TEXT = CC_LIST_E .
  APPEND VALUE TO LIST .
  VALUE-KEY = 'Q' .
  VALUE-TEXT = CC_LIST_Q.
  APPEND VALUE TO LIST .
  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      ID     = 'P_LIST'
      VALUES = LIST.

*----------------------------------------------------------------------*
* START-OF-SELECTION   処理実行
*----------------------------------------------------------------------*

START-OF-SELECTION.
* 直接指定が選択されている
  IF p_tan = CC_RADIO .
    IF p_dp_no IS INITIAL.
      MESSAGE TEXT-011 TYPE 'I'.
    ELSE.
      PERFORM fm_selcect_tab.
    ENDIF.
  ENDIF.

* 複数選択指定が選択されている
  IF p_fuku = CC_RADIO .
      IF s_tr_dt IS INITIAL
        AND s_ko_tm IS INITIAL
        AND p_od_no IS INITIAL
        AND s_hk_dt IS INITIAL
        AND P_LIST IS INITIAL.
        CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
          EXPORTING
            TITEL          = CC_KAKUNIN
            TEXTLINE1      = CC_ZENKEN
            TEXTLINE2      = CC_YOROSI
            CANCEL_DISPLAY = SPACE
          IMPORTING
            ANSWER         = t_answer.
           IF t_answer <> 'J'.
           STOP.
           ENDIF.

      ENDIF.

          PERFORM fm_selcect_like.
          CLEAR t_answer.

  ENDIF.
* 明細BUNデータを取得
      REFRESH sy_data.
      LOOP AT obj_data INTO ita_data1.
        PERFORM fm_selcect_tab2.
      ENDLOOP.

* データある場合、伝票出力
   IF LINES( sy_data ) > 0.
      PERFORM fm_print.
   ENDIF.


*エラー情報出力用内部テーブル(ITAB_ERR)がブランクでない場合
*エラー情報を伝票一覧画面に表示する
   IF LINES( ITAB_ERR ) > 0.
   SKIP.
   WRITE:/ CC_ERR .
         LOOP AT ITAB_ERR INTO cond.
         WRITE:/ cond.
         ENDLOOP.

   ENDIF.
*----------------------------------------------------------------------*
* END-OF-SELECTION  終了処理
*----------------------------------------------------------------------*
AT LINE-SELECTION.
IF ita_data1-ps_no IS INITIAL AND ita_data1-od_no IS NOT INITIAL
AND ita_data1-flg <> CC_KOUZOKU.
      MESSAGE TEXT-013 TYPE 'I'.
ENDIF.

IF ita_data1-ps_no IS NOT INITIAL AND  ita_data1-flg <> CC_KOUZOKU.
      MESSAGE TEXT-013 TYPE 'I'.
ENDIF.

IF ita_data1-ps_no IS INITIAL AND ita_data1-od_no IS NOT INITIAL
AND ita_data1-flg = CC_KOUZOKU.
   SUBMIT Y_TEST_MORE
    WITH p_od_no = ita_data1-od_no
    WITH p_sod_dt = ita_data1-sod_hk_dt
    WITH p_tan = CC_RADIO
    AND RETURN.
ENDIF.
IF ita_data1-ps_no IS NOT INITIAL AND  ita_data1-flg = CC_KOUZOKU.
   SUBMIT Y_TEST_MORE
    WITH p_od_no = ita_data1-od_no
    WITH p_sod_dt = ita_data1-sod_hk_dt
    WITH p_ps_no = ita_data1-ps_no
    WITH p_fuku = CC_RADIO
   AND RETURN.
ENDIF.


*   GET CURSOR
*   SUBMIT Y_TEST_MORE
*    WITH p_dp_no = ita_data1-jc_dp_no
*    AND RETURN.
*  WRITE: ita_data1-jc_dp_no,ita_data1-ps_no,ita_data1-ps_oi_no.
  CLEAR: ita_data1-ps_no,ita_data1-flg,ita_data1-od_no,ita_data1-sod_hk_dt.
END-OF-SELECTION.
*----------------------------------------------------------------------*
* TOP-OF-PAGE ヘッダ出力処理 (TOP)
*----------------------------------------------------------------------*

TOP-OF-PAGE.
PRINT-CONTROL SIZE 15.

 


*&---------------------------------------------------------------------*
*&      Form  FM_SELECT_TAB
*&---------------------------------------------------------------------*
*       受注-ヘッダテーブルと明細POSテーブル
*       (ZBUSB_T5010とZBUSB_T5020)のデータ検索処理(直接指定)
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
FORM fm_selcect_tab.

  SELECT
    A~jc_dp_no
    B~od_no
    B~sod_hk_dt
    A~ke_no
    A~ss_kky_cd
    A~hb_kei_cd
    A~ke_kei_cd
    B~ps_no
    B~km_cd
    B~hin_sj
    FROM ZBUSB_T5010 AS A
    LEFT OUTER JOIN ZBUSB_T5020 AS B ON A~JC_DP_NO = B~JC_DP_NO
    AND A~OD_NO = B~OD_NO
    AND A~SOD_HK_DT = B~SOD_HK_DT
    INTO ita_data1
    WHERE A~JC_DP_NO = p_dp_no.
    IF ita_data1-od_no IS INITIAL
    AND ita_data1-SOD_HK_DT IS INITIAL.
*     受注-明細POSテーブルのデータない場合、エラーメッセージにセット、
      concatenate CC_OUT_02 ':' p_dp_no CC_ERR01 into cond.
      APPEND cond TO ITAB_ERR.
    ELSE.
*     受注-明細POSテーブルのデータある場合、出力テーブルにセットする。
      APPEND ita_data1 TO obj_data.
      CLEAR ita_data1.
    ENDIF.
  ENDSELECT.

*   受注-ヘッダテーブルにもデータない
  IF sy-subrc <> 0.
    MESSAGE TEXT-012 TYPE 'I'.
    STOP.
  ENDIF.

ENDFORM.                    "fm_selcect_tab

*&---------------------------------------------------------------------*
*&      Form  FM_SELECT_LIKE
*&---------------------------------------------------------------------*
*       受注-ヘッダテーブルと明細POSテーブル
*       (ZBUSB_T5010とZBUSB_T5020)のデータ検索処理(複数指定)
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
FORM fm_selcect_like.
 concatenate '%' p_od_no '%' into p_od_no.
 IF P_LIST IS INITIAL.
   P_LIST = '%'.
 ENDIF.

 SELECT
    A~jc_dp_no
    B~od_no
    B~sod_hk_dt
    A~ke_no
    A~ss_kky_cd
    A~hb_kei_cd
    A~ke_kei_cd
    B~ps_no
    B~km_cd
    B~hin_sj
    FROM ZBUSB_T5010 AS A
    LEFT OUTER JOIN ZBUSB_T5020 AS B ON A~JC_DP_NO = B~JC_DP_NO
    AND A~OD_NO = B~OD_NO
    AND A~SOD_HK_DT = B~SOD_HK_DT
    INTO ita_data1
    WHERE A~CRDAT IN s_tr_dt
    AND A~AEDAT IN s_ko_tm
    AND A~sod_hk_dt  IN s_hk_dt
    AND A~od_no LIKE p_od_no
    AND A~ke_kei_cd LIKE P_LIST.
    IF ita_data1-od_no IS INITIAL
    AND ita_data1-SOD_HK_DT IS INITIAL.
*     受注-明細POSテーブルのデータない場合、エラーメッセージにセット、
      concatenate CC_OUT_02 ':' ita_data1-jc_dp_no CC_ERR01 into cond.
      APPEND cond TO ITAB_ERR.
    ELSE.
*     受注-明細POSテーブルのデータある場合、出力テーブルにセットする。
      APPEND ita_data1 TO obj_data.
      CLEAR ita_data1.
    ENDIF.
  ENDSELECT.

*   受注-ヘッダテーブルにもデータない
  IF sy-subrc <> 0.
    MESSAGE TEXT-012 TYPE 'I'.
    STOP.
  ENDIF.

ENDFORM.                    "fm_selcect_like
*&---------------------------------------------------------------------*
*&      Form  FM_SELECT_TAB2
*&---------------------------------------------------------------------*
*       受注-明細BUNテーブ(ZBUSB_T5030)データ検索処理
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
FORM fm_selcect_tab2.
  SELECT
  C~jc_dp_no
  C~ps_oi_no
  C~jc_sr
  C~ke_gk
  C~nk_frm_dt
  C~nk_to_dt
  FROM ZBUSB_T5020 AS B
  LEFT OUTER JOIN ZBUSB_T5030 AS C ON B~JC_DP_NO = C~JC_DP_NO
  AND B~OD_NO = C~OD_NO
  AND B~SOD_HK_DT = C~SOD_HK_DT
  AND B~PS_NO = C~PS_NO
  INTO ita_data2
  WHERE B~OD_NO = ita_data1-OD_NO
  AND B~SOD_HK_DT = ita_data1-SOD_HK_DT
  AND B~PS_NO = ita_data1-PS_NO.

    ita_data1-ps_oi_no = ita_data2-ps_oi_no.
    ita_data1-jc_sr = ita_data2-jc_sr.
    ita_data1-ke_gk = ita_data2-ke_gk.
    ita_data1-nk_frm_dt = ita_data2-nk_frm_dt.
    ita_data1-nk_to_dt = ita_data2-nk_to_dt.

    IF ita_data1-ps_oi_no IS INITIAL
    OR ita_data2-jc_dp_no <> ita_data1-jc_dp_no.
*     受注-明細BUNテーブのデータない場合、エラーテーブルにセットする。
      concatenate CC_OUT_02 ':' ita_data1-jc_dp_no CC_OUT_15
      ':' ita_data1-PS_NO CC_ERR02 into cond.
      APPEND cond TO ITAB_ERR.
    ELSE.
*     受注-明細BUNテーブのデータある場合、出力テーブルにセットする。
      APPEND ita_data1 TO sy_data.
    ENDIF.
  ENDSELECT.

ENDFORM.                    "fm_selcect_tab2

*&---------------------------------------------------------------------*
*&      Form  FM_PRINT
*&---------------------------------------------------------------------*
*       伝票の出力
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*

FORM fm_print.


  WRITE  50 CC_TITLE HOTSPOT COLOR 5 INVERSE ON.
  ULINE AT /(290).

FORMAT COLOR COL_NEGATIVE.
WRITE:/01 SY-VLINE,
02 CC_OUT_02,
26 CC_OUT_26,
57 CC_OUT_57,
180 CC_OUT_180,
214 CC_OUT_214,
239 CC_OUT_239,
266 CC_OUT_266,
290 SY-VLINE.

FORMAT COLOR COL_TOTAL.
WRITE:/01 SY-VLINE,
02 CC_KZTITLE,
15 CC_OUT_15,
41 CC_OUT_41,
76 CC_OUT_76,
290 SY-VLINE.

FORMAT COLOR COL_HEADING.
WRITE:/01 SY-VLINE,
57 CC_OUT_357,
201 CC_OUT_201,
229 CC_OUT_229,
254 CC_OUT_254,
280 CC_OUT_280,
290 SY-VLINE.

FORMAT COLOR OFF.
   LOOP AT sy_data INTO ita_data1.
      IF ita_data1-jc_dp_no <> jcp_no_temp
      OR ita_data1-sod_hk_dt <> sod_hk_dt_temp
      OR  ita_data1-od_no <> od_no_temp.

        jcp_no_temp = ita_data1-jc_dp_no.
        sod_hk_dt_temp = ita_data1-sod_hk_dt.
        od_no_temp = ita_data1-od_no.
        CLEAR kouzoku.
        PERFORM fm_selcect_check.
        WRITE:/01 SY-VLINE,
        02 ita_data1-jc_dp_no,
        26 ita_data1-od_no,
        57 ita_data1-sod_hk_dt,
        180 ita_data1-ke_no,
        214 ita_data1-ss_kky_cd,
        239 ita_data1-hb_kei_cd,
        266 ita_data1-ke_kei_cd,
        290 SY-VLINE.
        CLEAR ps_no_temp.
        CLEAR ps_oi_no_temp.
        IF kouzoku = CC_KOUZOKU.
        ita_data1-flg = CC_KOUZOKU.
        ENDIF.
        HIDE:ita_data1-od_no,ita_data1-sod_hk_dt,ita_data1-flg.
        CLEAR kouzoku.
      ENDIF.

      IF ita_data1-jc_dp_no = jcp_no_temp
      AND ita_data1-sod_hk_dt = sod_hk_dt_temp
      AND ita_data1-od_no = od_no_temp
      AND ita_data1-ps_no <> ps_no_temp .

        ps_no_temp = ita_data1-ps_no.
        CLEAR kouzoku.
        PERFORM fm_selcect_check.
        CLEAR ps_oi_no_temp.
        WRITE:/01 SY-VLINE,
        02 kouzoku,
        15 ita_data1-ps_no,
        41 ita_data1-km_cd,
        76 ita_data1-hin_sj,
        290 SY-VLINE.
        CLEAR ita_data1-flg.
        IF kouzoku = CC_KOUZOKU.
        ita_data1-flg = CC_KOUZOKU.
        ENDIF.
        HIDE:ita_data1-od_no,ita_data1-sod_hk_dt,ita_data1-ps_no,ita_data1-flg.
        CLEAR kouzoku.
      ENDIF.

      IF ( ita_data1-ps_no = ps_no_temp AND ita_data1-od_no = od_no_temp )
      AND ita_data1-ps_oi_no <> ps_oi_no_temp.

        ps_oi_no_temp = ita_data1-ps_oi_no.
        WRITE:/01 SY-VLINE,
        57 ita_data1-ps_oi_no,
        201 ita_data1-jc_sr,
        229 ita_data1-ke_gk,
        254 ita_data1-nk_frm_dt,
        280 ita_data1-nk_to_dt,
        290 SY-VLINE.
      ENDIF.
      CLEAR ita_data1.
   ENDLOOP.

ULINE AT /(290).
ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FM_SELECT_LIKE
*&---------------------------------------------------------------------*
*       受注-ヘッダテーブルと明細POSテーブル
*       (ZBUSB_T5010とZBUSB_T5020)のデータ検索処理(複数指定)
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
FORM fm_selcect_check.
  SELECT
    A~od_no
    FROM ZBUSB_T5080 AS A
    LEFT OUTER JOIN ZBUSB_T5100 AS B ON A~OD_NO = B~OD_NO
    AND A~SOD_HK_DT = B~SOD_HK_DT AND B~ps_no = ita_data1-ps_no
    INTO ita_data1-od_no
    WHERE A~OD_NO = ita_data1-od_no AND A~SOD_HK_DT = ita_data1-sod_hk_dt .
  ENDSELECT.

*   物流現調-YDIテーブルにもデータない
  IF sy-subrc = 0.
  kouzoku = CC_KOUZOKU.
  ELSE.
  CLEAR kouzoku.
  ENDIF.

ENDFORM.                    "fm_selcect_check