Z_FI_080 发票到期日查询

来源:互联网 发布:大数据经济新常态 编辑:程序博客网 时间:2024/04/28 01:43
 

*&---------------------------------------------------------------------*
*& Report  Z_FI_080
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  z_fi_080.

TABLES:vbrk,vbrp,lips,vbkd,kna1,knvk,vbak,likp.

TYPE-POOLS: slis.                          "这个类型组有很多ALV的自定义数据类型以及结构化数据类型
DATA:
  i_fieldcat_alv  TYPE slis_t_fieldcat_alv, "定义列标题(属性/信息)
  i_layout        TYPE slis_layout_alv,           "alv格式
  i_fieldcat      TYPE slis_fieldcat_alv,       "
  i_events        TYPE slis_t_event,              "alv事件
  w_events        LIKE LINE OF i_events,
  i_list_comments TYPE slis_t_listheader,  "alv表单标题区域设置
  w_list_comments LIKE LINE OF i_list_comments,
  w_repid         LIKE sy-repid.                   "当前程序

DATA: BEGIN OF h_itab OCCURS 0,
        vbeln     LIKE vbrp-vbeln,                            "开票凭证
        posnr     LIKE vbrp-posnr,
        vgbel     LIKE vbrp-vgbel,                            "参考凭证
        vgpos     LIKE vbrp-vgpos,                            "参考项目
        aubel     LIKE vbrp-aubel,                            "销售凭证
        vbeln1    LIKE vbak-vbeln,                            "销售凭证
        aupos     LIKE vbrp-aupos,                            "项目
        waerk     LIKE vbrk-waerk,                            "币别
*        waerk1    LIKE vbrk-waerk,                            "本位币
        kunrg     LIKE vbrk-kunrg,                            "客户 KUNNR
        erdat     LIKE vbrk-erdat,                            "发票日期
        kunnr     LIKE kna1-kunnr,
        name1     LIKE kna1-name1,                            "客户名称
        kurrf     LIKE vbrk-kurrf,                            "会计汇率
        netwr     LIKE vbrk-netwr,                            "金额(外币)
*        netwr1    LIKE vbrk-netwr,                            "金额( 本位币)
        bstnk     LIKE vbak-bstnk,                            "采购订单编号
        zterm     LIKE vbkd-zterm,                            "付款条件
        vbeln2    LIKE lips-vbeln,                            "交货单号
        posnr2    LIKE lips-posnr,                            "交货单行项目
        lfdat     LIKE likp-lfdat,                            "交货日期
        lfdat1    LIKE likp-lfdat,                            "发票到期日
      END OF h_itab.

DATA: dayx(2) TYPE c .

SELECTION-SCREEN BEGIN OF BLOCK sel WITH FRAME TITLE text-001.

PARAMETERS  pl_bukrs LIKE vbrk-bukrs OBLIGATORY MEMORY ID p_bukrs DEFAULT '1000'.
SELECT-OPTIONS pi_kunrg FOR vbrk-kunrg MEMORY ID rg."p_kunrg.
SELECT-OPTIONS pi_erdat FOR vbrk-erdat MEMORY ID p_erdat.
SELECT-OPTIONS pi_vbeln FOR vbrk-vbeln MEMORY ID p_vbeln.
SELECT-OPTIONS pi_aubel FOR vbak-vbeln MEMORY ID vbeln.

SELECTION-SCREEN END OF BLOCK sel.

SELECTION-SCREEN BEGIN OF BLOCK se2 WITH FRAME TITLE text-002.
PARAMETERS:pr_x TYPE i  DEFAULT '100'.
SELECTION-SCREEN END OF BLOCK se2 .

INITIALIZATION.

  SELECT SINGLE parva FROM usr05 INTO pl_bukrs WHERE  bname = sy-uname AND parid = 'EKO'.


START-OF-SELECTION.

  PERFORM getdata.
  PERFORM layout_build.
  PERFORM fields_build.
  PERFORM display_data.


END-OF-SELECTION.

*&---------------------------------------------------------------------*
*&      Form  GETDATA
*&---------------------------------------------------------------------*
FORM getdata .

  SELECT vbrp~vbeln vbrp~posnr vbrp~vgbel  vbrp~vgpos vbrp~aubel vbrp~aupos vbrk~waerk vbrk~kunrg vbrk~kurrf vbrk~netwr vbrk~erdat vbkd~zterm
    FROM vbrp
    INNER JOIN vbrk ON vbrp~vbeln = vbrk~vbeln
    INNER JOIN lips ON vbrp~vgbel = lips~vbeln AND vbrp~vgpos = lips~posnr
    INNER JOIN vbkd ON vbrp~aubel = vbkd~vbeln AND vbrp~aupos = vbkd~posnr
    UP TO pr_x ROWS
    INTO CORRESPONDING FIELDS OF TABLE h_itab" (h_itab-vbeln1,h_itab-posnr,h_itab-vgbel,h_itab-vgpos,h_itab-aubel,h_itab-aupos,h_itab-waerk,h_itab-kunrg,h_itab-kurrf,h_itab-netwr,h_itab-erdat,h_itab-zterm)
    WHERE vbrp~vbeln IN pi_vbeln
    AND vbrk~bukrs LIKE pl_bukrs
    AND vbrk~kunrg IN pi_kunrg
    AND vbrk~erdat IN pi_erdat
    AND vbrp~aubel IN pi_aubel
    AND vbrp~fkimg > 0
    ORDER BY vbrp~vbeln vbrp~posnr.

  LOOP AT h_itab.

    SELECT SINGLE name1 FROM kna1 INTO h_itab-name1 WHERE kunnr = h_itab-kunrg.                       "获取客户名称
    MOVE h_itab-kunrg TO h_itab-kunnr.
    MOVE h_itab-aubel TO h_itab-vbeln1.

    SELECT SINGLE bstnk FROM vbak INTO h_itab-bstnk WHERE vbeln = h_itab-aubel.                       "获取客户采购订单编号

    SELECT SINGLE vbeln lfdat FROM likp INTO (h_itab-vbeln2,h_itab-lfdat) WHERE vbeln = h_itab-vgbel. "获取销售单和交货日期

    IF h_itab-zterm+0(1) =  'i' OR h_itab-zterm+0(1) =  'I'.

      IF  h_itab-zterm+2(2) = 07.
        CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
          EXPORTING
            date      = h_itab-lfdat
            days      = 07
            months    = 0
            signum    = '+'
            years     = 0
          IMPORTING
            calc_date = h_itab-lfdat1.
      ENDIF.

      IF  h_itab-zterm+2(2) = 15.
        CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
          EXPORTING
            date      = h_itab-lfdat
            days      = 15
            months    = 0
            signum    = '+'
            years     = 0
          IMPORTING
            calc_date = h_itab-lfdat1.
      ENDIF.

      IF  h_itab-zterm+2(2) = 30.
        CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
          EXPORTING
            date      = h_itab-lfdat
            days      = 30
            months    = 0
            signum    = '+'
            years     = 0
          IMPORTING
            calc_date = h_itab-lfdat1.
      ENDIF.

      IF  h_itab-zterm+2(2) = 45.
        CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
          EXPORTING
            date      = h_itab-lfdat
            days      = 45
            months    = 0
            signum    = '+'
            years     = 0
          IMPORTING
            calc_date = h_itab-lfdat1.
      ENDIF.

      IF  h_itab-zterm+2(2) = 60.
        CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
          EXPORTING
            date      = h_itab-lfdat
            days      = 60
            months    = 0
            signum    = '+'
            years     = 0
          IMPORTING
            calc_date = h_itab-lfdat1.
      ENDIF.

      IF  h_itab-zterm+2(2) = 65.
        CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
          EXPORTING
            date      = h_itab-lfdat
            days      = 65
            months    = 0
            signum    = '+'
            years     = 0
          IMPORTING
            calc_date = h_itab-lfdat1.
      ENDIF.

      IF  h_itab-zterm+2(2) = 75.
        CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
          EXPORTING
            date      = h_itab-lfdat
            days      = 75
            months    = 0
            signum    = '+'
            years     = 0
          IMPORTING
            calc_date = h_itab-lfdat1.
      ENDIF.


      IF  h_itab-zterm+2(2) = 90.
        CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
          EXPORTING
            date      = h_itab-lfdat
            days      = 90
            months    = 0
            signum    = '+'
            years     = 0
          IMPORTING
            calc_date = h_itab-lfdat1.
      ENDIF.

    ENDIF.


    IF h_itab-zterm+0(1) =  'm' OR h_itab-zterm+0(1) =  'M'.  "月结

      IF  h_itab-zterm+2(2) = 30.
        CALL FUNCTION 'BKK_ADD_MONTH_TO_DATE'                 "获取下个月的今天
          EXPORTING
            months  = '+1'
            olddate = h_itab-lfdat
          IMPORTING
            newdate = h_itab-lfdat1.
      ENDIF.

      IF  h_itab-zterm+2(2) = 45.
        CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
          EXPORTING
            date      = h_itab-lfdat
            days      = 45
            months    = 0
            signum    = '+'
            years     = 0
          IMPORTING
            calc_date = h_itab-lfdat1.
      ENDIF.

      IF  h_itab-zterm+2(2) = 50.
        CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
          EXPORTING
            date      = h_itab-lfdat
            days      = 50
            months    = 0
            signum    = '+'
            years     = 0
          IMPORTING
            calc_date = h_itab-lfdat1.
      ENDIF.

      IF  h_itab-zterm+2(2) = 60.
        CALL FUNCTION 'BKK_ADD_MONTH_TO_DATE'                 "获取下个月的今天
          EXPORTING
            months  = '+2'
            olddate = h_itab-lfdat
          IMPORTING
            newdate = h_itab-lfdat1.
      ENDIF.

      IF  h_itab-zterm+2(2) = 65.
        CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
          EXPORTING
            date      = h_itab-lfdat
            days      = 65
            months    = 0
            signum    = '+'
            years     = 0
          IMPORTING
            calc_date = h_itab-lfdat1.
      ENDIF.

      IF  h_itab-zterm+2(2) = 70.
        CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
          EXPORTING
            date      = h_itab-lfdat
            days      = 70
            months    = 0
            signum    = '+'
            years     = 0
          IMPORTING
            calc_date = h_itab-lfdat1.
      ENDIF.

      IF  h_itab-zterm+2(2) = 75.
        CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
          EXPORTING
            date      = h_itab-lfdat
            days      = 75
            months    = 0
            signum    = '+'
            years     = 0
          IMPORTING
            calc_date = h_itab-lfdat1.
      ENDIF.

      IF  h_itab-zterm+2(2) = 90.
        CALL FUNCTION 'BKK_ADD_MONTH_TO_DATE'                 "获取下个月的今天
          EXPORTING
            months  = '+3'
            olddate = h_itab-lfdat
          IMPORTING
            newdate = h_itab-lfdat1.
      ENDIF.

      IF  h_itab-zterm+1(3) = 120.
        CALL FUNCTION 'BKK_ADD_MONTH_TO_DATE'                 "获取下个月的今天
          EXPORTING
            months  = '+4'
            olddate = h_itab-lfdat
          IMPORTING
            newdate = h_itab-lfdat1.
      ENDIF.


      CALL FUNCTION 'LAST_DAY_OF_MONTHS'                    "获得当月的最有一天
        EXPORTING
          day_in                  = h_itab-lfdat1
       IMPORTING
         last_day_of_month        = h_itab-lfdat1 .

    ENDIF.

    MODIFY h_itab.

  ENDLOOP.

ENDFORM.                    " GETDATA
*&---------------------------------------------------------------------*
*&      Form  LAYOUT_BUILD
*&---------------------------------------------------------------------*
FORM layout_build .
*  PERFORM EVENTS_BUILD.  "Create Alv Report Top-Buttom
  i_layout-zebra = 'X'.               "间隔颜色显示
  i_layout-detail_popup = 'X'.        "是否弹出详细信息窗口
*  i_layout-no_vline = ' '.            "这个用来设置列间隔线
*  i_layout-colwidth_optimize = 'X'.   "优化列宽选项是否设置
  i_layout-detail_initial_lines = 'X'.    "show also initial lines
  i_layout-detail_titlebar = '详细内容'.   "设置弹出窗口的标题栏
*  i_layout-f2code = '&ETA'.           "设置触发弹出详细信息窗口的功能码,这里是双击
*  i_layout-no_colhead = ' '.
*  i_layout-info_fieldname = 'COLOR'.
  w_repid = sy-repid.                  "程序为当前程序
  i_layout-info_fieldname = 'COLOR'.  "颜色值
ENDFORM.                    " LAYOUT_BUILD
*&---------------------------------------------------------------------*
*&      Form  FIELDS_BUILD
*&---------------------------------------------------------------------*
FORM fields_build .
  REFRESH i_fieldcat_alv.
  CLEAR i_fieldcat.
  DATA colnum TYPE i.

  colnum = colnum + 1.
  i_fieldcat-col_pos = colnum.
  i_fieldcat-fieldname = 'ERDAT'.
  i_fieldcat-seltext_s = '发票日期'.
  i_fieldcat-seltext_m = '发票日期'.
  i_fieldcat-seltext_l = '发票日期'.
  i_fieldcat-outputlen = 10.
*  i_fieldcat-hotspot = 'X'.  "设置热点区
  i_fieldcat-no_zero = 'X'.
  APPEND i_fieldcat TO i_fieldcat_alv.
  CLEAR i_fieldcat.

  colnum = colnum + 1.
  i_fieldcat-col_pos = colnum.
  i_fieldcat-fieldname = 'LFDAT'.
  i_fieldcat-seltext_s = '交货单日期'.
  i_fieldcat-seltext_m = '交货单日期'.
  i_fieldcat-seltext_l = '交货单日期'.
  i_fieldcat-outputlen = 10.
  i_fieldcat-no_zero = 'X'.
  APPEND i_fieldcat TO i_fieldcat_alv.
  CLEAR i_fieldcat.

  colnum = colnum + 1.
  i_fieldcat-col_pos = colnum.
  i_fieldcat-fieldname = 'ZTERM'.
  i_fieldcat-seltext_s = '付款条件'.
  i_fieldcat-seltext_m = '付款条件'.
  i_fieldcat-seltext_l = '付款条件'.
  i_fieldcat-outputlen = 8.
  i_fieldcat-no_zero = 'X'.
  APPEND i_fieldcat TO i_fieldcat_alv.
  CLEAR i_fieldcat.

  colnum = colnum + 1.
  i_fieldcat-col_pos = colnum.
  i_fieldcat-fieldname = 'LFDAT1'.
  i_fieldcat-seltext_s = '发票到期日'.
  i_fieldcat-seltext_m = '发票到期日'.
  i_fieldcat-seltext_l = '发票到期日'.
  i_fieldcat-outputlen = 10.
  i_fieldcat-no_zero = 'X'.
  APPEND i_fieldcat TO i_fieldcat_alv.
  CLEAR i_fieldcat.


  colnum = colnum + 1.
  i_fieldcat-col_pos = colnum.
  i_fieldcat-fieldname = 'VBELN'.
  i_fieldcat-seltext_s = '发票号码'.
  i_fieldcat-seltext_m = '发票号码'.
  i_fieldcat-seltext_l = '发票号码'.
  i_fieldcat-outputlen = 12.
  i_fieldcat-lzero = 'X'.  "
  i_fieldcat-no_zero = 'X'.
*  i_fieldcat-hotspot = 'X'.  "设置热点区
  i_fieldcat-key = 'X'.     "
*  i_fieldcat-emphasize = 'C210'.
  APPEND i_fieldcat TO i_fieldcat_alv.
  CLEAR i_fieldcat.

  colnum = colnum + 1.
  i_fieldcat-col_pos = colnum.
  i_fieldcat-fieldname = 'POSNR'.
  i_fieldcat-seltext_s = '发票行项目'.
  i_fieldcat-seltext_m = '发票行项目'.
  i_fieldcat-seltext_l = '发票行项目'.
  i_fieldcat-outputlen = 9.
  i_fieldcat-no_zero = 'X'.
  APPEND i_fieldcat TO i_fieldcat_alv.
  CLEAR i_fieldcat.

  colnum = colnum + 1.
  i_fieldcat-col_pos = colnum.
  i_fieldcat-fieldname = 'KUNRG'.
  i_fieldcat-seltext_s = '客户编号'.
  i_fieldcat-seltext_m = '客户编号'.
  i_fieldcat-seltext_l = '客户编号'.
  i_fieldcat-outputlen = 10.
*  i_fieldcat-hotspot = 'X'.  "设置热点区
  i_fieldcat-no_zero = 'X'.
  APPEND i_fieldcat TO i_fieldcat_alv.
  CLEAR i_fieldcat.

  colnum = colnum + 1.
  i_fieldcat-col_pos = colnum.
  i_fieldcat-fieldname = 'NAME1'.
  i_fieldcat-seltext_s = '客户名称'.
  i_fieldcat-seltext_m = '客户名称'.
  i_fieldcat-seltext_l = '客户名称'.
  i_fieldcat-outputlen = 15.
  i_fieldcat-no_zero = 'X'.
  APPEND i_fieldcat TO i_fieldcat_alv.
  CLEAR i_fieldcat.

  colnum = colnum + 1.
  i_fieldcat-col_pos = colnum.
  i_fieldcat-fieldname = 'BSTNK'.
  i_fieldcat-seltext_s = '客户PO'.
  i_fieldcat-seltext_m = '客户PO'.
  i_fieldcat-seltext_l = '客户PO'.
  i_fieldcat-outputlen = 15.
  i_fieldcat-no_zero = 'X'.
  APPEND i_fieldcat TO i_fieldcat_alv.
  CLEAR i_fieldcat.

  colnum = colnum + 1.
  i_fieldcat-col_pos = colnum.
  i_fieldcat-fieldname = 'NETWR'.
  i_fieldcat-seltext_s = '金额'.
  i_fieldcat-seltext_m = '金额'.
  i_fieldcat-seltext_l = '金额'.
  i_fieldcat-outputlen = 10.
  i_fieldcat-no_zero = 'X'.
  APPEND i_fieldcat TO i_fieldcat_alv.
  CLEAR i_fieldcat.

  colnum = colnum + 1.
  i_fieldcat-col_pos = colnum.
  i_fieldcat-fieldname = 'WAERK'.
  i_fieldcat-seltext_s = '币别(销售单)'.
  i_fieldcat-seltext_m = '币别(销售单)'.
  i_fieldcat-seltext_l = '币别(销售单)'.
  i_fieldcat-outputlen = 10.
  i_fieldcat-no_zero = 'X'.
  APPEND i_fieldcat TO i_fieldcat_alv.
  CLEAR i_fieldcat.

  colnum = colnum + 1.
  i_fieldcat-col_pos = colnum.
  i_fieldcat-fieldname = 'AUBEL'.
  i_fieldcat-seltext_s = '销售单号'.
  i_fieldcat-seltext_m = '销售单号'.
  i_fieldcat-seltext_l = '销售单号'.
  i_fieldcat-outputlen = 10.
  i_fieldcat-no_zero = 'X'.
*  i_fieldcat-hotspot = 'X'.  "设置热点区
  APPEND i_fieldcat TO i_fieldcat_alv.
  CLEAR i_fieldcat.

  colnum = colnum + 1.
  i_fieldcat-col_pos = colnum.
  i_fieldcat-fieldname = 'AUPOS'.
  i_fieldcat-seltext_s = '销售行项目'.
  i_fieldcat-seltext_m = '销售行项目'.
  i_fieldcat-seltext_l = '销售行项目'.
  i_fieldcat-outputlen = 10.
  i_fieldcat-no_zero = 'X'.
  APPEND i_fieldcat TO i_fieldcat_alv.
  CLEAR i_fieldcat.

ENDFORM.                    " FIELDS_BUILD
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_DATA
*&---------------------------------------------------------------------*
FORM display_data .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
     i_callback_user_command           = 'USER_COMMAND'                               "用户触发事件
*     i_callback_pf_status_set          = 'PF_STATUS_SET'(001)                        "调用用户事件和按钮事件
     i_callback_program                = w_repid                                      "当前程序
*     i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'"定义抬头
     is_layout                         = i_layout                                     "子函数layout_build填充的格式定义
     it_fieldcat                       = i_fieldcat_alv[]                             "子函数fields填充的各列
     it_events                         = i_events[]
*     i_grid_title                      = '  交货单清单(销售)  '
     i_save                            = 'A'                                          "保存变式
    TABLES
      t_outtab                          = h_itab.                                       "假设数据都在itab内表中

ENDFORM.                    " DISPLAY_DATA
*&---------------------------------------------------------------------*
*&      Form  events_build
*&---------------------------------------------------------------------*
FORM events_build .
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
      i_list_type = 0
    IMPORTING
      et_events   = i_events.

  READ TABLE i_events WITH KEY name = 'TOP_OF_PAGE'
                      INTO w_events.
  IF sy-subrc = 0.
    MOVE 'ALV_TOP_OF_PAGE' TO w_events-form.
    MODIFY i_events FROM w_events INDEX sy-tabix.
  ENDIF.

  READ TABLE i_events INTO w_events WITH KEY name = 'USER_COMMAND'.
  IF sy-subrc EQ 0.
    w_events-name = 'USER_COMMAND'.
    MODIFY i_events FROM w_events INDEX sy-tabix.
  ENDIF.

  READ TABLE i_events WITH KEY name = 'END_OF_LIST'"slis_ev_end_of_page
                      INTO w_events.
  IF sy-subrc = 0.
    MOVE 'ALV_END_OF_LIST' TO w_events-form.
    MODIFY i_events FROM w_events INDEX sy-tabix.
  ENDIF.

ENDFORM.                    " events_build
*&---------------------------------------------------------------------*
*&      Form  alv_top_of_page
*&---------------------------------------------------------------------*
FORM alv_top_of_page.
*
*  CLEAR: i_list_comments.
*
*  w_list_comments-typ = 'S'.
*  w_list_comments-key = '交货单状态:'.
**  w_list_comments-info = name1 .
*  APPEND w_list_comments TO i_list_comments.
*  CLEAR w_list_comments.
*
*
*  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
*    EXPORTING
*      it_list_commentary = i_list_comments
*      i_logo             = 'ENJOYSAP_LOGO' "标题图标.
*      i_end_of_list_grid = 'X'.
**      i_logo             = 'ENJOYSAP_LOGO'.    "标题图标

ENDFORM.                    "alv_top_of_page
*&---------------------------------------------------------------------*
*&      Form  alv_end_of_list
*&---------------------------------------------------------------------*
FORM alv_end_of_list.

*  CLEAR: i_list_comments.
*  w_list_comments-typ = 'S'.
*  w_list_comments-info = '制作单:SAP部'.
*  APPEND w_list_comments TO i_list_comments.
*  CLEAR w_list_comments.
*
*
*  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
*    EXPORTING
*      it_list_commentary = i_list_comments
*      i_logo             = 'ENJOYSAP_LOGO' "标题图标
*      i_end_of_list_grid = 'X'.
ENDFORM.                    "alv_end_of_list
*&---------------------------------------------------------------------*
*&      Form  user_command
*&---------------------------------------------------------------------*
FORM user_command USING i_ucomm LIKE sy-ucomm
                        is_selfield TYPE slis_selfield.
*  CASE i_ucomm.
**    WHEN '&IC1'.
**      DATA pt_type(30) TYPE c.
**      CASE is_selfield-fieldname.
**        WHEN 'KUNRG'.
**          READ TABLE h_itab INDEX is_selfield-tabindex.
**          IF sy-subrc EQ 0.
**            SET PARAMETER ID 'RG' FIELD h_itab-kunnr.
**            CALL TRANSACTION 'FBL5N' AND SKIP FIRST SCREEN.
**          ENDIF.
**      ENDCASE.
**  ENDCASE.
*    WHEN '&IC1'.
*      DATA pt_type(30) TYPE c.
*      CASE is_selfield-fieldname.
*        WHEN 'AUBEL'.
*          READ TABLE h_itab INDEX is_selfield-tabindex.
*          IF sy-subrc EQ 0.
*            SET PARAMETER ID 'VBELN2' FIELD h_itab-vbeln1.
*            CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
*          ENDIF.
*      ENDCASE.
*  ENDCASE.
ENDFORM. "user_command