Asignar valores a una variable (rango o valores sueltos)

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • ppilargh
    Junior Member
    • mar
    • 17

    #1

    Asignar valores a una variable (rango o valores sueltos)

    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
    Senior Member
    • may
    • 199

    #2
    Originalmente publicado por ppilargh
    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.

    Comentario

    • SAPING
      Senior Member
      • may
      • 199

      #3
      (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..

      Comentario

      • ppilargh
        Junior Member
        • mar
        • 17

        #4
        Voy a ello..

        Gracias mil compañero..

        De verdad, GRACIAS.

        Comentario

        • ppilargh
          Junior Member
          • mar
          • 17

          #5
          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.

          Comentario

          • SAPING
            Senior Member
            • may
            • 199

            #6
            Originalmente publicado por ppilargh
            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 !!!

            Comentario

            Trabajando...