PDA

Ver la Versión Completa : Asignar valores a una variable (rango o valores sueltos)


ppilargh
17/05/11, 16:24:19
Una pregunta básica.. (que no me aclaro)..

He quitado de una pantalla la petición del material y quiero asignarlos internamente en el programa...

¿Cómo se indica en el código?.
Llevo rato y no me entero !!

Quiero decir pepe-matnr = valor1 // valor2.. etc..
o bien pepe-matnr = rango entre valor1 y valor2.

Lo siento, sé que es muy básico pero aiss..

GRACIASSSSS..

SAPING
17/05/11, 17:04:49
Una pregunta básica.. (que no me aclaro)..

He quitado de una pantalla la petición del material y quiero asignarlos internamente en el programa...

¿Cómo se indica en el código?.
Llevo rato y no me entero !!

Quiero decir pepe-matnr = valor1 // valor2.. etc..
o bien pepe-matnr = rango entre valor1 y valor2.

Lo siento, sé que es muy básico pero aiss..

GRACIASSSSS..


Debes crear un rango y colocar los valores que quieres usar.
Ej:

DATA: ra_matnr TYPE RANGE OF mara-matnr,
wl_matnr LIKE LINE OF ra_matnr.

**** para tu primer caso: "pepe-matnr = valor1 // valor2.. etc.."
wl_matnr-sign = 'I'. "Incluido
wl_matnr-option = 'EQ'. "Igual
wl_matnr-low = '<material>'. "el valor exacto del material
APPEND wl_matnr TO ra_matnr.
CLEAR wl_matnr.
- y asi con cada valor que necesites -

*** y para tu 2do caso: "pepe-matnr = rango entre valor1 y valor2."
wl_matnr-sign = 'I'. "Incluido
wl_matnr-option = 'EQ'. "Igual
wl_matnr-low = '<material>'. "el valor DESDE
wl_matnr-high = '<material>'. "el valor HASTA
APPEND wl_matnr TO ra_matnr.
CLEAR wl_matnr.

Espero te sirva.
Saludos.

SAPING
17/05/11, 17:10:12
(por las dudas comento :P )
si lo vas a usar tanto para un SELECT, DELETE o cualquier comparacion debes usar los operadores IN / NOT IN para poder usar el rango.
Esto es igual que un SELECT-OPTION, es una tabla del mismo tipo digamos, por eso ese tratamiento.

Saludossss..

ppilargh
18/05/11, 09:45:52
Voy a ello..

Gracias mil compañero..

De verdad, GRACIAS.

ppilargh
18/05/11, 14:18:09
Hola de nuevo..

Encantada de probar lo que me has enviado.. pero después de horas probando (para que no se diga) no consigo que funcione.

Mira..
WHEN '1001'.
v_bwart-sign = 'I'. "Incluido
v_bwart-option = 'EQ'. "Igual
v_bwart-low = '101'. "el valor DESDE
v_bwart-high = '102'. "el valor HASTA
APPEND v_bwart TO ra_bwart.
CLEAR v_bwart.

En realidad se trataba del cod.mvto. no del material.. y NO SÉ QUE HAGO MAL !!

No hay forma.. (creo que no hay errores) pero sólo me funciona con el primer valor.. el otro lo omite..

SELECT werks lgort bwart matnr menge shkzg kunnr lifnr dmbtr kzbew sobkz sjahr smbln smblp INTO CORRESPONDING FIELDS OF mseg FROM mseg
WHERE mblnr = mkpf-mblnr AND
bwart IN ra_bwart AND
werks = p_werks AND
matnr IN s_matnr.

¿Qué estoy haciendo mal?... buaaaa...

Saludos.

SAPING
18/05/11, 14:42:27
Hola de nuevo..

Encantada de probar lo que me has enviado.. pero después de horas probando (para que no se diga) no consigo que funcione.

Mira..
WHEN '1001'.
v_bwart-sign = 'I'. "Incluido
v_bwart-option = 'EQ'. "Igual
v_bwart-low = '101'. "el valor DESDE
v_bwart-high = '102'. "el valor HASTA
APPEND v_bwart TO ra_bwart.
CLEAR v_bwart.

En realidad se trataba del cod.mvto. no del material.. y NO SÉ QUE HAGO MAL !!

No hay forma.. (creo que no hay errores) pero sólo me funciona con el primer valor.. el otro lo omite..

SELECT werks lgort bwart matnr menge shkzg kunnr lifnr dmbtr kzbew sobkz sjahr smbln smblp INTO CORRESPONDING FIELDS OF mseg FROM mseg
WHERE mblnr = mkpf-mblnr AND
bwart IN ra_bwart AND
werks = p_werks AND
matnr IN s_matnr.

¿Qué estoy haciendo mal?... buaaaa...

Saludos.

Hola.
Vos no estas haciendo nada mal.. fui yo el del error..
Esto pasa habitualmente con COPY-PASTE.. :P

en el valor OPTION debes colocar BT (between)... EQ es para ver solo un valor(la costumbre de hacerlo asi..je)

Perdon y saludos !!!