*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
abap ALV报表的空程序模板
最新推荐文章于 2023-07-05 10:58:15 发布
该代码示例展示了如何在SAPABAP中创建一个ALV空程序,用于动态地从数据库获取数据并显示。程序使用了SLIS类型池和表格SSCRFIELDS,AFPO,定义了数据结构和字段,然后通过用户输入筛选条件,获取员工和生产订单信息,并用REUSE_ALV_GRID_DISPLAY函数来显示数据。此外,还实现了字段的编辑功能和颜色设置。
摘要由CSDN通过智能技术生成