ALV模版

简介: 1

&---------------------------------------------------------------------
*& Report Y003
*&
&---------------------------------------------------------------------
*&
*&
&---------------------------------------------------------------------

REPORT y003.


  • 标 准 T Y P E S P O O L S 引 入 块 *

*引入标准type pool
TYPE-POOLS:slis.


  • TABLES *

TABLES: mara,sscrfields.


  • T Y P E S - 输 出 结 构 定 义 *

TYPES:BEGIN OF ty_data,

    box   TYPE char1,
    matnr TYPE matnr,
  END OF ty_data,
  BEGIN OF ty_mara,
    matnr TYPE matnr,
    END OF ty_mara.

  • DATA *

DATA:it_data TYPE TABLE OF ty_data,

 wa_data TYPE ty_data,
 lt_mara TYPE TABLE OF ty_mara,
 functxt TYPE smp_dyntxt.

  • ALV定义 *

DATA:it_fieldcat TYPE lvc_t_fcat,

 wa_fieldcat LIKE LINE OF it_fieldcat,
 it_layout   TYPE TABLE OF lvc_s_layo,
 wa_layout   TYPE lvc_s_layo,
 it_events   TYPE slis_t_event,
 wa_events   LIKE LINE OF it_events.

DATA: i_grid_settings TYPE lvc_s_glay.
i_grid_settings-edt_cll_cb = 'X'.


  • 定义宏 *

DEFINE init_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = &1.
wa_fieldcat-coltext = &2.
wa_fieldcat-ref_table = &3.
wa_fieldcat-ref_field = &4.

  • wa_fieldcat-no_zero = &5.
  • wa_fieldcat-emphasize = &6.
  • wa_fieldcat-edit = &7.
    APPEND wa_fieldcat TO it_fieldcat.

END-OF-DEFINITION.


  • 选 择 屏 幕 定 义 块

"工具条按钮 最多为5个.
SELECTION-SCREEN FUNCTION KEY 1.
SELECTION-SCREEN BEGIN OF BLOCK text WITH FRAME TITLE text-001.
PARAMETERS: p_x1 RADIOBUTTON GROUP gp1 DEFAULT 'X',

        p_x2 RADIOBUTTON GROUP gp1.

SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN ULINE.
PARAMETERS:p_bukrs TYPE bukrs OBLIGATORY DEFAULT '2000' MODIF ID m1.
SELECT-OPTIONS:s_matnr FOR mara-matnr MODIF ID m1.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN ULINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (50) text-002 .
SELECTION-SCREEN END OF LINE.
PARAMETERS: p_path LIKE rlgrap-filename MODIF ID m2. " 导入文件
SELECTION-SCREEN END OF BLOCK text.
SELECTION-SCREEN BEGIN OF BLOCK text2 WITH FRAME TITLE text-003.
SELECTION-SCREEN: COMMENT /1(75) text-004 MODIF ID m3.
SELECTION-SCREEN END OF BLOCK text2 .


  • 初 始 化 块 *

INITIALIZATION.
PERFORM frm_init_data.


  • PAI *

AT SELECTION-SCREEN.
*权限检查
AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'

       ID 'ACTVT'  DUMMY
       ID 'BUKRS' FIELD p_bukrs.

IF sy-subrc NE 0.

MESSAGE e004(zfi01) WITH p_bukrs.

ENDIF.

  • CASE sscrfields-ucomm.
  • WHEN 'FC01'.
  • "下载模板文件
    ** PERFORM download_excel.
  • WHEN 'ONLI'."""F8
  • IF p_path IS INITIAL.
  • MESSAGE i000(00) WITH '文件路径为空,请您输入文件路径!' DISPLAY LIKE 'E'.
  • STOP.
  • ENDIF.
  • WHEN OTHERS.
  • ENDCASE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.

  • PERFORM frm_browser_file USING p_path.

  • PBO *

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN .

IF  screen-group1 = 'M1'.
  • IF p_x1 = 'X' .
  • screen-invisible = '0'.
  • screen-active = '1'.
  • ELSE.
  • screen-invisible = '1'.
  • screen-active = '0'.
  • ENDIF.

      MODIFY SCREEN.
    ENDIF.

    ENDLOOP.


  • 逻 辑 处 理 块 *

START-OF-SELECTION.
PERFORM frm_getdata.
PERFORM frm_dealdata.

END-OF-SELECTION.
PERFORM frm_layout.
PERFORM frm_fieldcat.
PERFORM frm_output.

&---------------------------------------------------------------------
*& Form FRM_GETDATA
&---------------------------------------------------------------------

  • text

  • --> p1 text
  • <-- p2 text

FORM frm_getdata .
SELECT matnr INTO TABLE lt_mara

     UP TO 20 ROWS

FROM mara WHERE matnr IN s_matnr.
IF sy-subrc <> 0.

MESSAGE e001(00) WITH '没有可以查询到的记录!'.

ENDIF.
MOVE-CORRESPONDING lt_mara TO it_data.
ENDFORM.
&---------------------------------------------------------------------
*& Form FRM_DEALDATA
&---------------------------------------------------------------------

  • text

  • --> p1 text
  • <-- p2 text

FORM frm_dealdata .
MOVE-CORRESPONDING lt_mara TO it_data.
SORT it_data BY matnr ASCENDING.
ENDFORM.
&---------------------------------------------------------------------
*& Form FRM_LAYOUT
&---------------------------------------------------------------------

  • text

  • --> p1 text
  • <-- p2 text

FORM frm_layout .
wa_layout-cwidth_opt = 'X'."""自动列宽
wa_layout-zebra = 'X'."""斑马线
wa_layout-sel_mode = 'X'.""""选择行模式
wa_layout-box_fname = 'BOX'.""""选择
ENDFORM.
&---------------------------------------------------------------------
*& Form FRM_FIELDCAT
&---------------------------------------------------------------------

  • text

  • --> p1 text
  • <-- p2 text

FORM frm_fieldcat .
init_fieldcat 'MATNR' '物料编码' 'MARA' 'MATNR'.
ENDFORM.
&---------------------------------------------------------------------
*& Form FRM_OUTPUT
&---------------------------------------------------------------------

  • text

  • --> p1 text
  • <-- p2 text

FORM frm_output .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'

EXPORTING
  • I_INTERFACE_CHECK = ' '
  • I_BYPASSING_BUFFER =
  • I_BUFFER_ACTIVE =

      i_callback_program       = sy-repid
      i_callback_pf_status_set = 'ALV_PF_STATUS'
      i_callback_user_command  = 'ALV_USER_COMMAND'
  • I_CALLBACK_TOP_OF_PAGE = ' '
  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '
  • I_CALLBACK_HTML_END_OF_LIST = ' '
  • I_STRUCTURE_NAME =
  • I_BACKGROUND_ID = ' '
  • I_GRID_TITLE =

      i_grid_settings          = i_grid_settings
      is_layout_lvc            = wa_layout
      it_fieldcat_lvc          = it_fieldcat
  • IT_EXCLUDING =
  • IT_SPECIAL_GROUPS_LVC =
  • IT_SORT_LVC =
  • IT_FILTER_LVC =
  • IT_HYPERLINK =
  • IS_SEL_HIDE =
  • I_DEFAULT = 'X'

      i_save                   = 'A'
  • IS_VARIANT =
  • IT_EVENTS =
  • IT_EVENT_EXIT =
  • IS_PRINT_LVC =
  • IS_REPREP_ID_LVC =
  • I_SCREEN_START_COLUMN = 0
  • I_SCREEN_START_LINE = 0
  • I_SCREEN_END_COLUMN = 0
  • I_SCREEN_END_LINE = 0
  • I_HTML_HEIGHT_TOP =
  • I_HTML_HEIGHT_END =
  • IT_ALV_GRAPHICS =
  • IT_EXCEPT_QINFO_LVC =
  • IR_SALV_FULLSCREEN_ADAPTER =
  • IMPORTING
  • E_EXIT_CAUSED_BY_CALLER =
  • ES_EXIT_CAUSED_BY_USER =

    TABLES
      t_outtab                 = it_data[]
    EXCEPTIONS
      program_error            = 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.

ENDFORM.
&---------------------------------------------------------------------
*& Form ALV_PF_STATUS
&---------------------------------------------------------------------

  • text

  • --> p1 text
  • <-- p2 text

FORM alv_pf_status USING rt_extab TYPE slis_t_extab .

  • DATA: l_code TYPE slis_extab.
  • l_code-fcode = '&SC'.
  • APPEND l_code TO rt_extab.
    SET PF-STATUS 'STANDARD_FULLSCREEN' EXCLUDING rt_extab.

SET TITLEBAR 'T001' WITH '物料信息'.
ENDFORM. " ALV_PF_STATUS
&---------------------------------------------------------------------
*& Form FRM_USER_COMMAND
&---------------------------------------------------------------------

  • text

  • --> p1 text
  • <-- p2 text

FORM alv_user_command USING p_ucomm TYPE sy-ucomm rs_selfield TYPE slis_selfield .
CASE p_ucomm.

WHEN '&F03'.
  LEAVE TO SCREEN 0.
WHEN '&F15'.
  LEAVE PROGRAM.
WHEN OTHERS.

ENDCASE.

ENDFORM. " FRM_USER_COMMAND
&---------------------------------------------------------------------
*& Form FRM_INIT_DATA
&---------------------------------------------------------------------

  • text

  • --> p1 text
  • <-- p2 text

FORM frm_init_data .
functxt-icon_id = icon_export.
functxt-quickinfo = '模板下载'.
functxt-icon_text = '模板下载'.
sscrfields-functxt_01 = functxt.
ENDFORM.

目录
相关文章
SwiftUI—使用Text视图创建漂亮的富文本
SwiftUI—使用Text视图创建漂亮的富文本
1000 0
SwiftUI—使用Text视图创建漂亮的富文本
|
6月前
|
BI 数据库
给 ABAP ALV 报表的数据行增添颜色效果试读版
给 ABAP ALV 报表的数据行增添颜色效果试读版
43 0
|
5月前
|
BI
利用 ALV 实现增删改查系列之四:如何捕捉 SAP ABAP ALV 报表行项目删除时抛出的事件试读版
利用 ALV 实现增删改查系列之四:如何捕捉 SAP ABAP ALV 报表行项目删除时抛出的事件试读版
49 0
|
7月前
|
BI
利用 ALV 实现增删改查系列之二:仅让 ALV 报表某一列允许被编辑试读版
利用 ALV 实现增删改查系列之二:仅让 ALV 报表某一列允许被编辑试读版
54 0
|
6月前
|
XML 搜索推荐 数据可视化
SAP UI5 SmartTable column 的个性化设置使用概述
SAP UI5 SmartTable column 的个性化设置使用概述
32 0
|
6月前
|
BI 数据库
27 行代码开发一个最简单的 SAP ALV 报表试读版
27 行代码开发一个最简单的 SAP ALV 报表试读版
84 1
|
8月前
|
数据处理 数据格式
hook项目实例之原始数据形成ant design table表格 2
hook项目实例之原始数据形成ant design table表格
41 0
|
8月前
|
数据格式
hook项目实例之原始数据形成ant design table表格
hook项目实例之原始数据形成ant design table表格
29 0
|
10月前
Ant Design表格列拖拽,部分源码 #44
Ant Design表格列拖拽,部分源码 #44
166 0
|
11月前
|
BI
SAP 报表设置动态ALV标题栏
关于ALV报表多个事务代码下显示不同标题处理
268 0