Duda con valores de tabla interna

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • ximena251
    Member
    • nov
    • 54

    #1

    Duda con valores de tabla interna

    Buenas tardes aquí con una duda.
    No sé como realizar una inversión de valores.
    Si tengo un campo fname que tiene un valor de 6412345 y quiero
    que quede 2345641 ¿Cómo hacerlo? solo encuentro como invertir la cadena... (5432146)
    Gracias de antemano.
    Los escritores somos seres heridos por ello creamos otra realidad
  • vanesamacri
    Senior Member
    • jun
    • 146

    #2
    Buenas tardes.

    Hacé:

    DATA variable TYPE string.

    CONCATENATE fname+3 fname(3) INTO variable.

    Comentario

    • ximena251
      Member
      • nov
      • 54

      #3
      Originalmente publicado por vanesamacri
      Buenas tardes.

      Hacé:

      DATA variable TYPE string.

      CONCATENATE fname+3 fname(3) INTO variable.
      Muchas gracias por la respuesta.
      Los escritores somos seres heridos por ello creamos otra realidad

      Comentario

      • Mauricio Hidalgo
        Senior Member
        • may
        • 481

        #4
        En este caso hay que mover a la izquierda tres posiciones. Así entonces sería

        <tu_variable> = '6412345'.

        SHIFT <tu_variable> LEFT BY 3 PLACES CIRCULAR.

        Si el largo es variable deberás calcular cuantos lugares aplicar en el SHIFT.

        Saludos

        Comentario

        • ximena251
          Member
          • nov
          • 54

          #5
          Originalmente publicado por Mauricio Hidalgo
          En este caso hay que mover a la izquierda tres posiciones. Así entonces sería

          <tu_variable> = '6412345'.

          SHIFT <tu_variable> LEFT BY 3 PLACES CIRCULAR.

          Si el largo es variable deberás calcular cuantos lugares aplicar en el SHIFT.

          Saludos
          Muchas gracias por la respuesta; abusando de tu amabilidad, tengo otra pequeña duda. Si quiero formar una cadena con el valor del campo de una tabla interna. ¿Cómo se hace?; es decir. Si tengo una constante = /ruta/.. y una variable que me guarda la fecha.
          Concatenate contante 'CCCVVV' v_fecha into ...variable.

          CCCVVV es un valor que contiene una tabla interna. (fname = 123456), ¿Cómo pongo ese valor del 'Concatenate' ?
          Los escritores somos seres heridos por ello creamos otra realidad

          Comentario

          • Mauricio Hidalgo
            Senior Member
            • may
            • 481

            #6
            No hay problema, sería algo así:

            CONCATENATE contante <tabla_interna>-fname v_fecha into variable.

            Tienes algún problema de sintaxis ?..si es así, muestra la declaración de tu tabla interna y como la estás accesando.

            Saludos

            Comentario

            • ximena251
              Member
              • nov
              • 54

              #7
              Originalmente publicado por Mauricio Hidalgo
              No hay problema, sería algo así:

              CONCATENATE contante <tabla_interna>-fname v_fecha into variable.

              Tienes algún problema de sintaxis ?..si es así, muestra la declaración de tu tabla interna y como la estás accesando.

              Saludos
              De hecho si, lo había hecho como lo mencionas, pero me manda un error
              Los escritores somos seres heridos por ello creamos otra realidad

              Comentario

              • Spainnavar
                Member
                • sep
                • 53

                #8
                Prueba con MOVEs

                Prueba a meter los campos que te den error en variables char de la long necesaria. No se cual de los campos de dará error, peor prueba con los 3 si fuera necesario. La idea es esta...

                DATA: var_aux1(mete aqui la longitud necesaria) TYPE c,
                var_aux2(mete aqui la longitud necesaria) TYPE c.

                MOVE constante TO var_aux1.
                MOVE <tabla_interna>-fname TO var_aux2.

                CONCATENATE var_aux1 var_aux2 v_fecha into variable.

                No se si sera necesario hacerlo tambien con la variable v_fecha, pero inténtalo tambien

                Ya nos dirás

                Un saludo
                Editado por última vez por Spainnavar; 10/04/2014, 10:09:59.

                Comentario

                • ximena251
                  Member
                  • nov
                  • 54

                  #9
                  Ya había intentado hacerlo con Move, creo que el problema reside en que el <fs_cnst> -fname contiene más de un valor... es decir 123456, 2233456 ejemplos. Quizá si solo se apunte al primer valor o genere la cadena en cuanto a todos los valores que posea...ósea

                  constante.. fname(123456) fecha
                  constante...fname (2233456) fecha...
                  algo así...
                  Los escritores somos seres heridos por ello creamos otra realidad

                  Comentario

                  Trabajando...