Grid 带ALV栅格和Tabstrip控制的分屏

Grid 带ALV栅格和Tabstrip控制的分屏,grid,abap,alv,Grid,Abap,Alv,我想询问在ALV中拆分以下屏幕的正确方法: 第一个屏幕,带有CL\U GUI\U ALV\U网格类型 第二个屏幕是带有选项卡条控件的子屏幕 使用docker时,在运行时调整屏幕大小时会出现问题。我无法提供两个屏幕的比率。 有没有一种方法可以将CL_GUI_SPLITTER_容器也用于带有选项卡条控件的屏幕 谢谢大家! 以下代码对窗高的变化作出反应。它不会对窗口宽度做出反应,这是Dynpro的限制,因此大多数情况下,它会对窗口按钮最小化和还原做出反应,除非窗口正好位于显示器的左半或右半(组合键Wi

我想询问在ALV中拆分以下屏幕的正确方法:

  • 第一个屏幕,带有CL\U GUI\U ALV\U网格类型
  • 第二个屏幕是带有选项卡条控件的子屏幕
  • 使用docker时,在运行时调整屏幕大小时会出现问题。我无法提供两个屏幕的比率。 有没有一种方法可以将CL_GUI_SPLITTER_容器也用于带有选项卡条控件的屏幕


    谢谢大家!

    以下代码对窗高的变化作出反应。它不会对窗口宽度做出反应,这是Dynpro的限制,因此大多数情况下,它会对窗口按钮最小化和还原做出反应,除非窗口正好位于显示器的左半或右半(组合键Windows+左和Windows+右)。SY-SCOLS和SY-SROWS是我知道的在显示dynpro屏幕时获取窗口大小的唯一方法,但可能还有其他方法

    DATA go_docking TYPE REF TO cl_gui_docking_container.
    DATA ok_code TYPE syucomm.
    DATA ratio TYPE i VALUE 70.
    DATA pixels_by_sy_scol TYPE p DECIMALS 2.
    
    CALL SCREEN 100.
    
    MODULE pbo OUTPUT.
      IF go_docking IS INITIAL.
        CREATE OBJECT go_docking
          EXPORTING
            repid = sy-repid
            dynnr = sy-dynnr
            side  = cl_gui_docking_container=>dock_at_left
            ratio = ratio.
        go_docking->get_extension( IMPORTING extension = DATA(extension) ).
        cl_gui_cfw=>flush( ). " to calculate the extension (by default in pixels)
        pixels_by_sy_scol = extension * 100 / ratio / sy-scols.
      ELSE.
        go_docking->set_extension( sy-scols * pixels_by_sy_scol * ratio / 100 ).
      ENDIF.
    ENDMODULE.
    

    不,您不能在容器中嵌入经典SAP GUI元素(在您的情况下是选项卡条控件)。调整大小有什么问题?我无法为屏幕比例设置docker(例如,在拆分器控制中,第一个屏幕为70%,第二个屏幕为30%)。按下“向下还原”(窗口中间按钮)时,小屏幕不可见时出现问题。用户只能拖动tabstrip sceen。谢谢@Sandra。我会尽力把你的建议写进我的PBO里。