[Isis-users] Sumar valores de todos MFN en un campo

Ricardo Augusto ricardo.a.chamorro at gmail.com
Thu Mar 31 00:31:59 CEST 2011


Perfecto, excelente explicación y solución.

Te estoy muy agradecido, siempre dando el más consistente apoyo a esta
comunidad, Ernesto.

Mil gracias, un saludo cordial y a tus órdenes si puedo retribuirte tu
atención.

Además le puede servir a otros este especial requerimiento.
Saludos a todos

Ricardo Chamorro




El 30 de marzo de 2011 18:57, Ernesto Spinak <spinaker at adinet.com.uy>escribió:

>  Ricardo
>
> Si quieres acumular un valor a lo largo de varios registros, entonces debes
> usar un pequeño truco como el que sigue. La razón es que el PFT es una
> instrucción "local" del registro, no es "global", de modo que los valores de
> un registro son destruídos cuando pasas a otro MFN
>
> Supongamos que el valor que quieres sumar esta en el campo V1 y no es
> repetible
> Entonces usa el formato acumulador.pft
>
>     putenv('acum=', f(val(v1)+ val(getenv('acum')),1,0) )
>
> En el comado darías
> mx <base> from=xxx  to=zzz   pft=@acumulador.pft   epilog=getenv('acum')
> tell=100 now
>
> El formato "epilog" se cumple cuando termina la corrida y te entrega el
> valor total
> Si el campo v1 fuera repetible, entonces deberás agregar al formato
> acumulador la instrucción "rsum()"
>
> Saludos
> Ernesto
>
>
>
>
> Ricardo Augusto escribió:
>
> MUCHAS Gracias Ernesto!!!
>
> Estoy llegando a la meta... Sólo me falta que me muestre la suma. Hago
> exactamente lo que me indicas, e incluso leyendo el manual de ref. de cisis
> agregué algún parámetro más (como now, o text=<txt> para que salga, o from=x
> to=x para acotar la salida) pero no me aparece el resultado de la suma,
> tampoco graba en txt la salida cuando la pido con text=archivo.txt. O sea,
> no da error, solo lista uno a uno los digitos del campo, en ambas
> instrucciones (sin la coma, eso si) y debo darle enter a cada uno, pero al
> fin cierra y no da el total...
> Qué estaré haciendo mal? Cambié de ambiente al cmd de una vieja XP pero
> funciona igual  que en un Seven x86...
> Gracias y saludos cordiales
>
> Ricardo Chamorro
>
>  El 30 de marzo de 2011 16:40, Ernesto Spinak <spinaker at adinet.com.uy>escribió:
>
>> Ricardo
>>
>> La instrucción es rsum(<format>)
>>
>> El formato debe generar una cadena de caracteres, donde cada numero debe
>> estar separado por al menos un espacio
>> Por ejemplo tengo el siguiente registro con el campo v111 repetible donde
>> pongo los numeros a sumar
>> 111  «1»
>> 111  «3»
>> 111  «5»
>> 111  «7»
>> 111  «9»
>>
>> entonces debe generar la cadena de numeros separados
>> C:\CDS>mx cds from=151  "pft=v111+|, |"
>> 1, 3, 5, 7, 9
>>
>> para obtener la suma la instrucción es
>> C:\CDS>mx cds from=151  "pft=f( rsum(v111+|, |),1,0)"
>> 25
>>
>> no es posible sumar valores a través de registros, excepto usando el MX
>> dese la línea de comandos
>> y eso se logra usando variables de ambiente con getenv y putenv
>>
>> Saludos
>> Ernesto Spinak
>>
>>
>> Ricardo Augusto escribió:
>>
>> Hola, una ayudita que mi memoria no halla el formato y estoy apurado con
>> una suma de valores de un campo.
>> Se trata de la cantidad total de carillas de documentos anotadas en un
>> campo.
>> O sea, en el campo X cada ocurrencia declara que hay, por caso, 5
>> (carillas).
>>
>> El campo X solo registra un valor, numero, que se corresponde
>> obviamente con la cantidad de carillas del documento.
>>
>> Necesito sumar todas las carillas para saber cuántas hay en toda la
>> base...
>>
>> O sea, en principio extraigo
>>
>> f(val(vXX),0,0,)
>> o
>> f(rsum(vXX),0,0,)
>>
>> y esto me dice cuantas cuántas carillas hay en ese campo anotadas, pero
>> esto es por cada registro y no por todos los mfn...
>> Creo que debería declarar el rango total de MFN, o algo así pero no me
>> aclaro...
>>
>> Alguna ayudita?
>>
>> Miles de gracias y saludos cordiales
>> Ricardo
>>
>> ------------------------------
>>
>> _______________________________________________
>> isis-users mailing listisis-users at iccisis.org
>> To manage your own subscription options go to: http://lists.iccisis.org/listinfo/isis-users
>> Or contact Henk Rutten: hlrutten at xs4all.nl
>>
>>
>>
>> --
>>   .^.                                .^.
>>   ( )                                ( )
>>   ===                                ===
>>  =[=]================================[=]=
>>   | |  Ernesto Spinak                | |
>>   | |  spinaker at adinet.com.uy        | |
>>   | |  Montevideo, Uruguay           | |
>>   | |  tel/fax  (5982) 622-3352      | |
>>   | |  celular  (598)  99612238      | |
>>  =[=]================================[=]=
>>   ===                                ===
>>   ( )                                ( )
>>    V                                  V
>>
>>
>
>
> --
>   .^.                                .^.
>   ( )                                ( )
>   ===                                ===
>  =[=]================================[=]=
>   | |  Ernesto Spinak                | |
>   | |  spinaker at adinet.com.uy        | |
>   | |  Montevideo, Uruguay           | |
>   | |  tel/fax  (5982) 622-3352      | |
>   | |  celular  (598)  99612238      | |
>  =[=]================================[=]=
>   ===                                ===
>   ( )                                ( )
>    V                                  V
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.iccisis.org/pipermail/isis-users/attachments/20110330/8965f248/attachment.html>


More information about the isis-users mailing list