PDA

Ver la Versión Completa : como tomar datos del tablecontrol???


Leinad_Leonhart
06/08/09, 21:39:00
Hola estoy empezando a trabajar con tablecontrols y queria ver si me pueden ayudar con esta duda.

yo tengo mi table control y amuestro los datos que estan en mi tabla interna, pero una vez mostrado yo modifico o agrego las lineas que me mostro con nuevos datos,

y mi pregunta es como hago para tomar o leer los datos nuevos que meti y agregarlo a la tabla interna.

Espero me puedan ayudar,
:)

ic_man_777
06/08/09, 22:13:28
Cuando tu ligas una tabla interna a un table control, automáticamente te debe reflejar los cambios cuando tu le haces una modificación a la tabla interna.

¿creaste tu table control con el wizard verdad?

Si no entendí bien tu pregunta me dices :)

Rodolfo SAP
06/08/09, 22:15:32
Hola, mi estimado Abap te comento tu tienes por un lado para empezar a utilizar Programación en Dialogo debes de entender la lógica para lo que es el PBO y PAI.

Despues de eso te explico, cuando tu lanzas tu TC y lo presentas en pantalla tienes una conexión entre el programa y la dynpro donde me imagino tienes algo como:

Process Before Output.

MODULE status_100.

LOOP AT itab_test WITH CONTROL tc_test CURSOR tc_test-current_line.

ENDLOOP.

************

Process After Input.

MODULE user_command.

LOOP AT itab_test.

ENDLOOP.

Con esto lo que debes de entender por lógico que los PBO se ejecutan antes de lanzar el dynpro y el PAI se ejecuta despues de recibir un comando o acción de la dynpro.

Entonces si tu lanzaste tu reporte y ya despliegas la tabla en el TC y lo que quieres es que despues de que lo lanzaste y modifcaste algunos valores estos se modifiquen en la tabla interna, entonces lo que debes de hacer es meter un proceso en la PAI correcto ¿ ?.

Ejemplo:

Process Before Output.

MODULE status_100.

LOOP AT itab_test WITH CONTROL tc_test CURSOR tc_test-current_line.

ENDLOOP.

************

Process After Input.

MODULE user_command.

LOOP AT itab_test.

CHAIN.

FIELD: itab_test-fielda,
itab_test-fieldb,
itab_test-fieldc.

MODULE actualizar_tabla.

ENDCHAIN.

ENDLOOP.

**************************************
* MODULE actualizar_tabla INPUT. *
**************************************
*En el loop del PAI estamos recorriendo la tabla interna entonces lo que
*hacemos es reconocer los cambios hechos.
MODULE actualizar_tabla INPUT.

*Modificamos la linea que actualmente tenemos en header en base a al
*número de índice osea si modificamos el registro 1 el modify sera sobre el 1.
MODIFY itab_test INDEX tc_test-current_line.
IF sy-subrc NE 0.
*Si no se pudo modificar quiere decir que no existe entonces lo insertamos
APPEND itab_test.
ENDIF.

ENDMODULE.

Espero te sea de ayuda.

Saludos.

Leinad_Leonhart
10/08/09, 15:50:05
Gracias Rodolfo , me sirvio mucho el ejemplo que me diste y ya funciono el cambio en el tablecontrol hacia mi interna Gracias :D

Y con respuesta a ic_man_777 : El table control lo cree sin el wizard.

Gracias .

klaurio
11/07/12, 15:12:22
Muy buena explicación :)

quimito2001
13/09/13, 15:18:34
Estimados. Que buena explicación. te agradezco

ivansap1
12/08/14, 12:05:26
Buenas foro , la presente es para una consulta , estoy intentando cargar una tabla z, por medio de unos campos que se crearan en una pestaña osea he creado el objeto tabstrip en la dynpro , he logrado insertar en el marco de lla pestaña los campos de la estructura de la tabla z (que sera ZE_cliente)usando la opcion , "vent. campos dict/program f6 " ; despues de colocarlo en el marco de la pestaña; en el codigo del pai he colocado el codigo :
WHEN '&SAVE'.
INSERT INTO Zcliente VALUES ZE_cliente.

Pero al momento de debugearlo , no veo que carge nada en la estructura sabiendo que le ingrese valores .

A alguien le ha pasado esto ? desde ya gracias por su respuesta .
Saludos