la función %dec ya se probo y tampoco funciono, ahora si existiera una %addr 
que no sea get, sino put, sería lo perfecto.....

Gracias por el tiempo.


  ----- Original Message ----- 
  From: Nicolas Machado 
  To: forum.help400 
  Sent: Monday, February 04, 2008 1:34 PM
  Subject: Re: Actualizar un campo numérico tipo P...Fernando Pérez


  Hola Jaime, entonces para cualquier campo vos podes saber si es empaquetado ?
  por lo que veo en tu pseudo lenguaje, tu variable nunca podria ser superior a 
50, que la variable de entrada para valor tiene 50 caracteres de longitud.

  Entonces cambiando mi pseudo lenguaje.
  Si la VAriable es empaquetada
      MOVE VALOR   AUXZoned  - Zoned de igual tamaño en longitud a VALOR, es 
decir 50, sin Decimales
      AuxPAcked = %DEC(AUZZoned)
      //Aca viene lo interesante de saber si se puede hacer
      MOVE    AUXPacked     AUXAlfa <- deberia contener un campo empaquetado en 
formato Alfanumerico.

      Ahora deberiamos saber la longitud en Bytes que ocupa el "verdadero 
valor" dentro de AUXALFA, para poder hacer algo como esto.

      %substs(Dsmiarchivo:poscision inicial:longitud en bytes) = 
%SUBST(AUXALFA; posicion inicial: Longitud);
      
      Yo creo que dentro de AUXALfa deveria estar el String que necesitas !
  Endif

  Saludos


  Jaime Villa Torres escribió: 
    Si tienen en un campo alfa 1234567 y lo ingresar como en el ejemplo que 
envié, en un campo de 7.2 el valor se almacena de una forma correcta en el 
campo.

    Respecto a la pregunta si sabemos en el programa el número de decimales.

    ----- Original Message ----- 
      From: Vicente Gomez (P.Blatem to help400) (E-mail) 
      To: 'forum.help400' 
      Sent: Monday, February 04, 2008 4:50 AM
      Subject: RE: Actualizar un campo numérico tipo P...Fernando Pérez


      ¿Sabeis la cantidad de decimales que tiene el campo numerico empaquetado?
        -----Mensaje original-----
        De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] nombre de Jaime Villa 
Torres
        Enviado el: viernes, 01 de febrero de 2008 3:24
        Para: forum.help400
        Asunto: Actualizar un campo numérico tipo P...Fernando Pérez


        Nicolás y Juan Ramón, gracias por la respuesta, pero la sentencia MOVE  
  AUXPacked     TuCampoDS, no aplica, ya que tendrías que realizarlo por cada 
campo, y eso no es dinámico.
        Imagina el siguiente programa

        d dsmiarchivo    e    ds            extname(archivo)
        c    *entry        plist
        c                          parm                    nomvar          10   
    nombre de la variable
        c                          parm                    valor              
50       valor de la variable
        c                          parm                    close
           //free 
            If close <> 'C'
        ....
        ....    con los datos de la *InzSr, buscamos la información 
correspondiente al campo ingresado y....

            %substs(Dsmiarchivo:poscision inicial:longitud en bytes) = 
%trim(valor);
        ...                       ESTO FUNCIONA PERFETAMENTE EN LA MAYORIA DE 
LOS ARCHIVOS, YA QUE LA APLICACIÓN DONDE SE APLICA CASI TODO     ES             
         ALFANUMERICO...PERO LLEGO LA EXCEPCIÓN, UN CAMPO EMPAQUETADO.
            Else;
        cuando termina de actualizar el el registro.
        envia a un programa el parámetro Dsmiarchivo, y este último programa 
realiza otras acciones con el registro.
              *Inlr = *on;
            EndIf;
            
            Return
           Begsr  *InzSr;
        en este punto utilizamos un api, de la empresa, que genera la 
información de todos los campos del archivo y  nos devuelve, la posición 
inicial del campo, la longitud en bytes y la longitud real.
            EndSR;
           .......
                   
          ----- Original Message ----- 
          From: Nicolas Machado 
          To: forum.help400 
          Sent: Thursday, January 31, 2008 12:21 PM
          Subject: Re: Actualizar un campo numérico tipo P...Fernando Pérez


          Hola Jaime, aver que te parece esta idea.

          Podes utilizar la funcion %DEC para convertir un valor a una campo 
Packed.

          Supongo que recibes 2 parametros, entro otros:
          VAriable (Alfanumerico de x posiciones)
          Valor     (Alfanumerico de x Posiciones )

          Entonces ...
          Si la VAriable es = 'TuCAmpoPacked'
             MOVE VALOR   AUXZoned  Zoned de igual tamaño en longitud a VALOR, 
sin Decimales
              AuxPAcked = %DEC(AUZZoned)
             MOVE    AUXPacked     TuCampoDS
          Endif

          No se si funcionaria, es un idea.
          Quiza hasta puedas hacer algo para saber si un campo es packed con 
alguna funcion ...
          Y no haces el IF.

          Espero te sirva la idea.

          Saludos
          Nicolas


          Jaime Villa Torres escribió: 
            Ese no es el problema, tienes el programa que le ingresan dos 
parámetros, un parámetro que contiene el nombre de la variable a actualizar y 
otro con el valor, par a todos los campos sabemos la posición inicial de cada 
campo en la ds y utilizando %subst, actualizamos el campo, pero esta forma no 
sirve para campos numéricos empaquetados.

            Gracias otra vez.
              ----- Original Message ----- 
              From: Fernando Pérez 
              To: forum.help400 
              Sent: Thursday, January 31, 2008 3:24 AM
              Subject: Re: Actualizar un campo numérico tipo P


              5 es el tamaño que ocupa en memoria, pero el campo es de 8 
dígitos. 

              Solo tendrás problemas si lo quieres actualizar con MOVE/MOVEL, 
en cuyo caso tendrás que usar una variable del mismo tipo (8p 0). Si utilizas 
ADD, Z-ADD, EVAL o la asignación en formato libre (por ejemplo, variable = 
*date) no tendrás ningún problema.


              Saludos.

              Fernando Pérez  

              Cerámica Saloni. Dpto. Auditoría y Organización



              Jaime Villa Torres escribió: 
                Señores tengo el siguiente problema- 

                Exite un pgm con una ds de un archivo 

                d dsarchivo  e ds      extname(archivo) 

                a este programa llega un nombre de variable de esta ds del 
archivo y un valor, cuando el campo es alfa o numérico desempaquetado no hay 
problema con el procedimiento que tenemos para actualizar el campo, pero cuando 
este es numérico empaquetado no hemos encotrado la forma de actualizar dicho 
campo. 

                Ejemplo, el campo fecha de 8p 0, este en el sistema realmente 
es de 5, y el valor que tengo es 20080125, como volverlo empaquetado.??? 

                Una solucion es realizar un select por cada campo, pero no es 
practico, dependiendo del numero de campos que tenga el archivo. en este caso, 
el archivo tiene mas de 400 campos y si cambia el archivo, se debe cambiar el 
select, no es nada dinámico. 

                Cualquier consejo es bien venido. 

                Gracias como siempre. 

                __________________________________________________ 
                Forum.HELP400 es un servicio m&amp;#225;s de NEWS/400. 
                &amp;#169; Publicaciones Help400, S.L. - Todos los derechos 
reservados 
                http://www.help400.es 
                _____________________________________________________ 

                Para darte de baja visita la siguente URL: 
                http://listas.combios.es/mailman/listinfo/forum.help400 



------------------------------------------------------------------
              __________________________________________________
              Forum.HELP400 es un servicio m&amp;#225;s de NEWS/400.
              &amp;#169; Publicaciones Help400, S.L. - Todos los derechos 
reservados
              http://www.help400.es
              _____________________________________________________

              Para darte de baja visita la siguente URL:
              http://listas.combios.es/mailman/listinfo/forum.help400
--------------------------------------------------------------------
__________________________________________________
Forum.HELP400 es un servicio m&amp;#225;s de NEWS/400.
&amp;#169; Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400

-- 
.::.
Nicolas Machado
Metodo Argentina S.A.
_____________________

----------------------------------------------------------------------
          __________________________________________________
          Forum.HELP400 es un servicio m&amp;#225;s de NEWS/400.
          &amp;#169; Publicaciones Help400, S.L. - Todos los derechos reservados
          http://www.help400.es
          _____________________________________________________

          Para darte de baja visita la siguente URL:
          http://listas.combios.es/mailman/listinfo/forum.help400


--------------------------------------------------------------------------
      __________________________________________________
      Forum.HELP400 es un servicio m&amp;#225;s de NEWS/400.
      &amp;#169; Publicaciones Help400, S.L. - Todos los derechos reservados
      http://www.help400.es
      _____________________________________________________

      Para darte de baja visita la siguente URL:
      http://listas.combios.es/mailman/listinfo/forum.help400
----------------------------------------------------------------------------
__________________________________________________
Forum.HELP400 es un servicio m&amp;#225;s de NEWS/400.
&amp;#169; Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400

-- 
.::.
Nicolas Machado
Metodo Argentina S.A.
_____________________

------------------------------------------------------------------------------


  __________________________________________________
  Forum.HELP400 es un servicio m&amp;#225;s de NEWS/400.
  &amp;#169; Publicaciones Help400, S.L. - Todos los derechos reservados
  http://www.help400.es
  _____________________________________________________

  Para darte de baja visita la siguente URL:
  http://listas.combios.es/mailman/listinfo/forum.help400
__________________________________________________
Forum.HELP400 es un servicio m&amp;#225;s de NEWS/400.
&amp;#169; Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400

Responder a