You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ABAP调用POPUP_WITH_TABLE_DISPLAY弹窗展示表格部分列缺失问题问询

解决方案

你现在使用的POPUP_WITH_TABLE_DISPLAY是SAP早期的老旧弹窗函数,存在两个原生限制导致列显示不全:

  • 弹窗可展示的总列宽由ENDPOS_COL - STARTPOS_COL决定,你当前设置的ENDPOS_COL = 100,总可用宽度只有90个字符,你的自定义表所有字段总宽度超过了该值,因此后续列被截断
  • 该函数本身最多支持展示约10列数据,不支持横向滚动,字段数量超过限制后也会自动省略后续列

方案1:快速调整现有参数(仅适用于字段总宽度不大的场景)

直接放大ENDPOS_COL的参数值,比如调整到255(该函数支持的最大列宽值),也可以同步调大ENDPOS_ROW展示更多行数据,示例修改后的调用代码:

DATA: t_interview TYPE TABLE OF ZBS_HR_I0001.

CASE sy-ucomm.
  WHEN 'DISP'.
    SELECT * FROM ZBS_HR_I0001 INTO TABLE t_interview.
    CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
      EXPORTING
        ENDPOS_COL         = 255 " 放大列宽上限
        ENDPOS_ROW         = 20  " 可调大展示更多行
        STARTPOS_COL       = 1
        STARTPOS_ROW       = 1
        TITLETEXT          = 'Interview Table'
      TABLES
        VALUETAB           = t_interview
      EXCEPTIONS
        BREAK_OFF          = 1
        OTHERS             = 2.

如果调整后还是无法展示所有列,说明字段数量或总宽度超出了该函数的上限,需要换用方案2。

方案2:更换为ALV弹窗函数(推荐,支持全部字段展示、横向/纵向滚动)

使用SAP标准ALV弹窗函数REUSE_ALV_POPUP_TO_SELECT,可以完整展示自定义表的所有字段,还支持自定义字段属性,示例代码如下:

DATA: t_interview TYPE TABLE OF ZBS_HR_I0001,
      gs_layout   TYPE slis_layout_alv.

CASE sy-ucomm.
  WHEN 'DISP'.
    SELECT * FROM ZBS_HR_I0001 INTO TABLE t_interview.
    gs_layout-zebra = 'X'. " 可选:开启斑马纹提高可读性
    CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
      EXPORTING
        i_title          = 'Interview Table'
        i_scroll_to_sel  = 'X'
        i_tabname        = 'T_INTERVIEW'
        i_structure_name = 'ZBS_HR_I0001' " 直接参考自定义表结构自动生成字段目录
        is_layout        = gs_layout
      TABLES
        t_outtab         = t_interview
      EXCEPTIONS
        program_error    = 1
        OTHERS           = 2.

该方案支持横向滚动查看所有列,还可以按需调整字段显示顺序、宽度、是否可编辑等属性,完全适配自定义表的全部展示需求。

内容的提问来源于stack exchange,提问作者hekean1339

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 10:39:03