MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 25/11/09, 12:01:28
martin89 martin89 is offline
Member
 
Fecha de Ingreso: may 2009
Mensajes: 53


Buen día, ojalá pueda aydarte.
Lo mejor y más performance es hacer lo que dice ifloresb. Igualmente estaría bueno que entiendas masomenos por qué no te anda lo que vos planteas.
Según lo que entiendo lo que vos queres es lo siguiente (corregime si me equivoco):
- Modificar la tabla tab_dades. Según lo que veo vos la loopeas, esto quiere decir que ya tenes algunos registros en la tabla y lo que queres hacer es recuperar otros e ir completándola.

En primer lugar hacés bien en loopearla en una estructura (siempre y cuando esa estructura se corresponda con la tabla). Al momento de hacer el loop se van a ir asignando los valores de cada uno de los registros (uno por cada vuelta) a la estructura que utilizás.
Entonces, vos los datos los vas a tener en la estructura. Por lo tanto, en las condicioens de los selects debés utilizar la estructura.
ej.
SELECT SINGLE *
FROM jest
INTO jest
WHERE objnr EQ tab_dades-objnr --> Utilizar la estructura
AND stat LIKE cst_stat
AND inact EQ ' '. " cst_stat ha de començar per 'E'


Una vez que hayas termiando de recuperar todos los datos que te faltan, y que la estrucutra esté completita. Debés modificar la tabla (justo antes de terminar el loop) utilizando un MODIFY tablainterna FROM estructura. Creo qe le tenés qe agregar el índice también (INDEX) que lo sacás del sy-tabix.
BUeno espero que te haya servido por lo menos para entender por qué no te andaba el código. El paso siguiente sería ver como mejorar la performance. Para eso hacele caso a ifloreb utilizando for all entries y algunos read tables.

Bueno, espero no haberte aburrido jaja. Saludos!
Responder Con Cita
  #2  
Viejo 25/11/09, 15:31:13
ifloresb ifloresb is offline
Junior Member
 
Fecha de Ingreso: dic 2008
Mensajes: 29
Ejemplo

Este seria un ejemplo del código:
SELECT *
FROM jest
INTO CORRESPONDING FIELDS OF TABLE jest
WHERE objnr EQ tab_dades-objnr AND stat LIKE cst_stat AND inact EQ ' '. " cst_stat ha de començar per 'E'

SELECT SINGLE *
FROM tj30t
INTO CORRESPONDING FIELDS OF TABLE est_tj30t
FOR ALL ENTRIES IN tab_dades
WHERE stsma EQ tab_dades-stspr AND estat EQ jest-stat AND spras EQ cst_spras AND txt04 IN so_txt04. "cst_spras = 'S'.

LOOP AT tab_dades INTO est_tj30t WHERE stspr IS NOT INITIAL.
READ TABLE jest INTO estruc
WHERE ( aqui van tus condiciones)

IF sy-subrc = 0.
READ TABLE est_tj30t INTO estruc
WHERE ( aqui van tus condiciones)


IF sy-subrc = 0.
APPEND estruc TO tab_dades
O tambien puedes usar el modify
MODIFY tab_tj30t FROM est_tj30t.
ELSE.

ENDIF.

ENDIF.
ENDLOOP.
Responder Con Cita
  #3  
Viejo 25/11/09, 18:29:31
romario2 romario2 is offline
Senior Member
 
Fecha de Ingreso: abr 2006
Mensajes: 233
Muy Agradecido

Hola Iflores y Martin 89,

disculpad que no os haya contestado antes, ando super atareado.
Voy a estudiar detenidamente vuestros consejos, ya os diré algo.Yo también pensé una solución ejje.
Ahora mismo estoy con un module pool grandioso y tengo que crear un Table control que seleccione un registro y se vea el detalle.También debo crear un Custom control.Teneis algún código?

He mirado en un pdf muy bueno de Blag pero no lo explica...

Hasta pronto y gracias otra vez!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 09:34:37.


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