SPLITTER AND CONTAINER的用法

SPLITTER AND CONTAINER的用法

 

SPLITTER的使用

在SAP开发过程中,我们有时候要实现一些复杂的ALV功能,这个时候FUNCTION ALV就显得不那么灵活方便

这个时候,我们可以采用OO去实现

OO实现的基本步骤

1、首先创建一个自定义屏幕,在屏幕上画一个自定义控件,这里的自定义控件是根据实际业务需要来定大小,并

起一个名字,比如G_CONTAINER,屏幕就画好了

2、开始在程序里具体去实现这个ALV

  一个ALV的组成,我们都比较熟悉,最基本的需要当然是要有fieldcat 和 layout了,这个只是针对基本的查询、

展示功能。然而我们通常要去实现一些复杂业务场景下的功能,这个时候就要添加events了。比如:user_command,

data_change等常用事件,有了这些基本的认识之后,我们下面来具体实现这个ALV

  一个业务功能的首界面通常都是,查询条件的展示,这个我们根据实际所需

  1)自定义好查询界面之后,点击执行,这个时候就调用一个ALV展示界面,如下图所示

这张图只是截取了ALV的展示部分,同时这张图是同时实现了两个ALV的展示,所以在我们起初画的自定义控件上,如何

更好的布局这两个ALV的展示,使其外观美丽大方就显得尤为重要,这里我们就用到了splitter

splitter汉语解释是,分隔器,用它来分隔一个屏幕上的多个ALV展示,让人看着舒服很多

  2)这个ALV屏幕的初始化展示,通常放在事务码的initialization事件当中,也就是说,每次输入完查询条件之后,执

行我们就看到这个屏幕的展示,接下来数据的具体展示就在这张ALV上进行功能操作

上图这个FORM 具体就是用来实现这个ALV的步骤

  3)先去创建一个splitter容器,传入我们起初屏幕上画的自定义控件参数,即就是说我们要在这个自定义控件里来进行整体分割

  

  这里我们来针对这个自定义控件,创建一个splitter分割容器

  4)

  这个form是针对已经创建的splitter容器,进行创建splitter控件,由上图我们可以看到,我们此时是将这个自定义

控件分割成两行一列,就是上下各展示一个ALV

  这样我们就将屏幕分割完成了,接下来开始布局ALV容器和控件

  5)

  这里我们可以看到,是在上面已经分割好的容器里,去开始创建一个ALV容器,在创建的时候,我们必须传递创建的位置坐标,

同时也看到,p_splitter里专门有创建ALV容器的方法,get_container()

  6)在创建好一个ALV容器之后,接下来创建ALV控件

  

  7) 为ALV添加事件响应,如果一个屏幕上有多个ALV展示,我们可以完全调用这同一个form

  

  这里的有一个g_event_receiver_1事件接收器,我们必须先事先定义

  8)这里是我们自定义的一个事件接收器类,里面声明三个方法,分别是,data_changed\user_command

  \toolbar事件

  

  9)下图是对这些方法的具体实现

  

  这里只是做测试,具体的实现没有去写

  同时,定义g_event_receiver_1这个对象,注意这里必须先声明,方可定义,这里是用面向对象的思想,就不过多赘述了

  10)下图是针对ALV上的菜单栏的添加,这里只是截取了一部分,在这里主要是进行隐藏,实际情况

  可以根据具体业务进行增减

  

ALV上的菜单栏做好后,下来开始设置layout\fieldcat这两个基本的组件了

  11)layout\fieldcat 设置如下图所示

  

  

  这里的gi_fcat_1-edit = 'X',是用来设置ALV的选择框

  12)接下来是最后的展示,将我们前面所有的准备做一个展示

  

  13)在起初的屏幕PBO里做最后的ALV刷新

  

  

  以上就是实现一个OO复杂的ALV的基本步骤,这里只是梳理的一个实现的思路,代码通过调试验证。

  当然方法还有更好的,欢迎一起深入研究

posted @ 2015-01-17 16:30  林中白狼-LBG  阅读(308)  评论(0编辑  收藏  举报