Abap ALV列的顺序(带CL_SALV_表)
我有一个程序,它根据类Abap ALV列的顺序(带CL_SALV_表),abap,alv,Abap,Alv,我有一个程序,它根据类CL\u SALV\u table显示一个简单的表,我想将列CURRCODE定位在第五个位置,而不是当前的4个位置(数据库表SCARR中定义的默认顺序),如下所示: 我该怎么做 以下是当前的源代码(使用ABAP 7.40版编译): 注意:如果要复制,并且表SCARR为空,请执行程序SAPBC\u DATA\u GENERATOR,以填充该表。在调用方法display之前,必须分两步执行该操作: 调用ALV实例(类的CL\u SALV\u表的)的GET\u COLUMNS
CL\u SALV\u table
显示一个简单的表,我想将列CURRCODE
定位在第五个位置,而不是当前的4个位置(数据库表SCARR
中定义的默认顺序),如下所示:
我该怎么做
以下是当前的源代码(使用ABAP 7.40版编译):
注意:如果要复制,并且表
SCARR
为空,请执行程序SAPBC\u DATA\u GENERATOR
,以填充该表。在调用方法display
之前,必须分两步执行该操作:
- 调用ALV实例(类的
CL\u SALV\u表的
)的
)方法,以获取与所有列相对应的类的GET\u COLUMNS
CL\u SALV\u COLUMNS\u表的实例
- 后一个类有一个方法
来更改名称作为参数传递的给定列的位置SET\u COLUMN\u POSITION
SELECT * FROM scarr INTO TABLE @DATA(scarr_s).
cl_salv_table=>factory(
IMPORTING
r_salv_table = DATA(salv)
CHANGING
t_table = scarr_s ).
salv->get_columns( )->set_column_position( columnname = 'CURRCODE' position = 5 ). " <== ADD THIS LINE
salv->get_columns( )->set_optimize( ).
salv->display( ).
选择*从SCAR进入表格@数据(SCAR)。
cl_salv_表=>工厂(
进口
r_salv_表=数据(salv)
改变
t_table=scar_s)。
salv->get_columns()->set_column_position(columnname='CURRCODE'position=5)。“获取列()->设置列优化()。
salv->display()。
结果:
注意:我还使用了方法SET\u OPTIMIZE
,以便自动调整所有列的宽度以适应其内容(但这与问题无关)
SELECT * FROM scarr INTO TABLE @DATA(scarr_s).
cl_salv_table=>factory(
IMPORTING
r_salv_table = DATA(salv)
CHANGING
t_table = scarr_s ).
salv->get_columns( )->set_column_position( columnname = 'CURRCODE' position = 5 ). " <== ADD THIS LINE
salv->get_columns( )->set_optimize( ).
salv->display( ).