Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-09-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
sumar o restar valores tipo money

hola miren tengo 2 dbedits en donde estan valores tipo money de una tabla.
bien ahora los necesito sumar , como seria la funcion? o a los dbedits los paso a variables real. puede ser que strtoint(dbedit1.text) ese dbedit.text tiene un valor money, pero nuca ese valor va a ser por ej: $2,5
en este caso seran $2sin coma,
Bmuchas gracias
Responder Con Cita
  #2  
Antiguo 16-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Te pongo dos formas para hacerlo:
Código Delphi [-]
begin
var
  r1,r2: Currency;
begin
  // Ej. 1
  r1:= Table1.FieldByName('Campo1').AsCurrency +
       Table1.FieldByname('Campo2').AsCurrency;
 // Ej. 2
  r2:= DBEdit1.DataSource.DataSet.FieldByName('Campo1').AsCurrency +
       DBEdit2.DataSource.DataSet.FieldByName('Campo2').AsCurrency;  
end;

Saludos.
Responder Con Cita
  #3  
Antiguo 16-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Antes de que me den el tirón de orejas, se me deslizó un 'begin' de más.
Favor de ignorarlo...

Saludos.
Responder Con Cita
  #4  
Antiguo 16-09-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
ok no ay drama se me ocurrio esto q al parecer funciona
Código Delphi [-]
query1.SQL.Clear;
 Query1.sql.text:= 'Select costo as cost from cursos where cod_curso =1' ;
 query1.Active:=true;
 w:= Query1.FieldByName('cost').AsCurrency;

 query1.SQL.Clear;
 Query1.sql.text:= 'Select sum(importe) as Monto from cobranzas where alucurso =1' ;
 query1.Active:=true;
 j:= Query1.FieldByName('Monto').AsCurrency;

 if jthen
 begin
showmessage('chau');
end;
Responder Con Cita
  #5  
Antiguo 16-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Sin analizár la lógica empleada ya que no sé lo que buscas que haga el código, pareciera funcionar.
A excepción de un detalle :

Mas allá que j este pegado al then (pudo ser error de tipeo).
Sucede que si la variable j no es de tipo Boolean te va a dar error de expresión en la línea del if/then.
Y si lo és, te va a dar un error de incompatibilidad de tipos cuando le asignas el valor del campo Monto del Query.

Por otro lado me parece un código muy complicado para mostrar un mensaje despedida...

Saludos.

Última edición por ecfisa fecha: 16-09-2010 a las 09:01:01.
Responder Con Cita
  #6  
Antiguo 16-09-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
bien ahora qisiera sber si esto es correcto
en un dbedit1.text se almacena un valor tipo money ($80) por ej, entonces lo paso a currency para valores moneda
var x:currency;
x:=strtocurr(dbedit1.text);

me da error $80 no es un valor flotant valido, y no lo paso a flotant por eso la duda, como seria entonces para q se mantenga money? grax
Responder Con Cita
  #7  
Antiguo 16-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Yo obtendría el valor de este modo
Código Delphi [-]
var
  x: Currency;
begin
  x:= StrToCurr(DBEdit1.Field.AsString);
y luego le doy el formato que desee mostrar:
Código Delphi [-]
   ShowMessage(Format('%m',[x]));

Saludos.

Última edición por ecfisa fecha: 16-09-2010 a las 12:53:12.
Responder Con Cita
  #8  
Antiguo 16-09-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
Bien, explico mira yo en el dbedit1.text ingreso un monto en moneda $, ya q el dbedit1.text esta realacionado a un campo tipo moneda, bien ingreso el monto que aun no esta alamcaenado en la tabla, bueno a ese monto lo quero psasr a currency para sumarlo a otro currency, he probado

var
x: Currency;
begin
x:= StrToCurr(DBEdit1.field.AsString);

pero yo no qiero pasar a currency un valor almacenado,sino un valor que ingrese en el dbedit que luego sera almacenado o no, gracias
Responder Con Cita
  #9  
Antiguo 16-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola gonza.

Te entiendo perfectamente.

Probá de hacer lo siguiente:
Código Delphi [-]
procedure TForm1.DBEdit1Exit(Sender: TObject);
var
  x: Currency;
begin
  x:= StrToCurr(DBEdit1.Field.AsString); 
  x:= x + 1000;
  ShowMessage(FloatToStr(x));
end;
Notarás que que si ingresaste por ejemplo: $ 1200,00 el mensaje dira: 2200, que en definitiva es la suma del valor que acabas de ingresar + 1000...
No podés trabajar con el valor Text como si fuese un string por que es un MaskedText.

Simplificando mucho, una cosa es lo que se muestra debido a la máscara($,.) y otra el manejo interno del valor numérico.

Espero me hayas entendido.

Saludos.

Última edición por ecfisa fecha: 16-09-2010 a las 14:25:06.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
sumar campo tipo money y guardar en un edit o variable gonza_619 Varios 1 14-09-2010 19:26:18
restar o sumar 2 dbedits.text gonza_619 Varios 7 13-09-2010 20:08:43
Restar/Sumar entre DBGrid's Lenny Varios 5 02-07-2010 13:54:13
Sumar y restar fechas SMTZ .NET 3 28-11-2006 03:15:27
Tipo Integer a Tipo Money amesoft Varios 5 23-12-2005 16:20:29


La franja horaria es GMT +2. Ahora son las 22:20:27.


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
Copyright 1996-2007 Club Delphi