ALV,TABLE TREE等一些控件

今天来总结一下ABAP中一些常用的控件,除去之前写过的一些,还有ALV_GRID, ALV_TREE, TABLE_TREE等。

    现在用的控件很多都是用类写的,而它们的使用,说白一点,就和用JAVA中的类没什么区别,一个诀窍就是记住通用的写法,然后再根据不同控件变化。
    最好,每个控件都总结一个通用模版,这可以大大节约实施中的时间。老白的博客上有不少这方面的例子,我这里就不再写了。同时大家也可以通过 SE38->Environment->Reuse Library/Examples去看一下SAP提供的例子,很多是可以复用的,把结构和参数看熟了就行。
    接下来,说说这些控件的一些特点及一般的使用流程。
    刚刚写ABAP的朋友一定会经常使用到'REUSE_ALV_GRID_DISPLAY'这个function,一个很实用的function,不需要画 屏幕,不需要定义事件,一个简化而美观的输出工具。但是这个function还是有很多有意思的功能的,比如分类统计,给单行或单列上色等等。
    要使用ALV_GRID的所有功能,就需要在Screen上,画上Custom Control,然后再在程序中进行相关的定义。基本上就是OO的那套东西
*-- Global data definitions for ALV

*--- ALV Grid instance reference
DATA gr_alvgrid TYPE REF TO cl_gui_alv_grid .
*--- Name of the custom control added on the screen
DATA gc_custom_control_name TYPE scrfname VALUE 'CC_ALV'.
*--- Custom container instance reference
DATA gr_ccontainer TYPE REF TO cl_gui_custom_container .
*--- Field catalog table
DATA gt_fieldcat TYPE lvc_t_fcat .
*--- Layout structure
DATA gs_layout TYPE lvc_s_layo .
 
    控件的初始化会在PBO中进行,而PAI中就是做一些命令相关的操作。
    如果有事件触发的话,写得时候会麻烦一点,要定一个专门处理事件的类,还要在PBO的时候注册给所需要的控件,设置好触发条件,方可使用。实际应用中,还 要经过很多调试,看看效果是不是能达到要求。而且ALV_GRID作为编辑功能的话,还是有一些缺陷的,比如选择功能,所以实际使用时,适当地选择。
    ALV_TREE的写法和ALV相近,但是是以TREE的格式显示,用得场合不多。
    TABLE_TREE我在实际项目没有用过,自己也是作为知识储备放着,大体写法和ALV_GRID差不多,只是多了个NODE的概念及一些相关的参数和 函数。参看一些资料,再写几个程序,我想大家体会会深一点。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABAP (Advanced Business Application Programming) 中的 ALV (Adaptive Layout Viewer) 提供了一个强大的数据可视化工具。如果你想在 ALV 的树形结构中添加复选框功能,通常会使用 ALV 控件的特性结合用户自定义的逻辑。你可以创建一个包含检查框的行类型(ROWTYPE),然后将其关联到 ALV 的显示表。 以下是一个简单的步骤概述: 1. 创建一个 ALV 行类型,比如 `DATA lt_alv_rowtype TYPE STANDARD_TABLE OF your_data_type`, 其中 `your_data_type` 包含一个布尔类型的字段用于表示是否被选中,如 `selection_field TYPE bool`. 2. 设置 ALV 对象 (`DATA wa_alv TYPE sy-subrc TABLE lt_alv_rowtype`) 的 `SELECTED_KEY` 属性,当点击复选框时更新这个字段。 3. 在 ALV 的列类型 (`LT_ABAP_COLUMN_TYPES`) 中添加一个包含复选框的列,并设置其 `'PROPERTY'` 选项为 `'CHECKBOX'` 或 `'CIRCLE'` 来指示它是复选框样式。 4. 在 ALV 的初始化或循环处理程序 (`LOOP AT`) 中,根据业务逻辑处理复选框的状态,比如记录哪些行被选中或保存到数据库。 ```abap REPORT z_alv_tree_example. DATA lo_alv TYPE REF TO cl_salv_table. data lt_data TYPE my_data_type WITH EMPTY KEY. ... populate your data lo_alv = NEW cl_salv_table( EXPORTING id = 'TREE' type = lt_alv_rowtype IMPORTING itab = lt_data ). lo_alv->set_display( colspec = lt_abap_column_types( ... add checkbox column here ...) ). ... handle events and update SELECTED_KEY when checkbox is clicked... lo_alv->display( ). ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值