Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Suma de Registros (https://www.clubdelphi.com/foros/showthread.php?t=52383)

gerasA 18-01-2008 21:19:53

Suma de Registros
 
Hola!
Tengo dos campos en una tabla Peso, Total.
Como le hago para sumar los registros del total. por ejemplo:
1. peso=100 total=100
2. Peso=200 total=300

Tengo dos edit el usuario captura el peso en uno y yo kiero ke el total del ultimo registro de la tabla aparesca en el edit del total automaticamentre cada ves que corra la aplicacion
Gracias

enecumene 18-01-2008 21:24:35

Hola, pones un query en el form y en el evento OnCreate del form pones esto:

Código Delphi [-]
Query1.SQL.Text = 'select SUM(campo) from tabla';
Query1.Open;
Edit1.Text := Query1.Field[0].Asstring;

Saludos.

egostar 18-01-2008 22:02:05

Siempre he tenido cierta duda respecto a usar el evento OnCreate para usar sentencias "actualizables", lo digo porque por ejemplo que pasa si está consulta la tengo que "refrescar" cada vez que invoco la forma, como solo se crea una vez no se verán afectados los registros.

Claro que eso se resuelve creando las formas en tiempo de ejecución, pero para novatos (como Caral, o como FerCastro :D:D:D) les complica la vida y tendrán dolores de cabeza tratando de decifrar donde está el problema.

En fin, solo es una duda muy dudosa..... :)

Salud OS

gerasA 18-01-2008 22:24:33

Gracias
 
:)Gracias Enecumene ya salio
Solo otra pregunta y si solo quisieraa el ultimo registro de una tabla seria asi:
Código Delphi [-]
Query1.SQL.Text = 'select Last(campo) from tabla';
Query1.Open;
Edit1.Text := Query1.Field[0].Asstring;
O en donde iria el last

jcarteagaf 18-01-2008 22:25:07

Sumar registros
 
Dependiendo del tipo de conexion que use (BDE,ADO, Sdac, etc.) la solucion seria hacerlo mediante un query como te sugirieron antes (puede ser en el evento onCreate o onShow o en el AfterOpen de tu tabla). Si son tablas en memoria o tablas temporales y la cantidad de datos no es muy grande uso la siguiente funcion:

Código Delphi [-]
function Totalizar(archivo : TDataSet; sField : String) : Double;
var bmReg : TBookmark;
    fTotal : Double;
begin
  with Archivo do
  try
    DisableControls;
    bmReg := GetBookmark;
    first;
    fTotal := 0;
    while not Eof do
    begin
      fTotal := fTotal + Fieldbyname(sField).AsFloat;
      next;
    end;
  finally
    GotoBookmark(bmReg);
    FreeBookmark(bmReg);
    EnableControls;
  end;
  result := fTotal;
end;

En tu caso la llama seria

Código Delphi [-]
Total := Totalizar(Tabla,'TOTAL');

Saludos

enecumene 22-01-2008 16:19:54

Cita:

Empezado por gerasA (Mensaje 259306)
:)Gracias Enecumene ya salio
Solo otra pregunta y si solo quisieraa el ultimo registro de una tabla seria asi:
Código Delphi [-]
Query1.SQL.Text = 'select Last(campo) from tabla';
Query1.Open;
Edit1.Text := Query1.Field[0].Asstring;
O en donde iria el last

Seria de esta manera:

Código Delphi [-]
Query1.SQL.Text = 'select Max(ID)from tabla';
Query1.Open;
Edit1.Text := Query1.Field[0].Asstring;

Saludos.

gerasA 22-01-2008 18:05:15

Gracias
 
De verdad muchas gracias Enecumene
Ahora que tengo que hacer?
Cerrar el hilo o dejarlo asi?
Bye saludos a todos

enecumene 22-01-2008 18:09:46

Cita:

Empezado por gerasA (Mensaje 260018)
De verdad muchas gracias Enecumene
Ahora que tengo que hacer?
Cerrar el hilo o dejarlo asi?
Bye saludos a todos

Solo dejalo asi, los unicos que pueden cerrar el hilo son los moderadores.

Saludos.


La franja horaria es GMT +2. Ahora son las 04:33:46.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi