[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