PDA

Ver la Versión Completa : Ayuddaa Cabecera de ALV


Rodolfo Montiel Rivera
29/01/09, 21:08:11
Saludos recurro a ustedes por que ya estoy :confused: necesito ideas de por que por que y por quuueeee no me sale la cabecera de mi alv :( :( :( :confused: :confused: :confused: :mad: :mad: :mad: 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

Rodolfo Montiel Rivera
29/01/09, 22:03:12
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

DavidXD_XD
29/01/09, 22:05:15
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 :p
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 ... :D

Editado.
Jeje, q bien q se resolvio el problema, no vi el segundo post :p