Foro de programación ABAP
SAP / ABAP => Programación ABAP => Mensaje iniciado por: metalgod en 22 de Abril de 2015, 05:03:53 pm
-
Hola, como estan?
Mi pregunta es esa, hay alguna forma simple de poder pasar de un select option a una tabla interna? Ya se que con un simple loop y el campo low del select option asigno la variable, pero esto es solo cuando son valores individuales, si me ingresan un rango? por ejemplo materiales desde 1 a 200 como obtengo los valores del pedido para pasarlos a una tabla interna? Se puede? Hay alguna forma corta?
El porque de esto, es que se ingresa por pantalla un rango de números de almacén, y otro de departamentos, se procesan datos y se envía un correo, en el correo, va la información de los almacenes y departamentos ingresados por pantalla.
De esto, no hay problema cuando son datos individuales, haciendo un loop al select option y asignando el valor low, pero quería ver que formas había, siendo por código manual, modulo de función, método, et, de poder hacer lo mismo pero si se ingresa un rango, por ejemplo desde 100 hasta 200, como saber los valores del medio de ese rango para mostrarlos.
No se si me explique.
Muchas gracias.
-
Estimado,
Si necesitase hacer algo como lo que dices...trataria de obtener los datos luego de hacer los select a las tablas...pero si fuese realmente necesario
utilizaria algo como lo siguiente codigo...
En la Tabla Interna : "TI_MATNR", quedarian todos los materiales
Ojo...este es un ejemplo rapido...y separe los rangos de los valores individuales solo como ejemplo...
REPORT y_test_004.
*
TABLES : mara.
*
TYPES : BEGIN OF ty_matnr,
matnr TYPE matnr,
END OF ty_matnr.
*
DATA : ti_matnr TYPE SORTED TABLE OF ty_matnr
WITH UNIQUE KEY matnr,
wa_matnr LIKE LINE OF ti_matnr.
*
RANGES : ra_matnr FOR mara-matnr.
*
DATA : wr_matnr LIKE LINE OF ra_matnr.
*
*
*
SELECT-OPTIONS so_matnr FOR mara-matnr.
*
*
*
*----------------------------------------------------------------------------------------*
* OBTENER VALORES DE RANGOS : "BT"
*----------------------------------------------------------------------------------------*
LOOP AT so_matnr INTO wr_matnr.
IF ( wr_matnr-option EQ 'BT' ).
APPEND wr_matnr TO ra_matnr.
ENDIF.
ENDLOOP.
*----------------------------------------------------------------------------------------*
* OBTENER MATERIALES EN RANGO
*----------------------------------------------------------------------------------------*
SELECT matnr INTO TABLE ti_matnr
FROM mara CLIENT SPECIFIED
WHERE mandt EQ sy-mandt
AND matnr IN ra_matnr.
*----------------------------------------------------------------------------------------*
* AGREGAR VALORES INDIVIDUALES DEL SELECT-OPTION A LA TABLA DE MATERIALES
*----------------------------------------------------------------------------------------*
LOOP AT so_matnr INTO wr_matnr.
IF ( wr_matnr-option EQ 'EQ' ).
CLEAR : wa_matnr.
wa_matnr-matnr = wr_matnr-low.
INSERT wa_matnr INTO TABLE ti_matnr.
ENDIF.
ENDLOOP.
-
Muchas gracias por tu respuesta, fue de mucha ayuda.
-
Por nada amigo...
Suerte.