Clarion - acumulador

 
Vista:

acumulador

Publicado por Jorge (86 intervenciones) el 28/08/2012 13:08:52
Buenos Dias:
Uso el correo de un amigo para hacer esta pregunta
En un Browse uso una tabla que tiene ALU:CODIGO, ALU:NOMBRE, ALU:SEXO, ALU:FALTAS, todos los dias cargo las faltas de un alumno y al final del mes se acumulan en LOC:FALTAS para poder mostrarla en el browse, Mi pregunta es la siguiente: quiero acumular todas las LOC:FALTAS de los alumnos varones en otra variable local.
coloco FI ALU:SEXO='M' THEN LOC:TOTAL_V+=LOC:FALTAS. pero no se en que punto de insercion ponerlo, no me hace la operacion, o me la hace cada vez que voy seleccionando un registro. agradeceria su ayuda

gracias jorge..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

acumulador

Publicado por Marcelo Madelon (572 intervenciones) el 28/08/2012 15:18:47
Jorge

Yo uso una Queue y luego armo un browse con esos datos.
Durante la carga de la queue hago los calculos.
De esa manera lo que me queda es mostrar solamente por que los cálculos ya los hice.

Ejemplo de cargar una queue. Fijate en el help


! Leo Cliente y leo los movimientos de cuenta corriente y Cargo Queue

CL1:Cliente = CodClie
IF Access:ACLIE001.Fetch(CL1:KeyCliente) !Lee ACLIE001
MESSAGE('No Encuentra Registro en ACLIE001','Mensaje del Sistema',ICON:Exclamation)
Select(?CodClie)
CYCLE
END
Display (CL1:ApellidoNombre)
Clear(QResumen)
I# = 0
CL2:Cliente = CL1:CodClie
SET(CL2:KeyCliente,CL2:KeyCliente)
LOOP UNTIL Access:ACLIE002.Next() OR CL2:Cliente Not = CL1:CodClie
I# += 1
QR:FecEmi = CL2:Fecemi
QR:FecVen = CL2:Fecven
QR:Letra = CL2:Letcom
QR:Puesto = CL2:Ptocom
QR:Numero = CL2:Nrocom
QR:Debe = CL2:Debe
QR:Haber = CL2:Haber
QR:Saldo += QR:Debe - QR:Haber ! Calculo el saldo

LOC:CantidadClientes += 1 ! cuento los clientes
IF CL2:Estado = 1
LOC:Estado_1 +=1 ! sumo los clientes de estado 1
Else
LOC:Estado_Unico += 1 ! Sumo los clientes comunes
END

ADD(QResumen,I#)
IF ERRORCODE() THEN STOP(ERROR()).

END !Loop


Despues armo un browse y muestro los datos

Espero te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

acumulador

Publicado por Olga (43 intervenciones) el 29/08/2012 15:52:55
bueno..... primero seria bueno saber en que version de clarion trabajas, yo uso la 6.X, para esta version es simplemente crear dos variables locales, por ejemplo LOC:TotalM y LOC:TotalF, definilos como short @n-7 o Byte @n3, total el año tiene 365 dias y yo creo que al menos algunos dias de esos 365 va a ir al colegio, no?

Usa las herramientas del Browse, los totales, ...te pones en tu browse, vas al list y le das propiedades
, alli en propiedades vas a la lengueta Actions y luego haces click en el boton Browse Box Behavior y alli entras en Totaling. Una vez alli le das click al boton insert y alli se te despliega un formcito que te pide:

Total Target Field........aca le das por ejemplo el LOC:TotalM (Masculinos)
Total Type.....................le das Sum
Field To Total...............le pones el campo que queres sumar de tu tabla de clientes, alumnos o lo que sea
y por ultimo...
Total Condition............aqui le pones la condicion, por ejemplo que...CLI:Sexo='M'

y ya esta.. aceptas todo y listo

y para las chicas o sea el sexo femenino agragas otro igual a esto, le cambias el LOC:TotalF y la condicion que sea ...CLI:Sexo='F' y listo

por si no te refresque enseguida solo le pones como Hot Fields los campos que intervienen en tu
consulta los pones aqui, por ejemplo: CLI:Sexo, LOC:TotalM, LOC:TotalF. Cualquier duda me pegas el grito y te doy una manito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

acumulador

Publicado por jorge (86 intervenciones) el 31/08/2012 06:17:20
muchas gracias a todos por contestar voy a probar y les comento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 14
Ha mantenido su posición en Clarion (en relación al último mes)
Gráfica de Clarion

acumulador

Publicado por Cristian Canteros (136 intervenciones) el 05/09/2012 14:00:21
En los embed de tu browse ubica este punto de insecion

LocalObjects
ABCObjects
Browse On
SetQueueRecord (Prioridad 4500)


!Llama al procedimiento para calcular las inasistencias anteriores
DO Contar_Inasistencias_Anteriores !una rutina o el codigo que escribas

Interpreto que lo que queres es contar las asistencias acumuladas, tambien estoy con un sistema para colegio con varas funcionalidades entre ellas esto de las asistencias, si te interesa compartir ideas y/o ayuda te paso mi correo [email protected].
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar