弹出对话框 用户输入值(FM)

来源:互联网 发布:mac破解软件首发论坛 编辑:程序博客网 时间:2024/06/05 10:46

文章 转自 http://blog.csdn.net/liangziyisheng/article/details/7513546

Function module 'POPUP_GET_VALUES'允许用户在对话框中输入值,且看实例

TYPES:ty_t_sval TYPE STANDARD TABLE OF sval.
DATA: gv_ret_code(5)TYPE c,
      gt_flds TYPE ty_t_sval.

CONSTANTS: cn_dlg_tit(10)TYPE c VALUE'HELLO!'.

START-OF-SELECTION.
* set dialog structure attributes
  PERFORM frm_set_tab_attr CHANGINGgt_flds.
* pop dialog to ask user input data
  PERFORM frm_pop_dialog CHANGING gt_flds gv_ret_code.


END-OF-SELECTION.
  IF gv_ret_code IS INITIAL.
*   output result of input by user
    PERFORM frm_output_rslt USING gt_flds.
  ENDIF.

*&---------------------------------------------------------------------*
*&      Form  FRM_SET_TAB_ATTR
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_GT_FLDS  text
*----------------------------------------------------------------------*
FORM frm_set_tab_attr  CHANGING p_gt_flds TYPE ty_t_sval.

  DATA: lw_sval TYPE sval.
* set each field's attribute
  DEFINE set_fld_attr.
    lw_sval-tabname = 'MAKT'.
    lw_sval-fieldname = &1.
    append lw_sval to p_gt_flds.
    clear lw_sval.
  END-OF-DEFINITION.

  set_fld_attr: 'MATNR', 'SPRAS', 'MAKTX'.

ENDFORM.                    " FRM_SET_TAB_ATTR
*&---------------------------------------------------------------------*
*&      Form  FRM_POP_DIALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_GT_FLDS  text
*      <--P_GV_RET_CODE  text
*----------------------------------------------------------------------*
FORM frm_pop_dialog  CHANGING p_gt_flds TYPE ty_t_sval
                              p_gv_ret_code TYPE c.

  CALL FUNCTION 'POPUP_GET_VALUES'
    EXPORTING
      popup_title     = cn_dlg_tit
    IMPORTING
      returncode      = p_gv_ret_code
    TABLES
      fields          = p_gt_flds
    EXCEPTIONS
      error_in_fields = 1
      OTHERS          = 2.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgidTYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

ENDFORM.                    " FRM_POP_DIALOG
*&---------------------------------------------------------------------*
*&      Form  FRM_OUTPUT_RSLT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_GT_FLDS  text
*----------------------------------------------------------------------*
FORM frm_output_rslt  USING    p_gt_flds TYPE ty_t_sval.

  DATA: lw_sval TYPE sval.

  LOOP AT p_gt_flds INTO lw_sval.
    WRITE:/ lw_sval-tabname, lw_sval-fieldname, lw_sval-value.
    ULINE.
  ENDLOOP.

ENDFORM.                    " FRM_OUTPUT_RSLT

 

原创粉丝点击