PDA

Ver la Versión Completa : Urgente Ayuda con Table Control


jalopez
17/03/08, 15:15:45
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.... :o :o :o

abapconsultoria
17/03/08, 15:39:35
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.

vickxo
17/03/08, 15:52:13
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 ...

ibecerra
17/03/08, 18:19:29
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