ABAP ALV 选择屏幕的字段在同一行
时间: 2023-08-14 19:07:25 浏览: 282
ABAP ALV 报表基础模板(两种)
在 ABAP ALV 中,如果希望选择屏幕上的字段显示在同一行,可以通过以下步骤实现:
1. 在 `REUSE_ALV_GRID_DISPLAY` 函数中设置 `I_CALLBACK_PROGRAM` 和 `I_CALLBACK_TOP_OF_PAGE` 参数,分别指定回调函数和页顶回调函数。
2. 在回调函数中,将 `gs_layout-colwidth_optimize` 参数的 `-no_col_optimize` 属性设置为 `X`,这样就可以禁止自动调整列宽。
3. 在 `I_CALLBACK_TOP_OF_PAGE` 回调函数中,使用 `SET PF-STATUS` 语句将屏幕上的所有字段都放在同一行上。
示例代码如下:
```
REPORT z_alv_demo.
DATA: gt_data TYPE TABLE OF mara,
gs_layout TYPE lvc_s_layo,
gs_variant TYPE disvariant,
gv_repid TYPE sy-repid.
gv_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = gv_repid
i_callback_top_of_page = 'TOP_OF_PAGE'
it_fieldcat = gt_fieldcat
TABLES
t_outtab = gt_data
EXCEPTIONS
program_error = 1
OTHERS = 2.
*&---------------------------------------------------------------------*
*& Form TOP_OF_PAGE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM TOP_OF_PAGE.
SET PF-STATUS 'ZALV_STATUS'.
ENDFORM.
```
在上面的例子中,`SET PF-STATUS` 语句将屏幕上的所有字段都显示在同一行上。你需要在自己的代码中根据实际情况进行相应的调整。
阅读全文