MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Error en Select (foro/showthread.php?t=6137)

Irua 22/06/07 13:56:41

Error en Select
 
Hola tengo el siguiente codigo y me trae este error, por favor si me pueden ayudar estoy nueva en esto gracias

DATA: BEGIN OF T_DATA1 OCCURS 0,
BUKRS LIKE ZTHR_USUA_EMPL-BUKRS,
PERNR LIKE ZTHR_USUA_EMPL-PERNR,
USUARIO LIKE ZTHR_USUA_EMPL-USUARIO,
FEC_ING LIKE ZTHR_USUA_EMPL-FEC_ING,
TIP_CTA LIKE ZTHR_USUA_EMPL-TIP_CTA,
FECHA LIKE ZTHR_USUA_EMPL-FECHA,
HORA LIKE ZTHR_USUA_EMPL-HORA,
NACHN LIKE PA0002-NACHN,
ORGEH LIKE PA0001-ORGEH,
PERSNO LIKE PA0002-PERNR,
END OF T_DATA1.


FORM OBTENER_DATOS.

SELECT BUKRS PERNR TIP_CTA
INTO T_DATA1
FROM ZTHR_USUA_EMPL
WHERE BUKRS IN S_TSOC
AND PERNR IN S_TEMPL
AND TIP_CTA IN TIP_CTA.
APPEND T_DATA1.
ENDSELECT.


LOOP AT T_DATA1.
CONTADOR = SY-TABIX.


MODIFY T_DATA1 INDEX CONTADOR.

ENDLOOP.

ENDFORM.

Este es el error :
The IN operator with "TIP_CTA" is followed neither by an internal table nor by a value list.

:(

mysmb2 22/06/07 15:13:32

SELECT BUKRS PERNR TIP_CTA
INTO T_DATA1
FROM ZTHR_USUA_EMPL
WHERE BUKRS IN S_TSOC
AND PERNR IN S_TEMPL
AND TIP_CTA IN TIP_CTA.<-- fijate aca cambiale el nombre al selec-option o
APPEND T_DATA1. rango que estas usando
ENDSELECT.

Attilio Travascio 22/06/07 15:18:52

Buenos dias, si no me equivo por el codigo que muestras el proble es con el operador IN estas haciendo referencia en el select a:

AND TIP_CTA IN TIP_CTA.

el campo al cual estas haciendo el IN, tambien lo estas colocando en las toma de campos.

Me explico mejor: el PARAMETRO que declaraste con el select option TIP_CTA, se llama igual al campo de la tabla ZTHR_USUA_EMPL, es posible que eso te este trayendo incovenientes. Intenta cambiando el nombre del parametro.

S.L.

Irua 22/06/07 15:30:18

YA LES CAMBIE EL NOMBRE Y ESTE ES EL ERROR QUE ME ARROJA

The IN operator with "T_CTA" is followed neither by an internal table nor by a value list.

ESTO ME TIENE LA VIDA TRISTE :o

Mike 22/06/07 17:45:39

El error que te esta dando es que TIP_CTA LIKE ZTHR_USUA_EMPL-TIP_CTA,
no debe ser de la estructura que aceptan el operador IN (es decir select-option o ranges, o una tabla con la estructura --> sign, option, low y high)

Saludos.

mysmb2 22/06/07 18:29:38

tal cual dice nuestro compañero, cambiale el nombre del parametro por ejemplo so_T_CTA asi no te queda igual al campo de la tabla z.

Irua 22/06/07 18:43:13

Le cambio el nombre y me arroja el mismo error, lo que quiero hacer, es llamar este campo y se refleje en el reporte

The IN operator with "SO_T_CTA" is followed neither by an internal
table nor by a value list.


Aqui les mando todo el codigo a ver si que en otro lugar del programa


TABLES: ZTHR_USUA_EMPL,PA0001,PA0002.

******* TABLA INTERNA******************
DATA: BEGIN OF T_DATA1 OCCURS 0,
BUKRS LIKE ZTHR_USUA_EMPL-BUKRS,
PERNR LIKE ZTHR_USUA_EMPL-PERNR,
USUARIO LIKE ZTHR_USUA_EMPL-USUARIO,
FEC_ING LIKE ZTHR_USUA_EMPL-FEC_ING,
TIP_CTA LIKE ZTHR_USUA_EMPL-TIP_CTA,
FECHA LIKE ZTHR_USUA_EMPL-FECHA,
HORA LIKE ZTHR_USUA_EMPL-HORA,
NACHN LIKE PA0002-NACHN,
ORGEH LIKE PA0001-ORGEH,
PERSNO LIKE PA0002-PERNR,
END OF T_DATA1.

******* VARIABLE**********************

DATA: CONTADOR TYPE I.



SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 3(15) TEXT-003.
SELECT-OPTIONS: s_tsoc FOR ZTHR_USUA_EMPL-BUKRS.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 3(15) TEXT-004.
SELECT-OPTIONS: s_templ FOR ZTHR_USUA_EMPL-PERNR.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK b1.


SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-002.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 3(16) TEXT-005.
PARAMETERS p_red AS CHECKBOX.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 3(16) TEXT-006.
PARAMETERS p_correo AS CHECKBOX.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK b2.


START-OF-SELECTION.
PERFORM OBTENER_DATOS.
PERFORM IMPRIMIR_DATOS.



FORM OBTENER_DATOS.

SELECT BUKRS PERNR TIP_CTA
INTO T_DATA1
FROM ZTHR_USUA_EMPL
WHERE BUKRS IN S_TSOC
AND PERNR IN S_TEMPL
AND TIP_CTA IN so_T_CTA.
APPEND T_DATA1.
ENDSELECT.


LOOP AT T_DATA1.
CONTADOR = SY-TABIX.


MODIFY T_DATA1 INDEX CONTADOR.

ENDLOOP.

ENDFORM.


FORM IMPRIMIR_DATOS.

WRITE:/1'SOCIEDAD', 15'NUM_EMPL',40 'NOMBRE', 60 'TIP0'.

LOOP AT T_DATA1.
WRITE:/1 T_DATA1-BUKRS,15 T_DATA1-PERNR, 40 T_DATA1-NACHN, 60 T_DATA1-TIP_CTA .
ENDLOOP.

ENDFORM.

gracias :)

huanguelen 22/06/07 19:29:37

y el SELECT-OPTIONS so_T_CTA donde está???

Marco 22/06/07 19:41:41

A verrr ....
 
holas...
Bueno el Operador "IN" se utiliza para una lista (ya sea un rango, un select-option o algo parecido)... Si tu comparas dentro de tu SELECT con IN y el campo a comparar no es una lista pues te puede dar error.
Si el campo SO_T_CTA o el T_CTA no son lista (rangos o select-option) no lo pongas en la seleccion como "IN" solo pon un "EQ" (solo iguala al campo).

Prueba con eso..

Sld,
Marcko :cool:


Husos Horarios son GMT. La hora en este momento es 17:25:35.

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