ABAP开发【设置OOALV】

目录

①实例类:cl_gui_alv_grid  查找容器方法:CONSTRUCTOR中查找必填属性

②表单可编辑

③颜色设置

④BOXCHECK设置


①实例类:cl_gui_alv_grid  查找容器方法:CONSTRUCTOR中查找必填属性


    ALV实现方法:set_table_for_first_display    
    刷新ALV报表方法:refresh_table_display
    实例化容器类:cl_gui_custom_container 容器为:‘定制控制’  通过调用call screen ‘0100’.显示
    刷新表单内容方法:REFRESH_TABLE_DISPLAY

  (当I_SOFT_REFRESH,’X’ :只刷新单元格(如果有合计不自动更新))

②表单可编辑


   以表单为单位
          设置LAYOUT-EDIT,为X,可修改
   以列为单位
          设置FIELDCAT-EDIT,为X,列可修改
   以单元格为单位
          在C_内表中增加一个字段,类型为LVT_STYL ,例CELLSTL  在需要设置修改属性的位置,通过结构给CELLSTL字段内表赋值
          FIELDNAME,需要设置属性的字段名STYLE,可修改属性
                不可修改:CL_GUI_ALV_GRID=>MC_STYLE_DISABLED
                   可修改:CL_GUI_ALV_GRID=>MC_STYLE_ENALBED
  设置LAYOUT,给STYLEFNAME字段赋值修改属性的字段名,例CELLSTL

(特别的:在FIELDCAT中,设置该列属性为可修改在表单赋值时,将不可修改状态的字段,设置为不可修改)

③颜色设置


  以列为单位
    在FIELDCAT中给EMPHASIZE字段赋值
  以行为单位
    在内表中增加一个字段,类型为CHAR,至少长度为4,例COLOR
    给向输出内表获取数据时,给COLOR字段赋值
    设置LAYOUT,给INFO_FNAME字段赋值颜色字段名称,例COLOR
  以单元格为单位
    在内表中增加一个字段,类型为LVC_T_SCOL ,例COLOR
    在向输出内表取数据时,通过结构给COLOR字段内表赋值
    设置LAYOUT,给CTAB_FNAME字段赋值颜色字段名称,例COLOR

④BOXCHECK设置


    gs_layout-sel_mode   = 'A'.
    gs_layout-box_fname = 'BOX'.
 

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABAP OOALV是一种在ABAP编程语言中面向对象的方式实现的ALV(ABAP List Viewer)报表。它提供了更灵活和可扩展的方式来创建和展示报表数据。 以下是ABAP OOALV的一些关键步骤和示例代码[^1][^2]: 1. 定义变量和选择屏幕定义:在ABAP程序中定义所需的变量,并选择适当的屏幕定义。 2. 创建类:创建一个类来处理ALV报表的逻辑和功能。这个类应该继承自`CL_GUI_ALV_GRID`类。 3. 调用函数:在类中定义一个方法来调用ALV函数模块,例如`REUSE_ALV_GRID_DISPLAY`。 4. 获取数据并展示:在类中定义一个方法来获取报表数据,并将数据传递给ALV函数模块。 5. 表头字段设置:在类中定义一个方法来设置ALV报表的表头字段。 6. ALV输出格式:在类中定义一个方法来设置ALV报表的输出格式,例如列宽、对齐方式等。 7. 展示ALV:在类中定义一个方法来展示ALV报表。 8. 其他:根据需要,可以在类中定义其他方法来处理特定的功能,例如处理单击事件、排序等。 下面是一个简单的示例代码,演示了如何使用ABAP OOALV来创建和展示一个简单的报表: ```abap CLASS lcl_alv_report DEFINITION. PUBLIC SECTION. METHODS: constructor, display_alv. PRIVATE SECTION. DATA: lo_alv_grid TYPE REF TO cl_gui_alv_grid. METHODS: get_data, set_field_catalog, set_layout. ENDCLASS. CLASS lcl_alv_report IMPLEMENTATION. METHOD constructor. CREATE OBJECT lo_alv_grid EXPORTING i_parent = cl_gui_container=>screen0. ENDMETHOD. METHOD display_alv. CALL METHOD lo_alv_grid->set_table_for_first_display EXPORTING i_structure_name = 'SPFLI' CHANGING it_outtab = lt_spfli. ENDMETHOD. METHOD get_data. SELECT * FROM spfli INTO TABLE lt_spfli. ENDMETHOD. METHOD set_field_catalog. DATA: lt_fieldcat TYPE lvc_t_fcat. FIELD-SYMBOLS: <fs_fieldcat> TYPE lvc_s_fcat. CALL METHOD lo_alv_grid->get_frontend_fieldcatalog RECEIVING rt_fieldcatalog = lt_fieldcat. LOOP AT lt_fieldcat ASSIGNING <fs_fieldcat>. <fs_fieldcat>-outputlen = 20. ENDLOOP. CALL METHOD lo_alv_grid->set_frontend_fieldcatalog EXPORTING it_fieldcatalog = lt_fieldcat. ENDMETHOD. METHOD set_layout. DATA: lo_layout TYPE REF TO cl_gui_alv_layout. CREATE OBJECT lo_layout EXPORTING i_grid_title = 'ALV Report'. CALL METHOD lo_alv_grid->set_layout EXPORTING is_layout = lo_layout. ENDMETHOD. ENDCLASS. DATA: lo_report TYPE REF TO lcl_alv_report. START-OF-SELECTION. CREATE OBJECT lo_report. lo_report->get_data( ). lo_report->set_field_catalog( ). lo_report->set_layout( ). lo_report->display_alv( ). ``` 这是一个简单的ABAP OOALV报表的示例,它获取了`SPFLI`表中的数据,并展示在ALV报表中。你可以根据自己的需求进行修改和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值