ABAP 测试用报表模板

中文模板

********************************************************************
* 事务代码:                                                       *
* 程序名称:                                                       *
* 程序目的:                                         *
* 设 计 人:                                                       *
* 开 发 人:                                                       *
* 设计时间:2023-05-29                                             *
* 程序类型: ABAP/4 程序 ,报表程序                                 *
* 应用类型: XX                                                     *
* 描    述:                                           *
*(修改日志)--------------------------------------------------------*
*                                                                  *
* 日志号   修改人  修改时间       修改说明              传输号码     *
*  ----    ----    ------         -----------
*   001    Seele   2023-05-29     创建报表程序                     *
********************************************************************

REPORT ZDEMO_SEELE09.

*----------------------------------------------------------------------*
* 数据库表声明/Database table declaration
*----------------------------------------------------------------------*
TABLES:mkpf,  " 物料凭证抬头
       mara,
       mseg.  " 物料凭证行项目

*----------------------------------------------------------------------*
* 结构声明类型/Structure type declaration
*----------------------------------------------------------------------*
*&---主表数据/master table data
TYPES:BEGIN OF ty_output,

        matnr      TYPE makt-matnr           , " 物料
        maktx      TYPE makt-maktx           , " 物料描述
        spras      TYPE makt-spras           , " 语言代码

        box        TYPE c                    , " 选择框

      END OF ty_output.

*----------------------------------------------------------------------*
* 全局变量定义/Global variable definition
*----------------------------------------------------------------------*
*&---全局内表定义
DATA:gt_output TYPE TABLE OF ty_output.  " 主数据表

*&---全局结构定义
DATA:gs_output TYPE ty_output.           " 主数据结构

*&---全局变量定义
DATA:gv_uname TYPE user_addr-name_last.  " 用户名

*&---------------------------------------------------------------------*
*& 字段串定义/Field-symbols                                            *
*&---------------------------------------------------------------------*
FIELD-SYMBOLS:<fs_output> TYPE ty_output.

*&---------------------------------------------------------------------*
*&  ALV TYPE/ALV 类型定义
*&---------------------------------------------------------------------*
*&---ALV数据组,类型池
TYPE-POOLS:slis,
           vrm.

*&---定义ALV显示的字段列及其描述等属性
DATA:gt_fieldcat TYPE TABLE OF lvc_s_fcat, " ALV 控制: 字段目录
     gs_fieldcat TYPE lvc_s_fcat,          " ALV 控制: 字段目录
     gs_layout   TYPE lvc_s_layo.          " ALV 控制: 布局结构

*&---------------------------------------------------------------------*
*&  Macro 宏定义
*&---------------------------------------------------------------------*
DEFINE mcr_set_catalog.
  gs_fieldcat-fieldname  = &1. " 字段技术名称
  gs_fieldcat-coltext    = &2. " 显示名称
  gs_fieldcat-ref_table  = &3. " 参照表
  gs_fieldcat-ref_field  = &4. " 参照表字段
  gs_fieldcat-qfieldname = &5. " 参考计量单位的字段名称
  gs_fieldcat-key        = &6. " key 值
  gs_fieldcat-edit       = &7. " 可编辑

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR  gs_fieldcat.
END-OF-DEFINITION.

*&---------------------------------------------------------------------*
*& Selection Screen/选择屏幕
*&---------------------------------------------------------------------*
*&---选择屏幕块
SELECTION-SCREEN BEGIN OF BLOCK blk01 WITH FRAME TITLE TEXT-101.

*&---范围
  SELECT-OPTIONS:s_matnr FOR mara-matnr .            " 物料凭证

SELECTION-SCREEN END OF BLOCK blk01.

*&---------------------------------------------------------------------*
*& Start-of-selection/开始选择屏幕                                     *
*&---------------------------------------------------------------------*
START-OF-SELECTION.
*&---内表数据获取

  PERFORM frm_get_data.

  IF gt_output IS INITIAL.
    MESSAGE s000(zmm001) DISPLAY LIKE 'E'.
    EXIT.
  ENDIF.

*&---------------------------------------------------------------------*
*& end-of-selection/结束选择屏幕(程序结束处理,输出等)               *
*&---------------------------------------------------------------------*
END-OF-SELECTION.

*&===ALV 输出
*&---设置ALV输出格式
  PERFORM frm_init_layout.
*&---设置ALV输出字段
  PERFORM frm_set_fieldcat.
*&---ALV 显示
  PERFORM frm_display_alv.

*&---------------------------------------------------------------------*
*&      Form  frm_get_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_10     text
*----------------------------------------------------------------------*
FORM frm_get_data.

  DATA:lv_tabix TYPE i.

  FREE:gt_output.
  SELECT
    matnr,  " 物料编码
    maktx,  " 物料描述
    spras   " 语言代码
  FROM makt
  WHERE
    matnr IN @s_matnr
  INTO CORRESPONDING FIELDS OF TABLE @gt_output
  UP TO 10 ROWS.

ENDFORM.                    " frm_get_data
*&---------------------------------------------------------------------*
*&      Form  frm_init_layout
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_init_layout .
  CLEAR gs_layout.
  gs_layout-zebra      = 'X' .    " 斑马线
  gs_layout-cwidth_opt = 'X' .    " 自动调整ALVL列宽
  gs_layout-no_toolbar = 'X' .    " 隐藏工具栏
  gs_layout-sel_mode   = 'A'.     "选择模式
  gs_layout-box_fname  = 'BOX'.   "选择字段
ENDFORM.                    " frm_init_layout
*&---------------------------------------------------------------------*
*&      Form  frm_fieldcat
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_set_fieldcat .
*&---ALV 输出字段目录,涉及字段必须大写
  mcr_set_catalog: 'MATNR'       TEXT-A01    'MAKT'      'MATNR'       '' ''  '', " 物料
                   'MAKTX'       TEXT-A02    'MAKT'      'MAKTX'       '' ''  '', " 物料描述
                   'SPRAS'       TEXT-A03    'MAKT'      'SPRAS'       '' ''  '', " 语言代码


ENDFORM.                    " frm_fieldcat

*&---------------------------------------------------------------------*
*&      Form  frm_display_alv
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_display_alv .
*&---ALV 显示函数
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_callback_program       = sy-repid
      is_layout_lvc            = gs_layout
      it_fieldcat_lvc          = gt_fieldcat[]
      i_callback_pf_status_set = 'FRM_USER_STATUS'
      i_callback_user_command  = 'FRM_USER_COMMAND'
      i_default                = 'X'
      i_save                   = 'A'
    TABLES
      t_outtab                 = gt_output
    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.                    " frm_display_alv
*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*
*&      Form  frm_user_status
*&---------------------------------------------------------------------*
*       设置用户菜单栏状态
*----------------------------------------------------------------------*
*  -->  pt_extab        需要排除的菜单按钮
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_user_status USING pt_extab TYPE slis_t_extab.  "GUI
  CLEAR pt_extab.

  DATA lv_title TYPE string.
  lv_title = lines( gt_output ).
  lv_title = TEXT-t01 && '(' && lv_title && TEXT-t02 && ')'.

  SET TITLEBAR 'TITLE_1000' WITH lv_title.
  SET PF-STATUS 'STATUS_1000' EXCLUDING pt_extab.
ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  frm_user_command
*&---------------------------------------------------------------------*
*       菜单栏事件
*----------------------------------------------------------------------*
*  -->  pv_ucomm        触发的功能码
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_user_command USING pv_ucomm LIKE sy-ucomm  "user_command
                            pv_selfield TYPE slis_selfield.

  DATA: lr_grid TYPE REF TO cl_gui_alv_grid.
  DATA:lv_answer TYPE c .
  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = lr_grid.

  CALL METHOD lr_grid->check_changed_data. "将更新后的数据传到alv所对应的内表

  pv_selfield-refresh = 'X'. "刷新数据
  pv_selfield-row_stable = 'X'.
  pv_selfield-col_stable = 'X'.

  CASE pv_ucomm.
    WHEN 'DOWN'.
      PERFORM frm_download.
  ENDCASE.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form FRM_DOWNLOAD
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_download .

ENDFORM.

英文模板

********************************************************************
* T-Code:                                                         *
* Program Name:                                                   *
* Designer:                                                       *
* Developer:                                                      *
* Design At:2024-05-30                                            *
*(Change Log)------------------------------------------------------*
* Log ID   Change By    Change At      Description                 *
*  ----    ---------    ---------      -----------                 *
*  001     Seele        2024-05-30     Create Program              *
********************************************************************

REPORT YDEMO.

*----------------------------------------------------------------------*
* Database table declaration
*----------------------------------------------------------------------*
TABLES:mkpf,  " 物料凭证抬头
       mara,
       mseg.  " 物料凭证行项目

*----------------------------------------------------------------------*
* Structure type declaration
*----------------------------------------------------------------------*
*&---master table data
TYPES:BEGIN OF ty_output,

        matnr      TYPE makt-matnr           , " 物料
        maktx      TYPE makt-maktx           , " 物料描述
        spras      TYPE makt-spras           , " 语言代码

        box        TYPE c                    , " 选择框

      END OF ty_output.

*----------------------------------------------------------------------*
* Global variable definition
*----------------------------------------------------------------------*
*&---Global Internal Table
DATA:gt_output TYPE TABLE OF ty_output.  " ALV Tbale

*&---Global Structure
DATA:gs_output TYPE ty_output.           " ALV Structure

*&---Global variable

*&---------------------------------------------------------------------*
*& Field-symbols                                            *
*&---------------------------------------------------------------------*
FIELD-SYMBOLS:<fs_output> TYPE ty_output.

*&---------------------------------------------------------------------*
*&  ALV TYPE
*&---------------------------------------------------------------------*
TYPE-POOLS:slis,
           vrm.

*&---ALV Variable
DATA:gt_fieldcat TYPE TABLE OF lvc_s_fcat, 
     gs_fieldcat TYPE lvc_s_fcat,          
     gs_layout   TYPE lvc_s_layo.          

*&---------------------------------------------------------------------*
*&  Macro 宏定义
*&---------------------------------------------------------------------*
DEFINE mcr_set_catalog.
  gs_fieldcat-fieldname  = &1. 
  gs_fieldcat-coltext    = &2. 
  gs_fieldcat-ref_table  = &3. 
  gs_fieldcat-ref_field  = &4. 
  gs_fieldcat-qfieldname = &5. 
  gs_fieldcat-key        = &6. 
  gs_fieldcat-edit       = &7. 

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR  gs_fieldcat.
END-OF-DEFINITION.

*&---------------------------------------------------------------------*
*& Selection Screen
*&---------------------------------------------------------------------*
*&---Block
SELECTION-SCREEN BEGIN OF BLOCK blk01.

*&---Range
  SELECT-OPTIONS:s_matnr FOR mara-matnr .            " 

SELECTION-SCREEN END OF BLOCK blk01.

*&---------------------------------------------------------------------*
*& Start-of-selection                                                  *
*&---------------------------------------------------------------------*
START-OF-SELECTION.

  PERFORM frm_get_data.

  IF gt_output IS INITIAL.
    MESSAGE s000(zmm001) DISPLAY LIKE 'E'. " No data to display
    EXIT.
  ENDIF.

*&---------------------------------------------------------------------*
*& end-of-selection                                                    *
*&---------------------------------------------------------------------*
END-OF-SELECTION.

  PERFORM frm_init_layout.
  
  PERFORM frm_set_fieldcat.
  
  PERFORM frm_display_alv.

*&---------------------------------------------------------------------*
*&      Form  frm_get_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_10     text
*----------------------------------------------------------------------*
FORM frm_get_data.

  DATA:lv_tabix TYPE i.

  FREE:gt_output.
  SELECT
    matnr,  " 物料编码
    maktx,  " 物料描述
    spras   " 语言代码
  FROM makt
  WHERE
    matnr IN @s_matnr
  INTO CORRESPONDING FIELDS OF TABLE @gt_output
  UP TO 10 ROWS.

ENDFORM.                    " frm_get_data
*&---------------------------------------------------------------------*
*&      Form  frm_init_layout
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_init_layout .
  CLEAR gs_layout.
  gs_layout-zebra      = 'X' .    " zebra line
  gs_layout-cwidth_opt = 'X' .    " auto column width
  gs_layout-no_toolbar = 'X' .    " hide toolbar
  gs_layout-sel_mode   = 'A'.     " select mode
  gs_layout-box_fname  = 'BOX'.   " box field name
ENDFORM.                    " frm_init_layout
*&---------------------------------------------------------------------*
*&      Form  frm_fieldcat
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_set_fieldcat .
*&---ALV output field list
  mcr_set_catalog: 'MATNR'       TEXT-A01    'MAKT'      'MATNR'       '' ''  '', " 物料
                   'MAKTX'       TEXT-A02    'MAKT'      'MAKTX'       '' ''  '', " 物料描述
                   'SPRAS'       TEXT-A03    'MAKT'      'SPRAS'       '' ''  '', " 语言代码


ENDFORM.                    " frm_fieldcat

*&---------------------------------------------------------------------*
*&      Form  frm_display_alv
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_display_alv .
*&---ALV Display Function
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_callback_program       = sy-repid
      is_layout_lvc            = gs_layout
      it_fieldcat_lvc          = gt_fieldcat[]
      i_callback_pf_status_set = 'FRM_USER_STATUS'
      i_callback_user_command  = 'FRM_USER_COMMAND'
      i_default                = 'X'
      i_save                   = 'A'
    TABLES
      t_outtab                 = gt_output
    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.                    " frm_display_alv
*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*
*&      Form  frm_user_status
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*  -->  pt_extab  
*  <--  p2        
*----------------------------------------------------------------------*
FORM frm_user_status USING pt_extab TYPE slis_t_extab.  "GUI
  CLEAR pt_extab.

  DATA lv_title TYPE string.
  lv_title = lines( gt_output ).
  lv_title = TEXT-t01 && '(' && lv_title && TEXT-t02 && ')'.

  SET TITLEBAR 'TITLE_1000' WITH lv_title.
  SET PF-STATUS 'STATUS_1000' EXCLUDING pt_extab.
ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  frm_user_command
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*  -->  pv_ucomm        
*  <--  p2        
*----------------------------------------------------------------------*
FORM frm_user_command USING pv_ucomm LIKE sy-ucomm  "user_command
                            pv_selfield TYPE slis_selfield.

  DATA: lr_grid TYPE REF TO cl_gui_alv_grid.
  DATA:lv_answer TYPE c .
  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = lr_grid.

  CALL METHOD lr_grid->check_changed_data. 

  pv_selfield-refresh = 'X'. 
  pv_selfield-row_stable = 'X'.
  pv_selfield-col_stable = 'X'.

  CASE pv_ucomm.
    WHEN 'DOWN'.
      PERFORM frm_download.
  ENDCASE.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form FRM_DOWNLOAD
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_download .

ENDFORM.
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABAP(高级商务应用程序编程语言)是一种针对SAP的编程语言,主要用于开发企业级软件和应用程序。在SAP系统中,ABAP可以用于创建各种报表,包括固定资产报表。 固定资产报表是一种用于跟踪和管理企业资产的重要工具。它可以提供关于企业固定资产的详细信息,如名称、编号、购买日期、折旧计算、净值等。通过分析这些数据,企业可以更好地管理和决策。 在ABAP中创建固定资产报表的过程包括以下步骤: 1. 数据提取:首先需要从SAP系统中提取固定资产的相关数据。可以使用ABAP中的数据提取函数或者查询语句来获取所需的数据。这些数据可以包括固定资产的基本信息、折旧计算、维护记录等。 2. 数据处理:一旦获取了数据,下一步是对数据进行处理和分析。可以使用ABAP编程语言中的各种函数和逻辑来计算固定资产的折旧值、净值、累计折旧等指标。还可以对数据进行排序、筛选和分组,以便更好地进行呈现和分析。 3. 报表设计:设计报表是非常重要的一步。使用ABAP提供的报表设计工具,可以定义报表的排列、格式和样式。可以添加标题、页眉、页脚、表格、图表等元素,以满足特定的需求。 4. 报表生成:一旦完成报表设计,可以使用ABAP中的报表生成函数将数据填充到报表模板中。可以将生成的报表以打印格式或电子格式导出,以便进行查看或分发。 通过ABAP编程语言,企业可以根据其特定需求灵活地创建固定资产报表。这些报表可以为企业提供重要的财务和管理信息,帮助企业更好地管理和运营固定资产。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值