abap ALV报表的空程序模板

*ALV空程序
*TYPE-POOLS: slis.
*TABLES:sscrfields,afpo.
*
*DATA functxt TYPE smp_dyntxt.
*DATA: fldcat          TYPE slis_t_fieldcat_alv,
*      slayt           TYPE slis_layout_alv,
*      varnt           LIKE disvariant,
*      repid           LIKE sy-repid,
*      i_title         TYPE lvc_title,
*      i_grid_settings TYPE lvc_s_glay.
*DATA: slines TYPE string.
*
*DATA: BEGIN OF gs_istr ,
*        pernr TYPE pa0001-pernr, " 员工号
*        sname TYPE pa0001-sname, " 姓名
*      END OF gs_istr.
**ALV显示
*DATA: BEGIN OF gt_itab OCCURS 0.
*        INCLUDE STRUCTURE gs_istr.
*DATA:   chkbx TYPE c,
*        cellc TYPE slis_t_specialcol_alv,
*      END OF gt_itab.
*
*DATA: color TYPE slis_t_specialcol_alv WITH HEADER LINE.
**文本下载
*DATA:gt_itab_d LIKE gs_istr OCCURS  0 WITH HEADER LINE.
*
*
*
*SELECTION-SCREEN BEGIN OF BLOCK zb WITH FRAME TITLE t1.
*  PARAMETERS : p_werks TYPE werks_d DEFAULT '1000' OBLIGATORY."工厂
*  SELECT-OPTIONS : s_aufnr FOR afpo-aufnr . "生产订单编码
*  SELECT-OPTIONS : s_matnr FOR afpo-matnr . "生产订单编码
*SELECTION-SCREEN END OF BLOCK zb.
**定义说明文本
*SELECTION-SCREEN COMMENT /1(80): txt000,txt001,txt002.
*
*INITIALIZATION.
*  %_p_werks_%_app_%-text = '工厂'.
*  %_s_aufnr_%_app_%-text = '生产订单'.
*  %_s_matnr_%_app_%-text = '生产物料'.
*  CLEAR:fldcat[].
*  PERFORM catlg_set USING 'PERNR' '员工号'(103).
*  PERFORM catlg_set USING 'SNAME' '姓名'(104).
*
*START-OF-SELECTION.
*  PERFORM getdata.
*  PERFORM outdata.
*
**&---------------------------------------------------------------------*
**&      Form  GETDATA
**&---------------------------------------------------------------------*
*FORM getdata.
*  DATA: ilines TYPE i.
*
*
*
*  ilines = lines( gt_itab ).
*  slines = ilines.
**颜色使用实例
**  color-color-col = '6'.
**  color-color-int = '1'.
**  color-color-inv = '0'.
**  APPEND color.
**  itab-cellc[] = color[].
**  APPEND itab.
*ENDFORM.                    " GETDATA
*
**&---------------------------------------------------------------------*
**&      Form  outdata
**&---------------------------------------------------------------------*
*FORM outdata.
*  slayt-box_fieldname = 'CHKBX'.
*  slayt-box_tabname  = 'ITAB'.
*  slayt-colwidth_optimize = 'X'.
*  slayt-zebra             = 'X'.
*  slayt-coltab_fieldname = 'CELLC'.
*  slayt-window_titlebar  = '员工病事旷规则'.
*  PERFORM getalvtitle CHANGING i_title.
*  repid = sy-repid.
*  i_grid_settings-edt_cll_cb  = 'X' .  "显示界面可编辑字段上修改了数据,回车后就会立即将内表的数据也修改
*  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
*    EXPORTING
*      i_callback_program      = repid
*      it_fieldcat             = fldcat[]
*      i_save                  = 'A'
*      is_layout               = slayt
*      i_callback_user_command = 'USER_COMMAND'
**     i_callback_pf_status_set = 'SET_STATUS'
*      i_grid_settings         = i_grid_settings
*      i_grid_title            = i_title
*    TABLES
*      t_outtab                = gt_itab[]
*    EXCEPTIONS
*      program_error           = 1
*      OTHERS                  = 2.
*
*ENDFORM.                    " outdata
*FORM getalvtitle CHANGING i_title TYPE lvc_title.
*  i_title = slines .
*  CONDENSE i_title.
*  CONCATENATE '条目数:'   i_title INTO   i_title .
*ENDFORM.
*
**&---------------------------------------------------------------------*
**& Module STATUS_0100 OUTPUT
**&---------------------------------------------------------------------*
*FORM set_status USING rt_extab TYPE slis_t_extab.
**  SET PF-STATUS 'STA1'   EXCLUDING rt_extab.
*ENDFORM.
**---------------------------------------------------------------------*
**       FORM frm_catlg_set                                            *
**---------------------------------------------------------------------*
*FORM catlg_set USING s_field s_text.
*  DATA: ls_fldcat TYPE slis_fieldcat_alv,
*        s_mask    TYPE  dd04l-convexit.
*
*  ls_fldcat-fieldname     =  s_field.
*  ls_fldcat-seltext_l     =  s_text.
*
*  SELECT SINGLE convexit  INTO  s_mask  FROM dd04l WHERE rollname = s_field.
*  IF sy-subrc = 0 AND s_mask IS NOT INITIAL.
*    CONCATENATE '==' s_mask INTO ls_fldcat-edit_mask .
*  ENDIF.
*
*  CASE ls_fldcat-fieldname.
*    WHEN 'BSTMG' OR 'BDMNG' OR 'MENGE'.
*      ls_fldcat-qfieldname = 'MEINS'.
*      ls_fldcat-decimals_out = 3.
*      ls_fldcat-no_zero = 'X'.
*    WHEN 'WRBTR' OR 'KBERE' OR 'BFAAC'.
*      ls_fldcat-cfieldname = 'BWAER'.
*      ls_fldcat-decimals_out = 2.
*    WHEN 'LIFNR' OR 'AUFNR' OR 'KUNNR'.
*      ls_fldcat-edit_mask = '==ALPHA'.
*    WHEN 'MATNR' OR 'IDNRK'.
*      ls_fldcat-edit_mask = '==MATN1'.
*    WHEN 'BSTME' OR 'MEINS' .
*      ls_fldcat-edit_mask = '==CUNIT'.
*    WHEN OTHERS.
*  ENDCASE.
*
*  APPEND ls_fldcat TO fldcat .
*  CLEAR ls_fldcat .
*ENDFORM.                    "frm_catlg_set

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 请参考以下代码:REPORT Z_ALV_REPORT_DEMO.TABLES: VBAK.DATA: BEGIN OF REPORT_DATA OCCURS 0, VBELN LIKE VBAK-VBELN, KUNNR LIKE VBAK-KUNNR, END OF REPORT_DATA.START-OF-SELECTION. SELECT VBELN KUNNR INTO CORRESPONDING FIELDS OF TABLE REPORT_DATA FROM VBAK.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = SY-REPID I_STRUCTURE_NAME = 'REPORT_DATA' I_BACKGROUND_COLOR = 0 I_GRID_TITLE = '销售订单报表' I_GRID_DISPLAY = 'X' EXCEPTIONS PROGRAM_ERROR = 1 OTHERS = 2.IF SY-SUBRC <> 0. * Implement suitable error handling here ENDIF. ### 回答2: ABAP ALV报表是一种用于展示和处理数据的强大工具。以下是一个简单的示例代码,用于创建一个包含基本功能的ALV报表: 1. 数据定义和获取: 首先,我们需要定义和获取报表所需的数据。可以使用内部表、数据库表或函数模块来获取数据。假设数据存储在一个内部表IT_DATA中。 2. 创建ALV对象: 创建一个ALV对象,并设置所需的属性和事件。可以使用CL_SALV_TABLE类来创建和管理ALV对象。下面是一个示例代码: DATA: lo_alv TYPE REF TO cl_salv_table. CREATE OBJECT lo_alv. 3. 设置字段目录: 设置字段目录,即定义报表的列和标题。可以为每个列定义不同的属性,如类型,长度,对齐方式等。以下是一个示例代码: DATA: lt_field_catalog TYPE TABLE OF salv_fcatalog, ls_field_catalog TYPE salv_fcatalog. ls_field_catalog-fieldname = 'COLUMN1'. ls_field_catalog-seltext_l = 'Column 1'. APPEND ls_field_catalog TO lt_field_catalog. ls_field_catalog-fieldname = 'COLUMN2'. ls_field_catalog-seltext_l = 'Column 2'. APPEND ls_field_catalog TO lt_field_catalog. lo_alv->set_table_for_first_display( EXPORTING i_structure_name = 'IT_DATA' CHANGING it_outtab = it_data it_fieldcatalog = lt_field_catalog ). 4. 显示报表: 最后,调用DISPLAY方法来显示报表。这将在屏幕上展示并允许对数据进行操作。以下是一个示例代码: lo_alv->display( ). 这只是一个简单的示例,ABAP ALV报表有很多其他功能和设置可以使用。可以根据具体需求进行更多的自定义和配置。希望这能帮助你入门并了解如何编写ABAP ALV报表代码。 ### 回答3: 下面是一个简单的ABAP ALVABAP列表化显示)报表代码的示例: REPORT z_alv_demo. DATA: lt_data TYPE TABLE OF spfli, ls_data TYPE spfli. START-OF-SELECTION. SELECT * FROM spfli INTO TABLE lt_data. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid i_callback_top_of_page = 'TOP-OF-PAGE' TABLES t_outtab = lt_data. FORM top-of-page. WRITE: / '飞机从', 20(20) '飞行到', 40(20) '目的地'. ULINE. ENDFORM. 在此示例中,我们使用SPFLI表的数据来显示一个简单的ALV报表。首先,我们在START-OF-SELECTION部分从SPFLI表中选择所有的行,并将其填充到内部表lt_data中。 然后,我们使用函数模块REUSE_ALV_GRID_DISPLAY来显示ALV表格。此函数需要传递参数i_callback_program,它指定了调用程序的名称(这里使用sy-repid表示当前程序的名称),以及i_callback_top_of_page,它指定了在每页的顶部显示的回调功能的名称。 在回调功能TOP-OF-PAGE中,我们使用WRITE语句来打印报表的标题,并使用ULINE语句在标题下方画一条线。 最后,在运行报表时,系统会根据SPFLI表的数据显示一个包含飞机飞行信息的ALV报表。 这只是一个简单的示例,您可以根据您的需求自定义和扩展代码来创建更复杂的报表

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值