Concatenate!!!!

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Rodrigonl
    Junior Member
    • dic
    • 5

    #1

    Concatenate!!!!

    Hola a todos
    Mi consulta es, necesito concatenar, dentro de un loop, un campo de una tabla, respentando los campos en blanco. Por ejemplo

    CONCATENATE concatenado campo1 into concatenado.

    campo1 tiene 18 caracteres, pero pueden venir menos, por ejemplo, puede contener solamente 3 y el resto en blanco.
    Necesito que me respete estos espacios en blanco que sobran.
    Alguien sabe como hacerlo?

    ya he probado poniendo CONCATENATE concatenado campo1(18) into concatenado, y no funciona

    Muchas gracias
  • azua14
    Senior Member
    • jul
    • 140

    #2
    yo no me complicaria mucho y haria algo asi

    data : contatenado2(18)

    CONCATENATE concatenado campo1 into concatenado
    move : contatenado to contatenado2.

    Comentario

    • fede_82
      Junior Member
      • oct
      • 3

      #3
      No termino de entender bien la situacion, queres q campo1 se concatene a partir del 18vo caracter de concatenado?

      si es asi, esto creo que deberia funcionar, pero ahora no puedo probarlo.

      data : contatenado2(18).

      concatenado2 = concatenado.
      clear concatenado.
      overlay concatenado+18 with campo1. " si no funciona agregale: only spaces.

      Comentario

      • Mauricio Hidalgo
        Senior Member
        • may
        • 481

        #4
        Lo que puedes hacer.

        1. Modificar en los string a concatenar el blanco por algún otro caracter.
        por ejemplo, reemplazo con asterisco.
        translate c_variable using ' *'.
        2. Realizar la concatenación.
        concatenate c_variable c_otravariable into c_destino.

        3. Hacer un reemplazo inverso de lo que hiciste en 1.
        translate c_destino using '* '.

        espero hayas entendido.

        Comentario

        • Marco
          Senior Member
          • abr
          • 141

          #5
          Holas,
          Cuando concatenas campos, los espacios se pierden.
          Lo que propone azua14 es factible y rapido.

          Sld,

          Comentario

          • torrescano
            Member
            • may
            • 57

            #6
            hola a todos

            mira si necesitas concatenar respetando espacion en blanco, puedes usar el WRITE, te respeta la long del campo.

            ejemplo:

            data: v_record(1000) type c.

            LOOP AT itab_inicial.
            write itab_inicial-lgnum to v_record+0(3).
            write itab_inicial-benum to v_record+3(10).
            write itab_inicial-betyp to v_record+13(1).
            write space to v_record+14(10).
            ENDLOOP.

            LISTO, si ves todo se va concatenando en la variable v_record respestando si viene espacio en blanco y la long de los campos a concatenar,

            espero te sea util, saludos
            Saludos amigos SAPeros

            Comentario

            • llinares
              Junior Member
              • ene
              • 1

              #7
              Esta es la mejor solución

              Utiliza en CONCATENATE TEXTO1 ' ' TEXTO2 INTO TEXTO3 RESPECTING BLANKS

              Comentario

              • abapconsultoria
                Senior Member
                • ene
                • 101

                #8
                La solucion de Mauricio me parece la optima.

                Saludos.
                ABAPCONSULTORIA@GMAIL.COM

                www.consultoriaabap.blogspot.com

                Lo importante no es saber sino saber quien es el que sabe

                Comentario

                • ecm
                  Junior Member
                  • abr
                  • 20

                  #9
                  Yo lo que haría sería tener una estructura con los campos que hay que concatenar(por ejemplo E_ESTRUC_AUX_CONC), y luego igualar concatenado = E_ESTRUC_AUX_CONC. Te respeta los blancos. El único problema sería si hay campos numericos que no sean de tipo N.

                  Comentario

                  • Floren
                    Senior Member
                    • abr
                    • 209

                    #10
                    Lo ideal...

                    Lo ideal sería usar la cláusula RESPECTING BLANKS.
                    El problema es que no es reconocida por el compilador en todas la release:

                    Florentín Navarrete Moya
                    SAP HCM Consultant
                    Mail: administracion@blogdefloren.com
                    Blog: www.blogdefloren.com

                    Comentario

                    • Floren
                      Senior Member
                      • abr
                      • 209

                      #11
                      He leído que es posible simular el comportamiento del RESPECTING BLANKS con el método UCCP DE LA CLASE CL_ABAP_CONV_IN_CE, pero no veo cómo.

                      Alguien sugiere algo?

                      Un saludo
                      Florentín Navarrete Moya
                      SAP HCM Consultant
                      Mail: administracion@blogdefloren.com
                      Blog: www.blogdefloren.com

                      Comentario

                      • jjcarlos
                        Junior Member
                        • sep
                        • 10

                        #12
                        La respuesta

                        Lo propuesto por Mauricio es la mas rápido simple e inmediato si no tienes el release adecuado no puedes hacer el RESPECTING BLANKS como me paso a mi que trabajo con el 4.6C.

                        El unico problema seria cuando tienes muchos campos por concatenar ya que tendrias que hacer el translate a todos ellos o si los campos tienen ya como contenido el *.

                        Comentario

                        Trabajando...