Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   sumar campo y guardar en un edit (https://www.clubdelphi.com/foros/showthread.php?t=69860)

gonza_619 14-09-2010 04:58:45

sumar campo y guardar en un edit
 
hola, miren necesito sumar un cmapo de una tabla a traves de sum
y luego ese resultado guardar o asignar a un edit.
el campo es de tipo money

Select sum(MONTO) as Monto from TABLAPAGO where CODCLIENTE = 1 '+

ahora nose como asignarlo al Monto a un edit o dbedit.
de que manera seria?
se que luego se puede sacar el signo $ del edit si es que se puede asignar.
edit1.text:= Query1.Fields[0].Value;

Estaria Bien asi?? gracias a todos

Neftali [Germán.Estévez] 14-09-2010 11:09:45

Cita:

Empezado por gonza_619 (Mensaje 376325)
edit1.text:= Query1.Fields[0].Value;
Estaria Bien asi??

Debería funcionar.
También puedes acceder por el nombre de campo.

Código Delphi [-]
  edit1.text:= Query1.FieldByName('Monto').AsString;

gonza_619 14-09-2010 18:57:48

hola
edit1.text:= Query1.FieldByName('Monto').AsString;

la suma monto es tipo money, sera que al final va .asstring?
gracias

ecfisa 14-09-2010 19:35:42

Hola.

Si decidís hacerlo con Value, tenés que hacer la conversíon correspondiente:
Código Delphi [-]
 Edit1.Text:= FloatToStr(TableMonto.Value);

En el caso que uses el nombre de campo como te explicó Neftali, el tipo de conversión esta garantizada con AsString.

Pero siempre se debe convertir un valor numérico del tipo que corresponda, al asignarlo a una variable/propiedad de tipo string.


Saludos.:)

gonza_619 14-09-2010 19:51:09

hola tambien vi que se puede usar un dbedt y asociarlo a un datasource q ala vez se asocia al tquery, pero no se en que propiedad se coloca SUM OF y me sume una columna y me aparezca en el dbedit, gracais , saben como seria?

ecfisa 14-09-2010 19:57:38

Hola.

Debés referenciar al sinónimo de sum(MONTO) que en tu caso es: Monto.

Código Delphi [-]
Edit1.Text:= Query1.FieldByName('Monto').AsString;

Saludos. :)

ecfisa 14-09-2010 23:02:25

Hola.

Disculpá Gonza, ahora veo que lo que querés es asignar Monto a un TDBEdit, no a un TEdit.

En ese caso, tenés que asignar lo siguiente. Puede ser en el evento OnCreate del form, como ejemplo:

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  DBEdit1.DataSource:= DataSource1; // (el que tiene la propiedad DataSet -> al Query)
  DBEdit1.DataField:= 'Monto';
end;

Saludos. :)

Caral 15-09-2010 05:40:46

Hola
Amigo recapacita, estas seguro que en el evento OnCreate ???.:confused:
Saludos

ecfisa 16-09-2010 04:18:12

Cita:

Empezado por Caral (Mensaje 376492)
Hola
Amigo recapacita, estas seguro que en el evento OnCreate ???.:confused:
Saludos

Si totalmente, ¿Algo personal contra ese evento ? :D

Saludos. :)

ecfisa 16-09-2010 09:33:10

Amigo Caral, se a que te estás referiendo con tu observación :), ya que si llama Query con otra sentencia que no declare el campo 'Monto' va a generar error. Pero limitándome al ejemplo funciona.

De todas formas y sin lugar a dudas creo que estás acertado, no es seguro hubicar el código ahí. ;)

Saludos. :)

Neftali [Germán.Estévez] 16-09-2010 10:21:52

Cita:

Empezado por ecfisa (Mensaje 376587)
no es seguro hubicar el código ahí.

Yo también estoy de acuerdo en ubicarlo en otro sitio. ;)

ecfisa 16-09-2010 10:33:40

Cita:

Empezado por Neftali (Mensaje 376589)
Yo también estoy de acuerdo en ubicarlo en otro sitio. ;)

Parece que en este hilo no pego una... :D :D :D

Saludos. :)

chingolo 16-09-2010 16:29:41

otra opcion es:
Quer1.SQL.Text:='Select sum(MONTO) as Monto from TABLAPAGO where CODCLIENTE = :numeroclie ';
Query1.Params[0].asinteger=1;
Query1.open;
edit1.text:= Floattostr(Query1.fields[0].AsFloat);//no hace falta el alias

tambien podes usar un currencyedit y asignar el campo como float a la propiedad value del currency
respecto de donde quieres q vaya tu codigo es depende de como lo necesites, en mi caso por ejemplo abro todas mis consultas en el OnCreate y si es algo especifico lo ubico en el Onshow cuando ya esta creado y lo llama otra form.

Si no queres sorpresas pone todo en un bloque try except.

Nota: No me gusta usar los DBEdits, prefiero tener el control de lo q se escribe, (desde mi punto de vista no recargo el servidor manteniendo conexiones activas) y usando consultas (puro SQL) y luego asignado a los ditintos componentes, ademas de ahorrar en componentes, no hace mal escribir un poco je


La franja horaria es GMT +2. Ahora son las 02:53:25.

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