daniel_daniel1
15/07/08, 17:12:21
BUENAS TARDE, TENGO UN PROBLEMA CON UN ALV JERARQUICO SIN OBJETOS,
MI PROBLEMA ES EL SIGUIENTE, QUISE HACER UNA PRUEBA MUY SENCILLA EN EL CUAL EL ALV JERARQUICO RESPONDA AL DOBLE CLICK, YO LO HICE UNA VES Y LO HICE TAL CUAL ESTA ECHO ESTE CODIGO (OBVIAMENTE EL OTRO NO ERA TAN SENCILLO) Y FUNCIONO PERFECTO, PERO AHORA LO HICE MUCHISIMO MAS SIMPLE Y NO PUEDO HACER QUE POR EJEMPLO CUANDO SE HAGA DOBLE CLICK EN EL ALV ME SALGA UN CARTEL DE HOLA DEL TIPO I, SI ALGUIEN SABE EL PORQUE SE LO AGRADECERIA MUCHISIMO, DESDE YA MUCHAS GRACIAS A TODOS.
LES DEJO EL CODIGO PARA QUE ME PUEDAN DECIR DONDE ES QUE ME EQUIVOQUE.
MUCHAS GRACIAS POR TODO.
*&---------------------------------------------------------------------*
*& Report Z____ALV_JERAQUICO
*&
*&---------------------------------------------------------------------*
REPORT z____alv_jeraquico.
TYPE-POOLS: slis.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
ga_key TYPE slis_keyinfo_alv,
ga_layout TYPE slis_layout_alv,
g_repid TYPE sy-repid,
g_tabname_header TYPE slis_tabname,
g_tabname_item TYPE slis_tabname,
g_consulta TYPE c.
DATA: gt_header TYPE STANDARD TABLE OF SFLIGHT,
gt_item TYPE STANDARD TABLE OF SFLIGHT,
ga_header TYPE sflight.
PARAMETERS: p_carrid TYPE sflight-carrid,
p_connid TYPE sflight-connid.
START-OF-SELECTION.
g_tabname_header = 'GT_HEADER'.
g_tabname_item = 'GT_ITEM'.
g_repid = 'Z____ALV_JERARQUICO'.
SELECT SINGLE carrid connid FROM sflight
INTO CORRESPONDING FIELDS OF ga_header
WHERE carrid = p_carrid
AND connid = p_connid.
APPEND ga_header TO gt_header.
SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE gt_item.
PERFORM f_key.
PERFORM f_fieldcat USING gt_fieldcat.
PERFORM f_layout.
PERFORM f_llamar_alv.
*&---------------------------------------------------------------------*
*& Form f_fieldcat
*&---------------------------------------------------------------------*
FORM f_fieldcat CHANGING rt_fieldcat TYPE slis_t_fieldcat_alv.
DATA ls_fieldcat TYPE slis_fieldcat_alv.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'CARRID'.
ls_fieldcat-reptext_ddic = 'AEROLINEA'.
ls_fieldcat-just = 'C'.
ls_fieldcat-tabname = 'GT_ITEM'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'CONNID'.
ls_fieldcat-reptext_ddic = 'NUMERO DE VUELO'.
ls_fieldcat-just = 'C'.
ls_fieldcat-tabname = 'GT_ITEM'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'FLDATE'.
ls_fieldcat-reptext_ddic = 'FECHA DE VUELO'.
ls_fieldcat-just = 'C'.
ls_fieldcat-tabname = 'GT_ITEM'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'CARRID'.
ls_fieldcat-just = 'R'.
ls_fieldcat-reptext_ddic = 'AEROLINEA'.
ls_fieldcat-tabname = 'GT_HEADER'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'CONNID'.
ls_fieldcat-just = 'R'.
ls_fieldcat-seltext_m = 'NUMERO DE VUELO'.
ls_fieldcat-tabname = 'GT_HEADER'.
APPEND ls_fieldcat TO rt_fieldcat.
ENDFORM. " p_fc_cabecera
*&---------------------------------------------------------------------*
*& Form f_key
*&---------------------------------------------------------------------*
FORM f_key .
CLEAR ga_key.
ga_key-header01 = 'CARRID'.
ga_key-item01 = 'CARRID'.
ga_key-header02 = 'CONNID'.
ga_key-item02 = 'CONNID'.
ENDFORM. " P_KEY
*&---------------------------------------------------------------------*
*& Form f_layout
*&---------------------------------------------------------------------*
FORM f_layout .
ga_layout-zebra = 'X'.
ENDFORM. " layout
*&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
FORM user_command USING r_ucomm TYPE sy-ucomm
ra_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
MESSAGE 'HOLA' TYPE 'I'.
ENDCASE.
ENDFORM. "USER_COMMAND
*&---------------------------------------------------------------------*
*& Form f_llamar_alv
*&---------------------------------------------------------------------*
FORM f_llamar_alv .
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_callback_user_command = 'USER_COMMAND'
is_layout = ga_layout
it_fieldcat = gt_fieldcat
i_tabname_header = g_tabname_header
i_tabname_item = g_tabname_item
is_keyinfo = ga_key
TABLES
t_outtab_header = gt_header
t_outtab_item = gt_item
EXCEPTIONS
program_error = 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.
ENDFORM. " f_llamar_alv
MI PROBLEMA ES EL SIGUIENTE, QUISE HACER UNA PRUEBA MUY SENCILLA EN EL CUAL EL ALV JERARQUICO RESPONDA AL DOBLE CLICK, YO LO HICE UNA VES Y LO HICE TAL CUAL ESTA ECHO ESTE CODIGO (OBVIAMENTE EL OTRO NO ERA TAN SENCILLO) Y FUNCIONO PERFECTO, PERO AHORA LO HICE MUCHISIMO MAS SIMPLE Y NO PUEDO HACER QUE POR EJEMPLO CUANDO SE HAGA DOBLE CLICK EN EL ALV ME SALGA UN CARTEL DE HOLA DEL TIPO I, SI ALGUIEN SABE EL PORQUE SE LO AGRADECERIA MUCHISIMO, DESDE YA MUCHAS GRACIAS A TODOS.
LES DEJO EL CODIGO PARA QUE ME PUEDAN DECIR DONDE ES QUE ME EQUIVOQUE.
MUCHAS GRACIAS POR TODO.
*&---------------------------------------------------------------------*
*& Report Z____ALV_JERAQUICO
*&
*&---------------------------------------------------------------------*
REPORT z____alv_jeraquico.
TYPE-POOLS: slis.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
ga_key TYPE slis_keyinfo_alv,
ga_layout TYPE slis_layout_alv,
g_repid TYPE sy-repid,
g_tabname_header TYPE slis_tabname,
g_tabname_item TYPE slis_tabname,
g_consulta TYPE c.
DATA: gt_header TYPE STANDARD TABLE OF SFLIGHT,
gt_item TYPE STANDARD TABLE OF SFLIGHT,
ga_header TYPE sflight.
PARAMETERS: p_carrid TYPE sflight-carrid,
p_connid TYPE sflight-connid.
START-OF-SELECTION.
g_tabname_header = 'GT_HEADER'.
g_tabname_item = 'GT_ITEM'.
g_repid = 'Z____ALV_JERARQUICO'.
SELECT SINGLE carrid connid FROM sflight
INTO CORRESPONDING FIELDS OF ga_header
WHERE carrid = p_carrid
AND connid = p_connid.
APPEND ga_header TO gt_header.
SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE gt_item.
PERFORM f_key.
PERFORM f_fieldcat USING gt_fieldcat.
PERFORM f_layout.
PERFORM f_llamar_alv.
*&---------------------------------------------------------------------*
*& Form f_fieldcat
*&---------------------------------------------------------------------*
FORM f_fieldcat CHANGING rt_fieldcat TYPE slis_t_fieldcat_alv.
DATA ls_fieldcat TYPE slis_fieldcat_alv.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'CARRID'.
ls_fieldcat-reptext_ddic = 'AEROLINEA'.
ls_fieldcat-just = 'C'.
ls_fieldcat-tabname = 'GT_ITEM'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'CONNID'.
ls_fieldcat-reptext_ddic = 'NUMERO DE VUELO'.
ls_fieldcat-just = 'C'.
ls_fieldcat-tabname = 'GT_ITEM'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'FLDATE'.
ls_fieldcat-reptext_ddic = 'FECHA DE VUELO'.
ls_fieldcat-just = 'C'.
ls_fieldcat-tabname = 'GT_ITEM'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'CARRID'.
ls_fieldcat-just = 'R'.
ls_fieldcat-reptext_ddic = 'AEROLINEA'.
ls_fieldcat-tabname = 'GT_HEADER'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'CONNID'.
ls_fieldcat-just = 'R'.
ls_fieldcat-seltext_m = 'NUMERO DE VUELO'.
ls_fieldcat-tabname = 'GT_HEADER'.
APPEND ls_fieldcat TO rt_fieldcat.
ENDFORM. " p_fc_cabecera
*&---------------------------------------------------------------------*
*& Form f_key
*&---------------------------------------------------------------------*
FORM f_key .
CLEAR ga_key.
ga_key-header01 = 'CARRID'.
ga_key-item01 = 'CARRID'.
ga_key-header02 = 'CONNID'.
ga_key-item02 = 'CONNID'.
ENDFORM. " P_KEY
*&---------------------------------------------------------------------*
*& Form f_layout
*&---------------------------------------------------------------------*
FORM f_layout .
ga_layout-zebra = 'X'.
ENDFORM. " layout
*&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
FORM user_command USING r_ucomm TYPE sy-ucomm
ra_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
MESSAGE 'HOLA' TYPE 'I'.
ENDCASE.
ENDFORM. "USER_COMMAND
*&---------------------------------------------------------------------*
*& Form f_llamar_alv
*&---------------------------------------------------------------------*
FORM f_llamar_alv .
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_callback_user_command = 'USER_COMMAND'
is_layout = ga_layout
it_fieldcat = gt_fieldcat
i_tabname_header = g_tabname_header
i_tabname_item = g_tabname_item
is_keyinfo = ga_key
TABLES
t_outtab_header = gt_header
t_outtab_item = gt_item
EXCEPTIONS
program_error = 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.
ENDFORM. " f_llamar_alv