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

Responder a