Urgente Ayuda con Table Control

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • jalopez
    Junior Member
    • ago
    • 15

    #1

    Urgente Ayuda con Table Control

    Tengo la siguiente definicion en mi programa:
    CONTROLS: tc TYPE TABLEVIEW USING SCREEN '9400'.

    En este table control voy cargando una información que me van ingresando en otra pantalla... luego si quiero eliminar algunos de los registros ingresados, le doy click para seleccionarlo y le doy eliminar...
    Ahora necesito seleccionar, uno, varios o todos los registros para eliminarlos de una sola pasada... no uno por uno como esta ahora...

    Como podria hacer para seleccionar varios o todos los registros y eliminarlos...
    Agradezco la colaboración que me puedan brindar... esto es vital para el desarrollo que estoy realizando....
  • abapconsultoria
    Senior Member
    • ene
    • 101

    #2
    Hola que tal : Si mal no recuerdo o me confundo con el ALV tenes una opción para poder realizar seleciones multiples. Eso deberia ser indicado dentro del TC seguramente es alguno de sus campos. Lo verificaria ahora pero en este momento no tengo ningun R3 a mano.

    Saludos.

    Javier.
    ABAPCONSULTORIA@GMAIL.COM

    www.consultoriaabap.blogspot.com

    Lo importante no es saber sino saber quien es el que sabe

    Comentario

    • vickxo
      Senior Member
      • nov
      • 118

      #3
      Podrias intentar con esto...

      Hola, yo he generado el codigo con la ayuda del wizard para generar el TC ahora bien, lo que he visto q hace es primero cargar los botones con los eventos de borrar y de insertar...para nuestro caso hablemos de borrar.
      En el codigo q genera la funcion encargada de borrar pide los parametros table control, tabla interna asociada y nombre del campo de seleccion q es donde vas guardando q ha sido seleccionado, te anexo el form
      asi lo mandan a llamar ...
      WHEN 'DELE'. "delete row
      PERFORM fcode_delete_row USING p_tc_name
      p_table_name
      p_mark_name.


      Aqui esta la defincion

      FORM fcode_delete_row
      USING p_tc_name TYPE dynfnam
      p_table_name
      p_mark_name .

      *-BEGIN OF LOCAL DATA--------------------------------------------------*
      DATA l_table_name LIKE feld-name.

      FIELD-SYMBOLS <tc> TYPE cxtab_control.
      FIELD-SYMBOLS <table> TYPE STANDARD TABLE.
      FIELD-SYMBOLS <wa>.
      FIELD-SYMBOLS <mark_field>.
      *-END OF LOCAL DATA----------------------------------------------------*

      ASSIGN (p_tc_name) TO <tc>.

      * get the table, which belongs to the tc *
      CONCATENATE p_table_name '[]' INTO l_table_name. "table body
      ASSIGN (l_table_name) TO <table>. "not headerline

      * delete marked lines *
      DESCRIBE TABLE <table> LINES <tc>-lines.

      LOOP AT <table> ASSIGNING <wa>.

      * access to the component 'FLAG' of the table header *
      ASSIGN COMPONENT p_mark_name OF STRUCTURE <wa> TO <mark_field>.

      IF <mark_field> = 'X'.
      DELETE <table> INDEX syst-tabix.
      IF sy-subrc = 0.
      <tc>-lines = <tc>-lines - 1.
      ENDIF.
      ENDIF.
      ENDLOOP.

      ENDFORM. " FCODE_DELETE_ROW


      Asi q podria copiarla y mandarle el nombre de tus tablas ya que son apuntadores a las mismas. espero te sirva saludos ...
      el tema esta en hacer la pregunta correcta...

      Comentario

      • ibecerra

        #4
        Hola para seleccionar varios registros y hacer lo q quieras le das doble click a tu table control , luego en propiedades marc.linea ---> multiple.
        con esto te podra seleccionar mas de un linea

        Comentario

        Trabajando...