zoukankan      html  css  js  c++  java
  • ALV模版1

    TYPE-POOLS:SLIS.
    DATA: t_fieldcat TYPE slis_t_fieldcat_alv,
    w_fieldcat TYPE slis_fieldcat_alv,
    w_layout TYPE slis_layout_alv,
    G_REPID TYPE SY-REPID VALUE SY-REPID,
    git_events TYPE slis_t_event,
    gd_printparams TYPE slis_print_alv,
    t_listheader TYPE slis_t_listheader.

    *&---------------------------------------------------------------------*
    *& 包括 ZCPPR_077_FORM
    *&---------------------------------------------------------------------*

    FORM F_INIT_LAYOUT .
    * GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
    W_LAYOUT-ZEBRA = 'X'.
    w_layout-colwidth_optimize = 'X'.
    w_layout-box_fieldname = 'BOX'.
    w_layout-info_fieldname = 'COLOR'.
    ENDFORM. " F_INIT_LAYOUT


    *&---------------------------------------------------------------------*
    *& Form form_alv_status
    *&---------------------------------------------------------------------*
    * text
    *----------------------------------------------------------------------*
    * -->PT_EXTAB text
    *----------------------------------------------------------------------*
    FORM form_alv_status USING pt_extab TYPE slis_t_extab.
    SET PF-STATUS 'STANDARD_FULLSCREEN' EXCLUDING pt_extab.
    ENDFORM. "form_alv_status
    *&---------------------------------------------------------------------*
    *& Form form_alv_command
    *&---------------------------------------------------------------------*
    * text
    *----------------------------------------------------------------------*
    * -->G_UCOMM text
    * -->G_SELFIELD text
    *----------------------------------------------------------------------*
    FORM form_alv_command USING g_ucomm LIKE sy-ucomm
    g_selfield TYPE slis_selfield.

    DATA:ref_grid TYPE REF TO cl_gui_alv_grid.

    CASE sy-ucomm.

    WHEN 'BACK'.
    perform refresh.
    LEAVE PROGRAM.

    WHEN 'EXIT'.
    LEAVE PROGRAM.
    WHEN OTHERS.

    ENDCASE.
    ENDFORM. "form_alv_command

    *&---------------------------------------------------------------------*
    *& Form frm_show_data
    *&---------------------------------------------------------------------*
    * text
    *----------------------------------------------------------------------*
    FORM frm_show_data .

    * 设置显示目录
    **--------------------------------------------------------------------*
    ** 关键字 复选框 编辑 单击 对齐 字段名 字段描述
    **--------------------------------------------------------------------*
    * ' ' ' ' ' ' ' ' 'L' 'BUKRS' '公司代码
    * ELSE.
    PERFORM frm_fieldcat USING:
    ' ' ' ' ' ' ' ' 'L' 'BUKRS' '公司代码',
    ' ' ' ' ' ' ' ' 'L' 'BUTXT' '公司名称',
    ' ' ' ' ' ' ' ' 'L' 'EBELN' '采购凭证',
    ' ' ' ' ' ' ' ' 'L' 'BSART' '采购凭证类型',
    ' ' ' ' ' ' ' ' 'L' 'BEDAT' '凭证日期',
    ' ' ' ' ' ' ' ' 'L' 'KO_PRCTR' '默认BU',
    ' ' ' ' ' ' ' ' 'L' 'LIFNR' '供应商'.

    * 设置显示格式
    PERFORM frm_layout.
    * ALV显示
    PERFORM frm_alv_show.
    ENDFORM. " FRM_SHOW_DATA

    FORM frm_fieldcat USING
    fu_key
    fu_checkbox
    fu_edit
    fu_hotspot
    fu_just
    fu_fieldname
    fu_seltext.
    CLEAR w_fieldcat.

    w_fieldcat-key = fu_key.
    w_fieldcat-checkbox = fu_checkbox.
    w_fieldcat-edit = fu_edit.
    w_fieldcat-hotspot = fu_hotspot.
    w_fieldcat-just = fu_just.
    w_fieldcat-fieldname = fu_fieldname.
    w_fieldcat-seltext_l = fu_seltext.
    "w_fieldcat-datatype = 'CURR'.
    APPEND w_fieldcat TO t_fieldcat.
    ENDFORM. " FRM_FIELDCAT

    *&---------------------------------------------------------------------*
    *& Form frm_layout
    *&---------------------------------------------------------------------*
    * text
    *----------------------------------------------------------------------*
    FORM frm_layout .
    w_layout-zebra = 'X'.
    w_layout-colwidth_optimize = 'X'.
    w_layout-box_fieldname = 'BOX'.
    w_layout-info_fieldname = 'COLOR'.
    ENDFORM. " FRM_LAYOUT
    *&---------------------------------------------------------------------*
    *& Form FRM_ALV_SHOW
    *&---------------------------------------------------------------------*
    * text
    *----------------------------------------------------------------------*
    * --> p1 text
    * <-- p2 text
    *----------------------------------------------------------------------*
    FORM FRM_ALV_SHOW .
    G_REPID = SY-REPID.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = G_REPID
    i_callback_pf_status_set = 'FORM_ALV_STATUS'
    i_callback_user_command = 'FORM_ALV_COMMAND'
    i_callback_top_of_page = 'TOP-OF-PAGE'
    IS_LAYOUT = W_LAYOUT "I_CALLBACK_USER_COMMAND = 'F_PRINT'
    IT_FIELDCAT = t_fieldcat
    I_SAVE = 'X'
    TABLES
    T_OUTTAB = T_ALV[].

    ENDFORM. " FRM_ALV_SHOW


    *&---------------------------------------------------------------------*
    *& Form REFRESH
    *&---------------------------------------------------------------------*
    * text
    *----------------------------------------------------------------------*
    form REFRESH .
    DATA: gr_alvgrid TYPE REF TO cl_gui_alv_grid.

    IF gr_alvgrid IS INITIAL.
    CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
    e_grid = gr_alvgrid.
    ENDIF.
    IF NOT gr_alvgrid IS INITIAL.
    CALL METHOD gr_alvgrid->check_changed_data.
    CALL METHOD gr_alvgrid->refresh_table_display
    EXPORTING
    i_soft_refresh = 'X'
    EXCEPTIONS
    finished = 1
    OTHERS = 2.
    IF sy-subrc <> 0.
    LEAVE TO SCREEN 0.
    ENDIF.
    ENDIF.
    endform. "REFRESH

    FORM f_get_event .
    DATA: formname_top_of_page TYPE slis_formname VALUE 'TOP-OF-PAGE'.
    DATA l_events TYPE slis_alv_event.

    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
    i_list_type = 0
    IMPORTING
    et_events = git_events
    EXCEPTIONS
    list_type_wrong = 1
    OTHERS = 2.
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    CLEAR l_events.
    READ TABLE git_events WITH KEY name = slis_ev_top_of_page INTO
    l_events.
    IF sy-subrc = 0.
    MOVE formname_top_of_page TO l_events-form.
    MODIFY git_events FROM l_events INDEX sy-tabix.
    ENDIF.
    ENDFORM.

    FORM top-of-page.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    it_list_commentary = t_listheader.
    ENDFORM.

    FORM FRM_comment_build .
    *ALV表头

    PERFORM f_build_title USING 'FQC检验单/生产入库单打印' ' '.
    * PERFORM f_build_title USING '工厂代码:' w_title-werks.
    * PERFORM f_build_title USING '工厂名称:' w_title-name1.

    ENDFORM.

    FORM f_build_title USING value(l_title1)
    value(l_title2).
    *ALV表头
    DATA: l_listheader TYPE slis_listheader,
    l_title(60).

    CONCATENATE l_title1 l_title2 INTO l_title.
    l_listheader-info = l_title.
    l_listheader-typ = 'S'."M中号字体,H大号字体,S小号字体
    APPEND l_listheader TO t_listheader.
    CLEAR : l_title,
    l_title1,
    l_title2,
    l_listheader.
    ENDFORM.
    *&---------------------------------------------------------------------*
    *& Form FRM_GET_DATA
    *&---------------------------------------------------------------------*
    * text
    *----------------------------------------------------------------------*
    * --> p1 text
    * <-- p2 text
    *----------------------------------------------------------------------*
    FORM FRM_GET_DATA .

    ENDFORM. " FRM_GET_DATA

  • 相关阅读:
    原来实现钉钉自动签到如此简单,每天准时上下班不是梦
    12306 抢票系列之只要搞定RAIL_DEVICEID的来源,从此抢票不再掉线(下)
    12306 抢票系列之只要搞定RAIL_DEVICEID的来源,从此抢票不再掉线(中)
    12306 抢票系列之只要搞定RAIL_DEVICEID的来源,从此抢票不再掉线(上)
    python 学习笔记之手把手讲解如何使用原生的 urllib 发送网络请求
    发生线上故障后问责是不是第一要务
    软件工程是否可以直接应用于小团队
    阶段性正确的一点记录
    Java7新特性
    从server.xml看Tomcat容器的层次结构
  • 原文地址:https://www.cnblogs.com/eric0701/p/3336846.html
Copyright © 2011-2022 走看看