Seleccionar un LAYOUT

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • winsor
    Junior Member
    • dic
    • 14

    #1

    Seleccionar un LAYOUT

    Hola,

    Tengo un formato ALV, y cada vez que visualizo los datos, selecciono manualmente un layout que grave previamente.

    Existe alguna forma de que sea automático, es decir que desde el programa se le diga que tome el layout deseado...?

    Gracias por su colaboración.

    Winsor Triana
  • DCErick
    Moderator
    • mar
    • 1090

    #2
    Espero y esto te sea de utilidad


    Código:
    DATA: it_variant    LIKE disvariant.
    Código:
    PARAMETER: p_vari LIKE disvariant-variant.
    Código:
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
      it_variant-report = sy-repid.
    
    * it is the same asking for c_head4 or c_head5 (and positions)
      CALL FUNCTION 'LT_F4_FOR_VARIANTS'
        EXPORTING
          is_variant      = it_variant
          i_user_specific = 'X'
    *      I_TABNAME       = C_HEAD4
    *      I_TABNAME_SLAVE = C_POS4
        IMPORTING
          es_variant      = it_variant
        EXCEPTIONS
          not_found       = 1
          OTHERS          = 2.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    
      p_vari = it_variant-variant.
    Código:
    AT SELECTION-SCREEN.
    
      MOVE: p_vari  TO it_variant-variant,
            sy-repid TO it_variant-report.
    
      CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
        EXPORTING
          i_save        = 'A'
        CHANGING
          cs_variant    = it_variant
        EXCEPTIONS
          wrong_input   = 1
          not_found     = 2
          program_error = 3
          OTHERS        = 4.
    Código:
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
        EXPORTING
          i_callback_program       = w_repid
          i_callback_pf_status_set = w_status
          i_callback_user_command  = w_comm
          is_layout                = x_layout
          it_fieldcat              = ct_fieldcat
          it_events                = it_events
          it_sort                  = ti_alv_sort
          it_filter                = ti_alv_filter
      [B]    is_variant               = it_variant
          i_save                   = 'X'[/B]
        TABLES
          t_outtab                 = t_alv
        EXCEPTIONS
          program_error            = 1
          OTHERS                   = 2.
    Cualquier duda a tus ordenes.
    -------------------
    ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

    Comentario

    • winsor
      Junior Member
      • dic
      • 14

      #3
      Hola DCErick.

      Muchas gracias. Fue de gran ayuda.

      Winsor

      Comentario

      Trabajando...