Dynrpo para dos ALVs

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Redosan
    Junior Member
    • ene
    • 2

    #1

    Dynrpo para dos ALVs

    Buenos días.

    He realizado un programa que muestra 2 ALVs en un mismo Dynpro usando la guía que se puede ver en este post del foro.

    Básicamente tengo una Dynrpo que contiene dos custom controls, dentro de los cuales inserto los ALVs:



    Diseño en el screen painter:






    Como se muestra:





    No conozco muy bien como manejar en screen painter por ahora, así que me gustaría que me aconsejaseis como dejarlo algo más bonito. Más específicamente, me gustaría saber como hacer un par de cosas:

    1- Que los ALVs queden fijados a los bordes, para que si redimensiono la pantalla siempre se ajusten a todo el espacio de la ventana que puedan ocupar.

    2- Que se pueda redimensionar el ancho del contenedor. Lo típico de arrastrar la separación entre ambos ALVs para dar más ancho a uno u otro.

    Si podéis echarme un cable para dejarlo presentable, muchísimas gracias de antemano.

    Un saludo.
  • vic3
    Member
    • mar
    • 33

    #2
    Para resolver el tamaño de tus ALVs y que se ajusten a la ventana sin necesidad de pintar los custom_control en el Layout... En el PBO de tu dynpro:

    *---> Generar el container.
    CREATE OBJECT g_doc_cont_cntrl_new
    EXPORTING
    side = cl_gui_docking_container=>dock_at_left
    extension = 10000
    name = 'CONT_CNTRL'
    EXCEPTIONS
    cntl_error = 1
    cntl_system_error = 2
    create_error = 3
    lifetime_error = 4
    lifetime_dynpro_dynpro_link = 5
    OTHERS = 6.

    * Espacios en pantalla donde habrá contenedores --> Elige una de las 2 formas
    ---------------------------------------------- (horizontales)
    CREATE OBJECT g_splitter
    EXPORTING
    parent = g_doc_cont_cntrl_new
    rows = 1
    columns = 2.
    --------------------------------------------- (verticales)
    CREATE OBJECT g_splitter
    EXPORTING
    parent = g_doc_cont_cntrl_new
    rows = 2
    columns = 1.
    ----------------------------------------------

    *---> Tamaño de los contenedores -----> CON ESTO LE DAS EL TAMAÑO
    CALL METHOD g_splitter->set_column_width
    EXPORTING
    id = 1
    width = 20.

    CALL METHOD g_splitter->set_column_width
    EXPORTING
    id = 2
    width = 50.


    *---> Contenedor ALV
    CALL METHOD g_splitter->get_container
    EXPORTING
    row = 1
    column = 2
    RECEIVING
    container = g_container1.

    CALL METHOD g_splitter->get_container
    EXPORTING
    row = 1
    column = 2
    RECEIVING
    container = g_container2.

    *---> Creación de objetos
    CREATE OBJECT grid
    EXPORTING
    i_parent = g_container1.

    CREATE OBJECT grid
    EXPORTING
    i_parent = g_container2.


    Sí quieres te dejo por aquí también las variables --> Añade las que necesites

    DATA: g_custom_container TYPE REF TO cl_gui_custom_container,
    g_doc_cont_cntrl_new TYPE REF TO cl_gui_docking_container,
    g_splitter TYPE REF TO cl_gui_splitter_container,
    g_container1 TYPE REF TO cl_gui_container,
    g_container2 TYPE REF TO cl_gui_container,
    grid TYPE REF TO cl_gui_alv_grid, "ALV
    grid2 TYPE REF TO cl_gui_alv_grid. "ALV
    Editado por última vez por vic3; 30/01/2019, 13:59:35.
    Consultor técnico SAP

    Comentario

    Trabajando...