Problema Con Alv Jerarquico

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • daniel_daniel1
    Member
    • may
    • 31

    #1

    Problema Con Alv Jerarquico

    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
  • ibecerra

    #2
    Te falta el status.
    SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFFF;}I_CALLBACK_PF_STATUS_SET = 'ZMENU' --> ejemplo

    crealo con la tx.SE41. y te va funcionar yo ya lo hice.
    saludos

    Comentario

    • daniel_daniel1
      Member
      • may
      • 31

      #3
      Problema Con Alv Jerarquico

      Muchas Gracias Por Tu Ayuda, Voy A Probar Como Funciona Y Te Aviso.

      Gracias Por Tu Tiempo.

      Comentario

      • daniel_daniel1
        Member
        • may
        • 31

        #4
        Problema Con Alv Jerarquico

        DISCULPA, NI HICE LO QUE ME RECOMENDASTES PORQUE NO ENTENDI LO QUE ME DIJISTES:

        SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFFF;}

        ESO NO ENTENDI DONDE LO HAGO??

        TX.SE41 TE REFERIS A LA TRANSACCION SE41?

        Y AHUNQUE MODIFICARA LO QUE ME DIJISTES QUE HAGA, LO QUE ME QUEDA LA DUDA ES PORQUE EN OTRO PROGRAMA QUE HICE SIN PONER EL STATUS EN I_CALLBACK_PF_STATUS_SET EL EVENTO DOBLE CLICK QUE DECLARE EN EL USER COMMAN ME FUNCIONO PERFECTAMENTE Y AHORA NO.

        MUCHAS GRACIAS Y DESDE YA PERDON POR VOLVER A MOLESTARTE PERO LA VERDAD ES QUE ESTOY INTRIGADO POR ESTE PROBLEMA EN PARTICULAR.

        Comentario

        • ibecerra

          #5
          sorry pero esta cojudes lo ha puesto ("SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFFF;}") el editor q tengo
          si es la TRANSACCION SE41 create un status para ese programa

          Comentario

          • daniel_daniel1
            Member
            • may
            • 31

            #6
            Problema Con Alv Jerarquico

            En El Status Debo Incluir Algun Boton O Algun Function Code En Especial?

            Comentario

            • ibecerra

              #7
              Ya se cual es el problema

              SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFFF;}.L1S31 {font-style: italic;color: #808080;}.L1S32 {color: #3399FF;}.L1S33 {color: #4DA619;}.L1S52 {color: #0000FF;} CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
              EXPORTING
              i_callback_program = 'ZALVGE'
              i_callback_user_command = 'USER_COMMAND' --> debe ser mayuscula
              * I_CALLBACK_PF_STATUS_SET = 'SET_STATUS'
              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.

              Comentario

              • daniel_daniel1
                Member
                • may
                • 31

                #8
                Problema Con Alv Jerarquico

                Lamentablemente Esta En Mayuscula.

                La Verdad Que Estoy Desconsertado, Porque Creo Que Los Conocimientos Estan Bien Aplicados Pero No Se Porque No Puedo Hacer Que Haga Algo En El Doble Click.

                Gracias Igual Por Tu Contestacion.

                Comentario

                • ibecerra

                  #9
                  ok, no desepereis si con esto no te sale.. ya seria fatal
                  1. ejecuta tu progama que salga el reporte...
                  2.vas al menu sistemas-->status
                  veras q por defecto sab te pone un menu status
                  Programa(GUI) SAPLKKBL
                  tatus interfase STANDARD
                  3. vas a la se41 menu interfase de usuario --> copiar -- status
                  de
                  Programa SAPLKKBL
                  Status STANDARD

                  A ..
                  Programa ZALVGE --> tu programa..
                  Status STANDARD
                  4. vas a la se38 ZALVGE
                  y has lo siguiente fijate.
                  si con esto no sale...... me vuelvo BIOLOGO
                  SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFFF;}.L1S31 {font-style: italic;color: #808080;}.L1S32 {color: #3399FF;}.L1S33 {color: #4DA619;}.L1S52 {color: #0000FF;}FORM f_llamar_alv .
                  CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
                  EXPORTING
                  i_callback_program = 'ZALVGE'
                  i_callback_user_command = 'USER_COMMAND'
                  I_CALLBACK_PF_STATUS_SET = 'SET_STATUS'
                  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

                  *&---------------------------------------------------------------------*
                  *& Form user_command
                  *&---------------------------------------------------------------------*
                  * text
                  *----------------------------------------------------------------------*
                  * -->R_UCOMM text
                  * -->RA_SELFIELD text
                  *----------------------------------------------------------------------*
                  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 set_status USING rt_extab TYPE slis_t_extab.

                  SET PF-STATUS 'STANDARD'.
                  ENDFORM. "set_status

                  Comentario

                  • daniel_daniel1
                    Member
                    • may
                    • 31

                    #10
                    Problema Con Alv Jerarquico

                    PARECE MENTIRA PERO SI HAY DOS LUGARES NOS HACEMOS BIOLOGOS AMBOS!!!!!

                    NO, NO FUNCIONO, LO QUE SI NOTO ES QUE LA BARRA DE STATUS CUANDO MUESTRO EL ALV NO ME LA MUESTRA ALGUNOS BOTONES, LOS QUE DEFINE LA BARRA STANDARD EN "APLICATION TOOLBARS". OSEA NO SE SI ME ESTA LEVANTANDO BIEN LA BARRA STANDARD. TE PASO EL CODIGO COMO LO DEJE AHORA:

                    *&---------------------------------------------------------------------*
                    *& 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,
                    g_status TYPE slis_formname.

                    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 DEFAULT 'AA',
                    p_connid TYPE sflight-connid DEFAULT '017'.

                    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-reptext_ddic = '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 f_llamar_alv
                    *&---------------------------------------------------------------------*

                    FORM f_llamar_alv .
                    CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
                    EXPORTING
                    * I_INTERFACE_CHECK = ' '
                    I_CALLBACK_PROGRAM = G_REPID
                    I_CALLBACK_PF_STATUS_SET = 'SET_STATUS'
                    I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
                    IS_LAYOUT = GA_LAYOUT
                    IT_FIELDCAT = GT_FIELDCAT
                    * IT_EXCLUDING =
                    * IT_SPECIAL_GROUPS =
                    * IT_SORT =
                    * IT_FILTER =
                    * IS_SEL_HIDE =
                    * I_SCREEN_START_COLUMN = 0
                    * I_SCREEN_START_LINE = 0
                    * I_SCREEN_END_COLUMN = 0
                    * I_SCREEN_END_LINE = 0
                    * I_DEFAULT = 'X'
                    * I_SAVE = ' '
                    * IS_VARIANT =
                    * IT_EVENTS =
                    * IT_EVENT_EXIT =
                    i_tabname_header = G_TABNAME_HEADER
                    i_tabname_item = G_TABNAME_ITEM
                    * I_STRUCTURE_NAME_HEADER =
                    * I_STRUCTURE_NAME_ITEM =
                    is_keyinfo = GA_KEY
                    * IS_PRINT =
                    * IS_REPREP_ID =
                    * I_BYPASSING_BUFFER =
                    * I_BUFFER_ACTIVE =
                    * IR_SALV_HIERSEQ_ADAPTER =
                    * IT_EXCEPT_QINFO =
                    * I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
                    * IMPORTING
                    * E_EXIT_CAUSED_BY_CALLER =
                    * ES_EXIT_CAUSED_BY_USER =
                    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

                    *&---------------------------------------------------------------------*
                    *& Form USER_COMMAND
                    *&---------------------------------------------------------------------*

                    FORM user_command USING r_ucomm TYPE sy-ucomm
                    ra_selfield TYPE slis_selfield.
                    CASE r_ucomm.
                    WHEN '&IC1'.
                    MESSAGE i001(z_daniel).
                    ENDCASE.

                    ENDFORM. "USER_COMMAND

                    *&---------------------------------------------------------------------*
                    *& Form set_status
                    *&---------------------------------------------------------------------*

                    FORM set_status USING rt_extab TYPE slis_t_extab.

                    SET PF-STATUS 'STANDARD'.

                    ENDFORM. "set_status

                    FIJATE QUE ESTA ACTIVA LA GUI QUE COPIE Y ES LA QUE ME DIJISTES
                    LA VERDAD ES QUE NO SE QUE HACER, ES INCREIBLE, PERO ES VERDAD.
                    Archivos Adjuntos

                    Comentario

                    • ibecerra

                      #11
                      increible a mi si me funciona. extraño no!

                      Comentario

                      • daniel_daniel1
                        Member
                        • may
                        • 31

                        #12
                        Problema Con Alv Jerarquico

                        Si, La Verdad Que Si, Es Muy Extraño!!! Porque Es Mas, Lo Tengo Casi Igual En Otro Lado Y Me Funciona Perfecto, Este Programita Se Lo Pase A Una Amiga Mia Para Que Le Enseñe A Unos Chicos Que Estaban Recien Empesando Un Alv Jerarquico Y Como Los Del Standard Son Mucho Mas Jodidos Me Dijo Si No Le Podia Hacer Uno Facil, Tarde 10 Min En Hacerlo, Pero No Me Punciona El Evento Doble Click, Lo Deje, No Me Calente En Buscar Mucho Porque No Funciono Pero Ahora Me Da Rabia Porque Se Que Esta Bien Echo, Y No Sale!!! Es Muy Pero Muy Raro!!!! Igual Agradezco Tu Ayuda Y Te Doy Las Gracias Por Molestarte!!!! Y Si Encuentro Cual Es El Problema Lo Posteo!!!!

                        Comentario

                        • daniel_daniel1
                          Member
                          • may
                          • 31

                          #13
                          Problema Con Alv Jerarquico

                          No Te Hagas Biologo, Encontre La Solucion!!!!!

                          Lo Unico Que Hice Fue Copiar Todo El Programa Tal Cual Estaba En Otro Programa Nuevo Con Otro Nombre, Le Cambie El Nombre A La Variable Del Tipo Sy-repid Y Listo, Funciono Perfecto!!!!

                          Asi Que Todo Lo Que Me Dijistes Estaba Bien.

                          Muchas Gracias Por Todo.

                          Comentario

                          • daniel_daniel1
                            Member
                            • may
                            • 31

                            #14
                            Problema Con Alv Jerarquico

                            que tal me voy a auto contestar, por si alguien necesitaba saber tambien el porque del mal funcionamiento de mi programa, yo en una variable del tipo sy-repid no le asigne sy-repid sino que le harcodie el nombre del reporte, y si le ponia el sy-repid funcionaba perfectamente; asi que era eso solamente, gracias por todo, todo lo demas estaba bien tambien.

                            Comentario

                            Trabajando...