Ayuddaa Cabecera de ALV

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Rodolfo Montiel Rivera
    Member
    • oct
    • 92

    #1

    Ayuddaa Cabecera de ALV

    Saludos recurro a ustedes por que ya estoy necesito ideas de por que por que y por quuueeee no me sale la cabecera de mi alv ya estoy en todos los estados pppfff y es que puede estar pegandole a mi ALV ????

    Gracias!!!

    les copio aqui el codigo

    &---------------------------------------------------------------------*
    *& Form DESPLEGAR_ALV
    *&---------------------------------------------------------------------*
    * Despliegue de ALV
    *----------------------------------------------------------------------*
    FORM desplegar_alv .

    CLEAR: v_procesa.
    PERFORM crear_catalogo.
    PERFORM arregla_catalogo.
    PERFORM otras_variables.
    PERFORM eventos.
    PERFORM llamadaalv.

    ENDFORM. " DESPLEGAR_ALV

    *&---------------------------------------------------------------------*
    *& Form CREAR_CATALOGO
    *&---------------------------------------------------------------------*
    FORM crear_catalogo .

    DATA: v_prog LIKE sy-repid.
    v_prog = sy-cprog.

    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
    i_program_name = v_prog
    i_internal_tabname = 'T_LOG'
    * I_STRUCTURE_NAME =
    * I_CLIENT_NEVER_DISPLAY = 'X'
    i_inclname = v_prog
    i_bypassing_buffer = 'X'
    * I_BUFFER_ACTIVE =
    CHANGING
    ct_fieldcat = row_fieldcat[]
    EXCEPTIONS
    inconsistent_interface = 1
    program_error = 2
    OTHERS = 3.
    IF sy-subrc <> 0.
    EXIT.
    ENDIF.

    ENDFORM. " CREAR_CATALOGO

    *&---------------------------------------------------------------------*
    *& Form ARREGLA_CATALOGO
    *&---------------------------------------------------------------------*
    FORM arregla_catalogo .

    LOOP AT row_fieldcat.
    IF row_fieldcat-fieldname EQ 'ROL_NAME01'.
    v_ind = 1.
    ENDIF.
    CONCATENATE 'ROL_NAME' v_ind INTO v_campo.
    MOVE sy-tabix TO v_tabix.
    CASE row_fieldcat-fieldname.

    WHEN 'ICONO'.
    row_fieldcat-reptext_ddic = text-021. "Estatus
    row_fieldcat-seltext_l = text-021.
    row_fieldcat-ddictxt = 'L'.
    row_fieldcat-icon = 'X'.

    WHEN 'TIPO'.
    row_fieldcat-reptext_ddic = text-022. "Tipo
    row_fieldcat-seltext_l = text-022.
    row_fieldcat-ddictxt = 'L'.

    WHEN 'USERNAME'.
    row_fieldcat-seltext_l = text-020. "Usuario
    row_fieldcat-reptext_ddic = text-020. "Usuario
    row_fieldcat-ddictxt = 'L'.

    WHEN 'DETALLE'.
    row_fieldcat-seltext_l = text-023. "Detalle
    row_fieldcat-reptext_ddic = text-023. "Detalle
    row_fieldcat-ddictxt = 'L'.

    WHEN v_campo.
    IF rb_cte EQ 'X'.
    row_fieldcat-no_out = 'X'.
    ELSE.
    READ TABLE t_namerol INDEX v_ind.
    IF t_namerol-name IS NOT INITIAL.
    row_fieldcat-seltext_s = t_namerol-name. "Nombre de Rol
    row_fieldcat-reptext_ddic = t_namerol-name. "Nombre de Rol
    row_fieldcat-ddictxt = 'S'.
    row_fieldcat-outputlen = 2.
    ELSE.
    row_fieldcat-no_out = 'X'.
    ENDIF.
    ENDIF.

    ENDCASE.
    MODIFY row_fieldcat INDEX v_tabix.
    ADD 1 TO v_ind.
    ENDLOOP.

    ENDFORM. " ARREGLA_CATALOGO

    *&---------------------------------------------------------------------*
    *& Form OTRAS_VARIABLES
    *&---------------------------------------------------------------------*
    FORM otras_variables .

    row_print-no_print_listinfos = 'X'.
    row_grid_settings-eol_p_only = 'X'.
    IF rb_cte EQ 'X'.
    pa_var = '/DEFAULT'.
    row_variant-variant = pa_var.
    ELSE.
    IF t_namerol[] IS NOT INITIAL.
    row_variant-variant = '/VERROLES'.
    ELSE.
    row_variant-variant = '/DEFAULT'.
    ENDIF.
    ENDIF.

    ENDFORM. " OTRAS_VARIABLES
    *&---------------------------------------------------------------------*
    *& Form EVENTS
    *&---------------------------------------------------------------------*
    FORM eventos .

    DATA: t_event TYPE slis_alv_event.

    t_event-name = 'TOP_OF_PAGE'.
    t_event-form = 'TOP_OF_PAGE'.
    APPEND t_event TO row_xevents.

    ENDFORM. " EVENTS

    *&---------------------------------------------------------------------*
    *& Form TOP_OF_PAGE
    *&---------------------------------------------------------------------*
    FORM top_of_page.

    DATA: row_header TYPE slis_t_listheader, " Tabla con el Título
    wa_header TYPE slis_listheader. " Work Area con el Título

    * Cargo el Título
    wa_header-typ = 'H'.
    wa_header-info = 'Reporte Creación de Usuarios/Roles'.
    APPEND wa_header TO row_header.
    * Cargo el Subtítulo
    CLEAR wa_header.
    wa_header-typ = 'H'.
    wa_header-info = sy-uname.
    APPEND wa_header TO row_header.

    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    it_list_commentary = row_header[].


    ENDFORM. " EVENTS" TOP_OF_PAGE

    *&---------------------------------------------------------------------*
    *& Form LLAMADAALV
    *&---------------------------------------------------------------------*
    FORM llamadaalv .

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    * I_INTERFACE_CHECK = ' '
    * I_BYPASSING_BUFFER = ' '
    * I_BUFFER_ACTIVE = ' '
    i_callback_program = v_cprog
    * I_CALLBACK_PF_STATUS_SET = ' '
    * I_CALLBACK_USER_COMMAND = ' '
    I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
    i_grid_settings = row_grid_settings
    is_layout = row_layout
    it_fieldcat = row_fieldcat[]
    i_save = 'A'
    is_variant = row_variant
    it_events = row_xevents[]
    * IT_EVENT_EXIT =
    is_print = row_print
    TABLES
    t_outtab = t_log.

    ENDFORM. " LLAMADAALV
    01010000
    01001010
    10011000
    10100001

    De Byte a Beat.
  • Rodolfo Montiel Rivera
    Member
    • oct
    • 92

    #2
    Que creen ya lo corregi fue error de Interfaz de Usuario Jajajaja QUIERO LLORAR


    chequen:

    Variables Globales
    DATA: v_procesa(1) TYPE c, "Indicador de proceso
    v_campo(30) TYPE c,
    v_ind(2) TYPE n,
    v_flag(1) TYPE c VALUE 'X',
    v_tabix TYPE sy-tabix,
    v_cprog LIKE sy-cprog.


    ****************************
    FORM desplegar_alv .

    CLEAR: v_procesa.
    PERFORM crear_catalogo.
    PERFORM arregla_catalogo.
    PERFORM otras_variables.
    PERFORM events.
    PERFORM llamadaalv.

    ENDFORM.

    ******************************
    FORM crear_catalogo .
    DATA: v_prog LIKE sy-repid.
    v_prog = sy-cprog.

    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
    i_program_name = v_prog
    i_internal_tabname = 'T_LOG'
    * I_STRUCTURE_NAME =
    * I_CLIENT_NEVER_DISPLAY = 'X'
    i_inclname = v_prog
    i_bypassing_buffer = 'X'
    * I_BUFFER_ACTIVE =
    CHANGING
    ct_fieldcat = row_fieldcat[]
    EXCEPTIONS
    inconsistent_interface = 1
    program_error = 2
    OTHERS = 3.
    IF sy-subrc <> 0.

    ENDIF.

    ENDFORM.

    ****************************

    FORM llamadaalv .

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    * I_INTERFACE_CHECK = ' '
    * I_BYPASSING_BUFFER = ' '
    * I_BUFFER_ACTIVE = ' '
    i_callback_program = v_cprog
    * I_CALLBACK_PF_STATUS_SET = ' '
    * I_CALLBACK_USER_COMMAND = ' '
    I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
    i_grid_settings = row_grid_settings
    is_layout = row_layout
    it_fieldcat = row_fieldcat[]
    i_save = 'A'
    is_variant = row_variant
    it_events = str_xevents[]
    * IT_EVENT_EXIT =
    is_print = row_print
    TABLES
    t_outtab = t_log.



    AHORA LO RARO ES OPR QUE NO TRONO
    ENDFORM. " LLAMADAALV
    01010000
    01001010
    10011000
    10100001

    De Byte a Beat.

    Comentario

    • DavidXD_XD
      Moderator
      • ago
      • 1255

      #3
      Hola, aver intenta esto

      1. Quita la tabla interna de eventos de la funcion REUSE_ALV_GRID_DISPLAY
      2. Asegurate que el parametro de la funcion I_CALLBACK_TOP_OF_PAGE sea el mismo que la subrutina (TOP_OF_PAGE), ojo ... respetar mayusculas porsiaca
      3. Asegurate tbm que el nombre de tu programa vaya dentro del parametro I_CALLBACK_PROGRAM de la funcion
      4. Colocale un breakpoint dentro de cualquier sentencia dentro de la subrutina TOP_OF_PAGE para que veas si pasa por ahi o no

      Nos cuentas como te fue ...

      Editado.
      Jeje, q bien q se resolvio el problema, no vi el segundo post
      David Carballido Córdova

      Comentario

      Trabajando...