|
#1
|
||||
|
||||
Problema en sentencia IF
Hola
Quiero comparar dentro de un IF una variable con 5 posibles valores, esta es la expresion lógica: IF l_matnr IN ( '100392' OR '100394' OR '100396' OR '100398' OR '100388' ). "codigo ENDIF. pero al compilar me manda error de sintaxis :S. Faltará algun espacio?, o en lugar de ( es [ ? Ya probe de varias formas y no compila exitosamente :S. En que estoy mal ? Gracias de antemano |
#2
|
|||
|
|||
Create un rango y mete los valores hay.
Imaginate que el elemento de datos de los numero es MATNR pues haces.. DATA: i_rango TYPE RANGE OF matnr DATA: w_rango LIKE LINE OF i_rango. w_rango-sign = 'I'. w_rango-option = 'EQ' w_rango-low = '100392' APPEND w_rango to i_rango. w_rango-sign = 'I'. w_rango-option = 'EQ' w_rango-low = '100394' APPEND w_rango to i_rango. Asi con los 5... Despues haces IF l_matnr IN i_rango. ENDIF. |
#3
|
|||
|
|||
O también podrías manejarlo de la siguiente forma
IF l_matnr = '100392' OR l_matnr = '100394' OR l_matnr = '100396' OR l_matnr = '100398' OR l_matnr = '100388'. "codigo ENDIF. |
#4
|
|||
|
|||
En la misma linea
Que tal,
Cuando usas IN luego vendría algo así IN ( '100392' , '12345' , '12222' ) Se que en las sentencias SQL en los where funcionan, pero en los IF no los he probado. De todas formas el rango apuntado por el compañero si es seguro, pero escribiendo el sign y el option una vez, salvo que cambien de valor claro... (se incluyen en el append). w_rango-sign = 'I'. w_rango-option = 'EQ' w_rango-low = '100392'. APPEND w_rango to i_rango. w_rango-low = '100394'. APPEND w_rango to i_rango. w_rango-low = '100396'. APPEND w_rango to i_rango. Saludos |
#5
|
|||
|
|||
No hace falta rango ni or...
Como dice el Aviador la respuesta corresta es : Saludos |
Herramientas | Buscar en Tema |
Desplegado | |
|
|