Botones en ALV

Colapsar
Este tema está cerrado
X
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Driau
    Senior Member
    • ago
    • 235

    #1

    Botones en ALV

    Hola a todos,

    Quisiera saber (no se si es mu dificil) como se puede añadir un botón a la barra de un ALV para que realice por ejemplo el borrado de una linia (marcada previamente en el ALV) de una tabla interna.

    Sólo eso...(como si fuera poco).

    Muchas gracias!
  • ballan
    Senior Member
    • oct
    • 671

    #2
    Mira este programa de ejemplo BCALV_GRID_05,

    De todas formas esto vale para todo el mundo, en la transaccion DWDM teneis varios ejemplos de ALV, Arboles, etc o sino podeis ir a la SE38 y buscar BCALV* y os saldran todos los programas de ejemplo donde viene casi de todo

    Comentario

    • ibecerra

      #3
      depende que alv tienes grid o list.. dependiendo de eso te puedo ayudar

      Comentario

      • azua14
        Senior Member
        • jul
        • 140

        #4
        De hecho...personalmente prefiero el ALV_GRID...en todo caso te adjunto un manualcito explicativo ...eso si..ten en cuenta que es un archivo ZIP, le puse extension EXE porque por alguna razon los otros tipos de archivo no permiten mas de 490KB.
        Archivos Adjuntos

        Comentario

        • Driau
          Senior Member
          • ago
          • 235

          #5
          Se trata de un ALV-Grid

          He estado mirando el manual que me mandasteis y no lo entiendo mucho. Pero he estado mirando un programa que encontré y se parece mucho a lo de:

          i_callback_user_command = 'USER_COMMAND'

          Y luego:


          *&---------------------------------------------------------------------*
          *& Form USER_COMMAND
          *&---------------------------------------------------------------------*
          FORM user_command USING rf_ucomm LIKE sy-ucomm
          rs TYPE slis_selfield.
          CASE rf_ucomm.
          WHEN '&NTE'.
          rs-refresh = 'X'.
          PERFORM seleccion.

          WHEN 'PROCESAR'.
          PERFORM reprocesar_lineas.
          rs-refresh = 'X'.
          PERFORM seleccion.

          WHEN 'ANULAR'.
          PERFORM anular_lineas.
          rs-refresh = 'X'.
          PERFORM seleccion.

          ENDCASE. "ENDCASE de rf_ucomm

          ENDFORM. "user_command



          Del estilo "cuando le dé a este botón haz esto..." no?

          Lo único que de alguna manera habra que indicarle al ALV que inserte el icono del boton...eso es lo que me falla. Alguna idea???

          Grácias!!

          Comentario

          • melerogalan
            Senior Member
            • nov
            • 142

            #6
            Define el Status del ALV

            Al alv tendras que pasarle un status, y dentro de ese status defines los botones que quieras, con sus codigos de funciones que son lo que tienes que testear despues para saber que boton se ha pulsado.
            Seria una cosas asi mas o menos:

            Dentro de la llamada a la funcion en el ejemplo un alv grid le indicas en el parametro "i_callback_pf_status_set " el nombre de la subrutina donde cargaras el status, 'ALV_STATUS'.

            Llamada a la función ALV grid
            CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
            EXPORTING
            ...
            ...
            ...
            i_callback_pf_status_set = 'ALV_STATUS'
            ...
            ...
            ...
            .

            Define una subrutina denominada ALV_STATUS:

            FORM alv_status USING rt_extab TYPE slis_t_extab.

            SET TITLEBAR 'TITULO'. -> Esto es apra un titulo en el ALV
            SET PF-STATUS 'STATUS'. -> le pasas el nombre del STATUS

            ENDFORM. " alv_status

            Define un status denominado STATUS o como quieras y le pones los botones que quieras, si no sabes crear status dime y te indico lo básico.

            Saludos.
            Cada vez que un programador hace una hora extra, Dios mata a un gatito...tenlo en cuenta

            Comentario

            • Driau
              Senior Member
              • ago
              • 235

              #7
              Yuuupi!!

              Creo que con ésto me apaño. he visto algun ejemplo y parece tal y como tu me dices, así que muchíssimas grácias.

              Ya os contaré a ver que tal,

              Diooosss la de cosas que estoy aprendiendo con éste foror!!!!

              Comentario

              • evasquez
                Junior Member
                • feb
                • 11

                #8
                Grabar modificaciones en ALV Grid

                Buenas noches con todos, deseo grabar las modificaciones que realizo en el ALV Grid pero no se como hacerlo, hasta ahora solo logro editar las celdas, pero aun no puedo grabar las modificaciones que hago, gracias de antemano.

                Comentario

                • fdelacruz
                  Senior Member
                  • jun
                  • 111

                  #9
                  Haz lo siguiente...

                  call function 'REUSE_ALV_GRID_DISPLAY'
                  exporting
                  ...
                  i_callback_user_command = 'USER_COMMAND'
                  ...

                  Y en el form USER_COMMAND pon lo siguiente:

                  form user_command using r_ucomm like sy-ucomm
                  rs_selfield type slis_selfield.

                  rs_selfield-refresh = 'X'.

                  Creo q con eso sale...

                  Saludos!

                  Comentario

                  • evasquez
                    Junior Member
                    • feb
                    • 11

                    #10
                    Buenas tardes, ya lo intente pero cuando vuelvo a correr el programa no estan grabadas las modificaciones, como si no hubiese hecho nada.

                    Comentario

                    • rembe
                      Member
                      • ago
                      • 32

                      #11
                      Posible solución

                      Originalmente publicado por Driau
                      Hola a todos,

                      Quisiera saber (no se si es mu dificil) como se puede añadir un botón a la barra de un ALV para que realice por ejemplo el borrado de una linia (marcada previamente en el ALV) de una tabla interna.

                      Sólo eso...(como si fuera poco).

                      Muchas gracias!
                      ...
                      Quizas lo que te falta es crear el boton con la se41....
                      Saludos
                      Atte
                      Rams

                      Comentario

                      Trabajando...