Concatenar Tres Campos Y Que Uno De Ellos Muestre La Edicion 0

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • zavarmi
    Senior Member
    • ene
    • 221

    #1

    Concatenar Tres Campos Y Que Uno De Ellos Muestre La Edicion 0

    Hola a todos,

    Tengo el siguiente caso. esto imprimiendo un cod. de Barra (sapscript) el cúal esta compuesto por tres campos: Material + Cantidad + Lote, el cuál lo generó por medio de concatenación, todo OK.
    el caso es que el campo cantidad es char de 8 Posiciones, y quiero que este se muestre con los ZEROS que van delante de él : ejemplo cantidad = 115 como el campo es de 8 char, que muestre 00000115..ya que necesito todas las posiciones ocupadas e impresas para que el lector pueda hacer lo que deseamos (por configuaración de este).

    gracias por al ayuda.
  • bktr
    Junior Member
    • feb
    • 9

    #2
    mira esta funcion a ver si te sirve: CONVERSION_EXIT_ALPHA_INPUT

    Comentario

    • Gregoryg
      Senior Member
      • abr
      • 115

      #3
      Concatenar

      Hola

      Chequeate estas funciones
      CONVERSION_EXIT_ALPHA_INPUT
      CONVERSION_EXIT_ALPHA_OUTPUT
      Una te sirve para completar de ceros a la izquierda y otra para eliminanrlos

      Saludos
      Gregory
      GregoryG

      Comentario

      • melerogalan
        Senior Member
        • nov
        • 142

        #4
        Alternativa

        tambien existe las sentencias pack y unpack, que quita los ceros o los elimina por la izquierda respectivamente(o al reves, no me acuerdo, ). Ejemplo:

        pack variable_inicial to variable_final.

        Con una sola linea lo tienes.

        Variable inicial y fianl puede ser la misma sin problemas.

        Espero que te sirva.

        Saludos
        Cada vez que un programador hace una hora extra, Dios mata a un gatito...tenlo en cuenta

        Comentario

        • zavarmi
          Senior Member
          • ene
          • 221

          #5
          No funciona ni el PACK UNPACK ni la función..Alguna otra manera??

          Comentario

          • prendtorff
            Junior Member
            • ago
            • 24

            #6
            la funcion CONVERSION_EXIT_ALPHA_INPUT tiene que funcionar, si lo qeu hace es llenar de 0 ( ceros ) del lado izq una variable.

            no debes haberla usado bien.

            probala en se37 y vas aver...

            saludos y suerte resolviendo tu problema.
            El que mas sabe,
            lo resulve mas facil...

            Comentario

            • caparase

              #7
              no sé si sea posible, pero ¿puedes cambiar el tipo de dato de texto a numérico?...si puedes hacer eso, el campo númérico solo te muestra los ceros a la izquierda y lo puedes concatenar sin problemas.

              de no ser posible el cambio de tipo, puedes utilizar el comando STRLEN, con el que puedes calcular el largo del texto dentro del campo CANTIDAD y le concatenas los ceros que te hagan falta. Esto es, si tienes 115 en CANTIDAD:

              largo = strlen( cantidad ).

              * el valor que toma LARGO es 3.

              * después le restas el 3 a 8 y te da 5:

              largo = 8 - largo.

              do largo times.

              concatenate '0' cantidad to cantidad.
              condense cantidad no-gaps. "elimina los espacios que pueden quedar con
              el concatenar
              enddo.

              espero te sirva.

              saludos.

              Comentario

              • zavarmi
                Senior Member
                • ene
                • 221

                #8
                Listo ya quedo Muchas gracias...

                Comentario

                • caparase

                  #9
                  ...y cómo lo resolviste?

                  Comentario

                  • zavarmi
                    Senior Member
                    • ene
                    • 221

                    #10
                    de la siguiente manera: declare una variable de la long. que necesito con valor inicial '0'. Luego de asignar el valor del campo a mi variable 2 (v_qtyc), realice un OVERLAY a mi variable v_qtyc con la variable v_ceros, y luego concateno los campos que quiero (v_matnr V_QTYC p_lote )

                    DATA: v_ceros(8) VALUE '00000000'.

                    v_qtyc = mseg-erfmg.

                    OVERLAY v_qtyc WITH v_ceros.

                    CONCATENATE v_matnr v_qtyc p_lote INTO v_cblar IN CHARACTER MODE.

                    Comentario

                    Trabajando...