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...
|