Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda con DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=33972)

Jheysson13 21-07-2006 22:58:29

Ayuda con DBGrid
 
hola, quisiera saber si alguien podria ayudarme a realizar una pequeña tareita.
no soy un experto en programacion y me gustaria saber como puedo realizar operaciones matematicas en un DBGRID, es decir, me gustaria saber si es posible sumar, restar, etc, una columna completa, o una fila completa, en fin saber como puedo hacer estos tipos de operaciones si es que es posible de hacer dentro de un DBgrid ,me gustaria que me pudiaran dar un ejemplo si asi lo desean.
gracias de antemano y saluditos:D:D

vtdeleon 22-07-2006 01:00:03

Saludos

Con un campo calculado puedes realizar todo eso.

Busca en el foro por "Campo calculado dbgrid".

Jheysson13 22-07-2006 05:18:50

gracias por tu ayuda, pero eso no me sirve por que ya he estado buscando en el foro campos calculados y crei que tuve la suerte de encontrar a alguien que preguntaba lo mismo que yo pero cuando vi la respuesta que tenia era la siguiente:

""Bastaria Creando Campos calculados
1ro Busca en el foro y si no encuentras suficiente informacion, te ayudaremos mas;
Otra cosa: Espeficica qeu componentes usas, BD y Delphi""

si te parece familiar es por que fue tu respuesta, lo gracioso del caso es que fue en el 2005.

pero bien no importa, lo que necesito es :
sumar todas las filas de un DBgrid, osea , todas las filas de una columna y poder desplegar su resultado en un edit. estoy usando paradox y sql.
ejemplo:

columna
precio

edit1.text:=(total);

vtdeleon 22-07-2006 21:32:02

Cita:

si te parece familiar es por que fue tu respuesta, lo gracioso del caso es que fue en el 2005.
Me parecio conocido esa forma de escribir:D:D, me ha causado un poco de risa:D

Bueno, te explicare de memoria (tengo delphi a unos cuantos kms:().

- Dar 2 clic en el Dataset que utilizas.

Ahi saldra Field Editor, donde agregaras todos los campos involucrados, ademas de agregar uno nuevo, que sera el calculado.

-Das clic derecho "Add All Field" (creo que dice asi), despues a "New Field"

Cuando agregues el nuevo campo, saldra una patallita donde especificaras el nombre del campo, tipo de dato y tipo de campo (calculated).

Una vez especificado esto, procedes a usar el Evento OnCalcFields del Dadaset para hacer los calculos.
Ej:
Código Delphi [-]
Procedure table1.OnCalcFields (...);
Begin
  With Dataset do begin
   Fieldbyname('Campocalculado').AsFloat:=FieldByName('campo1').AsFloat + FieldByName('campo2').AsFloat+
 FieldByName('campo2').AsFloat+....;
  end;
end;
Cheque a ver si te funciona, si no me disculpas pues todo ha sido sin la herrameinta a mano:o.


Pd:Cualquier observacion es aceptada:D, para tener referencias a futuros forista con la misma duda;)

Jheysson13 23-07-2006 00:47:26

te doy la gracias por ayudarme , no boy a pasar por alto este codigo que me das, pero creo que encontre una forma de hacerlo con sql.
mira esto que a mi me funciono:

query2.Close;
query2.SQL.Clear;
query2.SQL.Add('select sum(creditos)as total from mat_estudiantes where matricula ='+#39+edit1.Text+#39+ 'and ciclo='+#39+lablel1.Caption+#39);
query2.Open;

Esto me suma todos los creditos de la matricula buscada en el ciclo especificado.

y con:
edit2.Text:=Formatfloat('#,0', query2.fieldbyname('total').AsFloat);

me devuebe el resultado en un edit.

solo que tube que utilizar otra sql para relacionar los campos buscados con el DBgrid y lo hise asi:


query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from mat_estudiantes where matricula ='+#39+edit1.Text+#39+ 'and ciclo='+#39+label1.Caption+#39);
query1.Open;

el cual relacione al dbgrid.:) :)


Come te dij anteriormente no soy muy experto con delphi y desconosco muchas cosa, asi que casi siempre rompo las reglas y le doy un poco de la logica que me llega a la cabeza, pero bien me funciona y es lo que me interesa.

gracias de todas formas y si tengo otra duda, no dudare en buscar ayuda en el foro.
saluditos

vtdeleon 23-07-2006 20:34:19

Saludos

Cita:

pero creo que encontre una forma de hacerlo con sql.
mira esto que a mi me funciono:
Pensaba que usabas Ttable:(.

Sin embargo, me alegro mucho que Tú mismo hayas encontrado la forma de hacerlo y mejor qeu yo :).


La franja horaria es GMT +2. Ahora son las 09:06:36.

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