MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   TABLE CONTROL :confused: (foro/showthread.php?t=33941)

romario2 27/11/09 08:18:01

TABLE CONTROL :confused:
 
Hola Foro,

tengo un table control que muestra datos, pero el problema es que muestra
el mismo registro muchas veces repetidas.He debugado y veo que la tabla interna que lo alimenta está correcta.
Quizás influye que los campos del TC sean definidos como campos solos y no tablainterna-campo?

Gracias de antemano

DavidXD_XD 30/11/09 16:03:46

Holas, pues debe aver algúna variable en memoria guardada ahi, prueba colocandole en el PBO un REFRESH al TABLE CONTROL, algo asi:


Donde TCRTL_VIEW es la tabla de control y 0xxx es el dynpro al que pertenece el table control, espero te pueda ayudar :D

romario2 01/12/09 08:49:37

Informa Muchos Registros En Lugar De 1 Solo
 
Hola Foro,

gracias David, pero persiste el error. Yo solo quiero informar un registro del Table control y me informa un montón con el mismo valor.

He metido EXITS i añadí CLEARS sin resultado.

Publico el código:


LOGICA PROCESO Dynpro
*******************************************
LOOP AT TAB_ZPS_TC with control TABLA CURSOR TABLA-CURRENT_LINE.

MODULE inserir_taula.

ENDLOOP.


PROCESS AFTER INPUT.

*Primer es fal un LOOP a TAB_ZPS_TC que degut a que està associada a
*TABLE_CONTROL equival a recorre el table control de la pantalla
*recuperant les dades introduides.


LOOP AT TAB_ZPS_TC.
CHAIN.
FIELD: TAB_ZPS_TC-POSID,
TAB_ZPS_TC-POST1,
TAB_ZPS_TC-TXT30.

*La opció ON CHAIN-REQUEST ens determina que només s’executatarà el
*modul si hem modificat un registre.
MODULE validacions ON CHAIN-REQUEST.
ENDCHAIN.

MODULE informar_camps.

ENDLOOP.

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


MODULE inserir_taula OUTPUT.

REFRESH CONTROL 'TABLA' FROM SCREEN '9001'.
CLEAR tab_zps_tc.
REFRESH tab_zps_tc.
CLEAR: posid, post1, txt30.


tab_zps_tc-posid = p_posid2.
tab_zps_tc-post1 = p_post12.
tab_zps_tc-txt30 = p_txt302.


posid = tab_zps_tc-posid.
post1 = tab_zps_tc-post1.
txt30 = tab_zps_tc-txt30.


LOOP AT SCREEN.
IF screen-name = 'POSID'.
screen-input = space.
MODIFY SCREEN.
EXIT.
ENDIF.

ENDLOOP.



ENDMODULE.



MODULE informar_camps INPUT.

DATA l_zps_tc TYPE est_zps_tc.
CLEAR l_zps_tc.
CLEAR tab_zps_tc.
REFRESH tab_zps_tc.


tab_zps_tc-posid = posid.
tab_zps_tc-post1 = post1.
tab_zps_tc-txt30 = txt30.

READ TABLE tab_zps_tc INTO l_zps_tc
INDEX tabla-current_line.
IF sy-subrc <> 0.

INSERT table tab_zps_tc.

ELSE.
MODIFY tab_zps_tc INDEX tabla-current_line.

ENDIF.

ENDMODULE. " INFORMAR_CAMPS INPUT

DavidXD_XD 01/12/09 18:15:58

Holas, como te comente intenta hacerle el REFRESH pero al final de la rutina MODULE del PBO, ahhh y x cierto la tabla que tienes que indicarle es de la tabla de control, algo asi:


romario2 01/12/09 18:59:58

La incidencia persiste
 
Gracias por tu ayuda, lo puse al final, hay que poner nombre de la Table control. Sigue sin funcionar.

Tengo los datos correctos en una tabla interna, no logro traspasarlos a la Table control

DavidXD_XD 01/12/09 19:06:56

Waaaa me confundi :o , la tabla de control era TABLA, voy a ver el codigo aver si sacamos algun error :D

PD: veo q no estas llenando la tabla interna en el PBO, pues no veo ningun INSERT y tampoco APPEND, esa pantalla 9001 a la que llamas debe tener una pantalla anterior donde seguramente llenas la tabla interna, pero cuando entras al MODULE inserir_taula en el primer LOOP blanqueas la tabla interna

CLEAR tab_zps_tc.
REFRESH tab_zps_tc.

romario2 02/12/09 07:37:48

ERROR persiste
 
Hola David,

agradezco mucho tu ayuda!

Tendrías un código completo de un table control senzillo que funcione?
Le tengo que pasar datos que vienen de una tabla interna.

Los campos del Table control manual los puedo definir como it_tabla-campo?
(campo de tabla interna)

Saludos abaperos!

zonanet 02/12/09 14:23:39



Prueba con este manual, está en la sección de descargas:



Saludos


Husos Horarios son GMT. La hora en este momento es 12:19:10.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web