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 14/02/13, 15:02:39
kachalot kachalot is offline
Junior Member
 
Fecha de Ingreso: ene 2013
Mensajes: 9
LOOP AT... WHERE campo IN ITAB???? se puede?

Hola, hoy no es mi día...

Tengo una tabla interna y quiero recorrerla pero solo si está en otra.

yo juraría que era así:

TYPES: BEGIN OF gt_matid,
matid TYPE /sapapo/matkey-matid,
END OF gt_matid.
DATA: git_matid TYPE TABLE OF gt_matid WITH HEADER LINE.
* DATA: git_matid TYPE STANDARD TABLE OF gt_matid.

SELECT
lwh~matid
INTO TABLE git_matid
FROM /sapapo/matlwh AS lwh
FOR ALL ENTRIES IN git_lwh WHERE matid = git_lwh-matid
* INNER JOIN marc AS mc
* ON ma~matnr = mc~matnr
.

LOOP AT git_listmat
WHERE matid IN git_matid.
ENDLOOP.


pero me da ERROR. Me dice que "git_matid, no tiene estructura de una tabla de selección".

¿¿que es que no se puede y me he liedo yo son un selection-option??


gracias.
Responder Con Cita
  #2  
Viejo 14/02/13, 16:24:11
vanesamacri vanesamacri is offline
Senior Member
 
Fecha de Ingreso: jun 2011
Mensajes: 146

Probá declarando a la tabla git_matid de la siguiente manera:

DATA git_matid TYPE RANGE OF /sapapo/matkey-matid WITH HEADER LINE.
Responder Con Cita
  #3  
Viejo 14/02/13, 22:31:24
rubendaga rubendaga is offline
Junior Member
 
Fecha de Ingreso: sep 2011
Mensajes: 13
Crea un rango con la tabla git_listmat, la recorres en un loop y llenas el campo low del rango con el dato que necesitas comparar, luego podrás utilizar el rango para tu condición.

Saludos.
Responder Con Cita
  #4  
Viejo 15/02/13, 07:18:40
kachalot kachalot is offline
Junior Member
 
Fecha de Ingreso: ene 2013
Mensajes: 9
Así es vanesamacri y rubendaga!! Muchas gracias!!

Este es mi código resultante por si a alguien más le sirve:

***Faltaría comprobaciones y control de errores.


TYPES: BEGIN OF gt_matid,
matid TYPE /sapapo/matkey-matid,
END OF gt_matid.
DATA: git_matid TYPE TABLE OF gt_matid WITH HEADER LINE.


*Declaracio rango
*[======================================
DATA: rang_matid TYPE RANGE OF gt_matid WITH HEADER LINE.
*======================================]

*inicializar rangos con tabla interna
*[=====================================
SELECT
lwh~matid
INTO TABLE git_matid
FROM /sapapo/matlwh AS lwh
FOR ALL ENTRIES IN git_lwh WHERE matid = git_lwh-matid
* INNER JOIN marc AS mc
* ON ma~matnr = mc~matnr
.

SORT git_matid BY matid.

* IF git_matid IS NOT INITIAL.
LOOP AT git_matid.
CLEAR: rang_matid.
rang_matid-sign = 'I'.
rang_matid-option = 'EQ'.
rang_matid-low = git_matid-matid.
APPEND rang_matid.
ENDLOOP.
* ENDIF.
*=======================================]

DATA l_tabix_lismat TYPE i.
*utilización
*[=====================================
LOOP AT git_listmat
WHERE matid IN rang_matid.

l_tabix_lismat = sy-tabix.

READ TABLE git_lwh WITH KEY matid = git_listmat-matid.

git_listmat-scuguid = git_lwh-scuguid.
git_listmat-ptdetind = git_lwh-ptdetind.
git_listmat-put_stra = git_lwh-put_stra.
git_listmat-rem_stra = git_lwh-rem_stra.

MODIFY git_listmat INDEX l_tabix_lismat.

ENDLOOP.
*=======================================]
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 11:24:01.


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