Chinaunix首页 | 论坛 | 博客
  • 博客访问: 967149
  • 博文数量: 463
  • 博客积分: 10070
  • 博客等级: 上将
  • 技术积分: 4963
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-16 14:16
文章分类

全部博文(463)

文章存档

2011年(18)

2010年(144)

2009年(83)

2008年(218)

我的朋友

分类: IT职场

2008-07-24 15:08:03

    今天来总结一下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的概念及一些相关的参数和函数。参看一些资料,再写几个程序,我想大家体会会深一点。
阅读(2939) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~