PDA

Ver la Versión Completa : Array en una tabla existente


Kar
07-02-2018, 18:28:22
Hola a todos, necesito de su ayuda, estoy intentando utilizar un arreglo dentro de una tabla, es una tabla con muchos datos, pero necesito sacar el promedio cada 24 datos y así sucesivamente hasta llegar al último registro, necesito guardarlos en una tabla para hacer comparaciones, pero el tema de los arreglos aún me cuesta trabajo, ojalá me puedan ayudar o sugerir algo. :confused:
Gracias. Saludos!!


Type
TPacasRecord = record
Banco:Integer;
Bale:string;
MicProm:real;
RdProm:real;
MasBProm:real;
end;
Procedure Proceso(pacarray:array of tpacasrecord);
var
pacarray:array [1..1000] of tpacasrecord;
Table1.ACTIVE:=TRUE;
TABLE1.OPEN;


function Sumas(sumamic, sumard, sumamasb:real):TPacasRecord;
begin
sumamic:=sumamic+TABLE1.FieldByName('Mic').Asfloat;
sumard:=sumard+TABLE1.FieldByName('Rd').Asfloat;
sumamasb:=sumamasb+TABLE1.FieldByName('Masb').Asfloat;
end;

Procedure Proceso(pacarray:array of tpacasrecord);
IF I=(Conta*24) THEN
BEGIN

PACARRAY[1].BANCO:=Conta;
PACARRAY[1].MICPROM:=sumamic/24;
PACARRAY[1].RDPROM:=sumard/24;
PACARRAY[1].MASBPROM:=sumamasb/24;

TPacasRecord.Banco:=Conta;
TPacasRecord.Banco:=MICPROM;
TPacasRecord.Banco:=RDPROM;
TPacasRecord.Banco:=MASBPROM;

Conta:=Conta+1;
sumamic:= 0;
sumard:= 0;
sumamasb:= 0;
end;
table1.close;
table1.active:=false;

end;

mamcx
07-02-2018, 19:14:16
Lo que pides lo puedes hacer mas adecuadamente con SQL.

Kar
07-02-2018, 22:55:54
Lo que pasa es que es parte de un programa, el usuario final sólo se le van a presentar los resultados, el usuario no va a hacer consultas.

Kar
08-02-2018, 16:39:31
Hola ya logré que corra mi array pero no me está guardando nada en el record. El Pacarray aparece vacío y me marca un error cuando pido que se vaya al inicio de la lista. Ojalá me puedan orientar. Gracias

TABLE1.OPEN;
TABLE1.ACTIVE:=TRUE;
for i:=1 to cantrow do
begin

TABLE1.First;
Bale:=TABLE1.FieldByName('Bale_ID').AsString;
sumamic:=sumamic+TABLE1.FieldByName('Mic').Asfloat;
sumard:=sumard+TABLE1.FieldByName('Rd').Asfloat;
sumamasb:=sumamasb+TABLE1.FieldByName('Masb').Asfloat;


IF I=(Contador*24) THEN
BEGIN
PACARRAY[1].BANCO:=Contador;
PACARRAY[1].MICPROM:=sumamic/24;
PACARRAY[1].RDPROM:=sumard/24;
PACARRAY[1].MASBPROM:=sumamasb/24;



Contador:=Contador+1;
sumamic:= 0;
sumard:= 0;
sumamasb:= 0;
end;

Kar
14-02-2018, 00:50:07
Hola otra vez, una pregunta ya tengo los resultados del arreglo pero ahora necesito imprimirlos en pantalla y guardarlos en un archivo o en una tabla, se puede?