如何使网格上的表大小类似于ABAP中的容器大小

如何使网格上的表大小类似于ABAP中的容器大小,abap,alv,Abap,Alv,我需要ABAP alv_网格的帮助 首先,我将向您展示我的代码: "descibe data data: grid type ref to cl_gui_alv_grid, container type ref to cl_gui_custom_container, "create a container if container is initial. container = new cl_gui_custom_

我需要ABAP alv_网格的帮助

首先,我将向您展示我的代码:

 "descibe data
  data: grid            type ref to cl_gui_alv_grid,
        container       type ref to cl_gui_custom_container,
 "create a container
    if container is initial.
        container = new cl_gui_custom_container(                    =
            container_name              = 'CONTAINER'
    *        lifetime                    = LIFETIME_DEFAULT

        ).
"create a grid
if grid is initial.
    grid = new cl_gui_alv_grid( i_parent = container ).


call method grid->set_table_for_first_display
      exporting
       is_layout            = wa_layout
       it_toolbar_excluding = gt_toolbar_excluding

      changing
        it_outtab            = lt_variable
        it_fieldcatalog      = it_fcat.
因此,我有一些类似的东西(图片上的红线正是我在期末考试中需要得到的)

我的目标是使表的大小类似于容器的大小,但我不知道应该在何处添加参数以达到这一目标(如果可能的话)

注意:如有必要,布局如下:

  data wa_layout TYPE lvc_s_layo.
  wa_layout-cwidth_opt = 'X'.

你不是也创建了一个屏幕,你在途中调用它(调用屏幕…)?在这个屏幕上,您创建了自定义容器(container),对吗?你可以在这里修改容器的大小(SE80=>Screens)@JozsefSzikszai是的,我以前用一个自定义控件创建了这个屏幕,但是如果可能的话,这个想法是让一个表(我试图显示)的大小像一个自定义控件的大小。(我知道我可以修改容器的大小,但任务有点不同)。无论如何,谢谢你的建议)看起来我误解了这个问题。我不知道这种功能。布局中的cwidth_选项的工作方式与此相反,它使表格尽可能小(例如,如果一列默认为10个字符,但其中的所有值仅为5个字符,那么无论如何,它也将显示为5个字符(无空白),感谢您的尝试:)没有自动执行此操作的方法
cwidth_opt='X'
仅将单个列调整为其最大文本大小,而不调整为容器的总长度。为了实现您的目标,您应该计算总长度,然后将总长度除以列数,然后逐个设置它们的长度。在手动设置的情况下,删除
cwidth_opt
,因为它会覆盖手动设置。