用户可以在ALV输出的上方和下方使用各种元素设计页眉与页脚。可以使用设计对象进行相关操作。
程序员可以使用许多不同的类型的元素,以形成一个设计对象,然后显示在想要的位置
注:所有设计对象的类和方法在系统内的SALV_FORM_ELEM包中。
(1)元素类型和布局形式
可以使用下列类型的元素来设计对象:
● Header元素(头信息)。
● 带或不带标签的文本元素(文本标签)。
● 动作信息。
注:这些元素只在外观上有所不同。各类型元素没有相关功能连接。
这些元素可以排列在设计对象中。可以选择的布局表单有以下3种:
● 单元素:生成一个元素,并将其显示在所需的位置。
● Row-type布局:排列尽可能多的元素,将其一前一后排成一排。
● Table-type布局:安排尽可能多的元素,将其排列成行和列。
注:可以将二者结合起来布局表单,如可以将行插入到一个表中。
(2)Context节点TOP_OF_LIST和END_OF_LIST
ALV组件提供了两个Context节点TOP_OF_LIST和END_OF_LIST。每个节点包含一个CONTENT属性。这些Context节点用于ALV输出中保存页眉和页脚区域的设计对象的数据。
可以定义Context映射到应用程序一个相同的名称Context节点上,并将该Context设置到设计对象的属性。
(3)设置设计对象(Design Object)
设置设计对象的页眉和页脚区域的步骤如下:
1)映射ALV组件的Context节点TOP_OF_LIST和END_OF_LIST到应用程序Context中
2)创建一个设计对象。要做到这一点,可以使用row-type或table-type布局。将所需的元素插入到这个布局中。
3)如有需要,将元素进行各种设置(设计对象设置)。
4)将设计对象设置为Context节点的CONTENT属性。
(4)设计对象的显示和隐藏
默认情况下,页眉区设计对象和页脚区的设计对象都显示出来。
隐藏和显示这两种设计对象,可以使用接口IF_SALV_WD_TABLE_SETTINGS(实现类的CL_SALV_WD_CONFIG_TABLE)的方法,见表6-24。
表 6-24
6.2.5.1创建设计对象和元素
(1)创建一个设计对象
首先,确定设计对象的基本布局。在显示时,可以决定在一行里显示一个单一的元素或者一排的元素序列,或将多个元素按照某种顺序设置到多个行和列中。使用表6-25中的类用于此目的。
表 6-25
当创建一个标签类型的元素时,必须指定相应的文本元素。这意味着程序员不能使用这个元素作为设计对象中的单个元素。
(2)创建单个元素
已经创建了一个布局设计对象后,可以使用表6-26中的方法来创建各种类型的元素:这些方法可以在类CL_SALV_FORM_LAYOUT_FLOW和CL_SALV_FORM_LAYOUT_GRID中找到。
表 6-26
可以使用表6-27中的类创建对象的元素
表 6-27(www.daowen.com)
注:行类型的布局的创建不需要参数。表型布局创建时需指定行和列的参数。当创建一个元素类型标签时,必须指定相应的文本元素(R_LABEL_FOR),无论所处的布局类型。
6.2.5.2设定设计对象
程序员可以对设计对象作相关设定,并可以为每个设计对象包含的元素作相关设定,在table-type布局的情况下,也可以为单独的列作相关设定。
(1)设计对象设置
程序员可以对设计对象元素进行以下设置,见表6-28(布局为Flow时)和表6-29(布局为Grid时)。
表 6-28
表 6-29
2)设定元素
可为不同类型的元素设定相似的功能,见表6-30
表 6-30
(3)设定列的宽度及对齐
一列在Table-type布局中的设计对象是类CL_SALV_FORM_GRID_COLUMN的一个对象。可以使用类CL_SALV_FORM_LAYOUT_GRID一次创建多个列的对象,具体方法见表6-31。
表 6-31
可以使用列对象来定义列的宽度和对齐列中的元素,具体方法见表6-32
表 6-32
(4)单一元素的宽度和对齐方式设定
可以定义个别元素的宽度和对齐方式。由于技术原因,必须确定该元素是否在Row-type布局或Table-type布局。
● 对于Row-type布局,使用类CL_SALV_FORM_LAYOUT_DATA_FLOW。
● 对于Table-type布局,使用类CL_SALV_FORM_LAYOUT_DATA_GRID。
要更改布局数据,必须首先确定布局类型。取得元素布局的方法见表6-33。
表 6-33
要定义元素的宽度和对齐方式,现在使用的相应类的方法,见表6-34
表 6-34
6.2.5.3 设计对象实例
1)table-type布局ALV输出的页眉
下面的示例演示如何在Table-type布局的ALV输出的页眉中插入一个设计对象
2)Row-Type布局ALV输出的页脚
下面的例子演示了如何在ALV输出的页脚中显示一个文本类型的元素
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。