titulo en un ALV OO

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • gotelyn
    Member
    • may
    • 58

    #1

    titulo en un ALV OO

    Hola ,

    Alguien puede ayudarme a poner un título en un ALV OO ?
    En un ALV no orientado a objetos es facil , pero un un ALV OO no se ni como hacerlo.

    Gracias.
  • mysmb2
    Senior Member
    • ene
    • 406

    #2
    Hola solo tenes que crear un titulo gui y en el PBO SET ingresar la sentencia TITLEBAR 'MITITULO'. donde MITITULO es el nombre del titulo Gui creado.

    Saludos.
    Sebastián Chiavia
    http://www.programacionabap.com.ar

    Comentario

    • Garces
      Senior Member
      • ago
      • 321

      #3
      Estoy teniendo el mismo problema...
      He estado revisando el evento TOP_OF_PAGE y también el evento PRINT_TOP_OF_PAGE de la clase CL_GUI_ALV_GRID.
      Los he registrado como cualquier otro evento, pero no logro capturarlo.
      Cuando se utiliza la funcion REUSE_ALV_GRID_DISPLAY no hay problema porque directamente indico el nombre del form que se ejecuta para mostrar la cabecera en HTML.
      Alguien sabe hacer la misma operación con objetos...
      Gracias anticipadas...
      Miguel Ángel Garcés Ramírez

      Comentario

      • Garces
        Senior Member
        • ago
        • 321

        #4
        Originalmente publicado por mysmb2
        Hola solo tenes que crear un titulo gui y en el PBO SET ingresar la sentencia TITLEBAR 'MITITULO'. donde MITITULO es el nombre del titulo Gui creado.

        Saludos.
        Gracias por la respuesta... pero lo que estoy buscando no es un título en la ventana sino más bien para la grilla, donde pueda ingresar la información de por ejemplo, los filtros ingresados en la pantalla de selección...
        Como el que se agrega con la función REUSE_ALV_GRID_DISPLAY, pero con objetos...
        Miguel Ángel Garcés Ramírez

        Comentario

        • Raven
          Member
          • jun
          • 32

          #5
          En el screen painter donde diseñas el contenedor para el alv, arriba de este contenedor puedes dejar un espacio y agregar cajas de texto, y a estas cajas de texto pasarle las variables que contienen los datos de la pantalla de selección, y asi estos valores se veran cuando muestres el alv. Ejemplo:

          texto1
          texto2
          texto3 texto4

          I-----------------------------------------------I
          |contenedor |
          | |
          | |
          | |
          | |
          I-----------------------------------------------I

          Espero te sirva.

          Comentario

          • vstarke
            Member
            • feb
            • 60

            #6
            Prueba con esto Yo ya lo utilicé.. espero y te ayude...


            *&---------------------------------------------------------------------*
            *& CLASES *
            *&---------------------------------------------------------------------*
            class lcl_event_receiver definition deferred.

            data: gv_event_receiver type ref to lcl_event_receiver.

            *----------------------------------------------------------------------*
            * CLASS lcl_event_receiver DEFINITION
            *----------------------------------------------------------------------*
            *
            *----------------------------------------------------------------------*
            class lcl_event_receiver definition.

            public section.

            methods:

            handle_top_of_page for event top_of_page of cl_gui_alv_grid
            importing e_dyndoc_id.

            endclass. "lcl_event_receiver DEFINITION

            *----------------------------------------------------------------------*
            * CLASS lcl_event_receiver IMPLEMENTATION
            *----------------------------------------------------------------------*
            *
            *----------------------------------------------------------------------*
            class lcl_event_receiver implementation.

            method handle_top_of_page.

            perform event_top_of_page using gv_dyndoc_id.

            endmethod. "handle_top_of_page

            endclass. "lcl_event_receiver IMPLEMENTATION

            *gv_container type ref to cl_gui_custom_container
            create object gv_container
            exporting
            container_name = 'CONTROL'.

            *gv_dyndoc_id type ref to cl_dd_document
            create object gv_dyndoc_id
            exporting
            style = 'ALV_GRID'.

            * Create Splitter for custom_container
            *gv_splitter type ref to cl_gui_splitter_container
            create object gv_splitter
            exporting
            parent = gv_container
            rows = 2
            columns = 1.

            *gv_parent_top type ref to cl_gui_container
            call method gv_splitter->get_container
            exporting
            row = 1
            column = 1
            receiving
            container = gv_parent_top.

            *gv_parent_grid type ref to cl_gui_container
            call method gv_splitter->get_container
            exporting
            row = 2
            column = 1
            receiving
            container = gv_parent_grid.

            * Set height for g_parent_html
            call method gv_splitter->set_row_height
            exporting
            id = 1
            height = 20.

            * Create grid
            *gv_parent_grid type ref to cl_gui_container
            create object gv_grid
            exporting
            i_parent = gv_parent_grid.

            create object gv_event_receiver.
            set handler gv_event_receiver->handle_double_click for gv_grid.
            set handler gv_event_receiver->handle_top_of_page for gv_grid.


            call method gv_grid->set_table_for_first_display
            changing
            it_outtab = gt_outdata[]
            it_fieldcatalog = gv_fieldcat.


            call method gv_dyndoc_id->initialize_document
            exporting
            background_color = cl_dd_area=>col_textarea.

            call method gv_grid->list_processing_events
            exporting
            i_event_name = 'TOP_OF_PAGE'
            i_dyndoc_id = gv_dyndoc_id.

            form event_top_of_page using p_dyndoc type ref to cl_dd_document.

            data: v_text(255) type c,
            v_date(50) type c.

            call method p_dyndoc->add_text
            exporting
            text = 'AQUÍ VA TU TÍTULO'
            sap_style = 'HEADING'
            sap_fontsize = 'LARGE'.

            call method p_dyndoc->new_line.
            call method p_dyndoc->new_line.

            v_text = p_kunde.

            call method p_dyndoc->add_text
            exporting
            text = 'Texto más : '.

            call method p_dyndoc->add_gap "da espacios no sirve poner texto con espacios vacíos
            exporting
            width = 17.

            call method p_dyndoc->add_text
            exporting
            text = v_text
            sap_fontsize = 'Strong'.

            call method p_dyndoc->add_text
            exporting
            text = v_text
            sap_fontsize = 'Strong'.

            clear v_text.
            call method p_dyndoc->new_line.

            perform display.

            endform. " event_top_of_page
            *&---------------------------------------------------------------------*
            *& Form display
            *&---------------------------------------------------------------------*
            * text
            *----------------------------------------------------------------------*
            * --> p1 text
            * <-- p2 text
            *----------------------------------------------------------------------*
            form display .

            * Creating html control
            *gv_html_cntrl type ref to cl_gui_html_viewer
            if gv_html_cntrl is initial.
            create object gv_html_cntrl
            exporting
            parent = gv_parent_top.
            endif.

            call method gv_dyndoc_id->merge_document.
            gv_dyndoc_id->html_control = gv_html_cntrl.

            * Display document
            call method gv_dyndoc_id->display_document
            exporting
            reuse_control = 'X'
            parent = gv_parent_top
            exceptions
            html_display_error = 1.

            endform. " display

            Comentario

            • AlexisChavero

              #7
              Hola a todos,
              Otro modo que he utilizado para colocar titulo dentro del contenedor del ALV Grod OO es asignarlo dentro del Layout.
              PERFORM set_layout CHANGING gs_layout . " Seteo del Layout

              FORM SET_LAYOUT CHANGING PS_LAYOUT TYPE lvc_s_layo.
              ps_layout-grid_title = 'TUTITULO' . " Aqui colocas tu titulo
              ENDFORM. " SET_LAYOUT

              y al momento de hacer la llamada al ALV OO se lo pasas...
              CALL METHOD gr_alvgrid->set_table_for_first_display
              EXPORTING
              is_layout = gs_layout
              ....

              Espero les sirva esta forma ya que me parece que es lo que buscaban hacer.

              Saludos,

              Comentario

              • Garces
                Senior Member
                • ago
                • 321

                #8
                Gracias a todos...
                Al final lo hice con el código que Raven me proporcionó
                Funcionó de maravilla...

                Saludos...
                Miguel Ángel Garcés Ramírez

                Comentario

                • alvcano
                  Junior Member
                  • oct
                  • 13

                  #9
                  Os dejo un ejemplo completo que he encontrado sobre un alv oo por si sirve de ayuda

                  Comentario

                  • Junior Member
                    • nov
                    • 9

                    #10
                    Re: titulo en un ALV OO

                    En el Alv el titulo se toma en automatico de la descripcion del programa ajusta alli el titulo. Te posicionas sobre el nombre del programa en el arbol y das clic derecho visualiza atributos editar.

                    Comentario

                    Trabajando...