Delphi - capturar importes en edit

 
Vista:
sin imagen de perfil

capturar importes en edit

Publicado por Jesus (5 intervenciones) el 05/11/2009 18:55:57
Hola, soy nuevo en el foro y con poco experiencia en programacion en Delphi, me gustaria saber si pueden ayudarme, estoy haciendo una aplicacion en Delphi7 con base de datos en sql server 2000, en esta aplicacion capturo gastos diarios de la empresa, pero en lo campos de tabla de sql como importe, iva y total, solo me pone las cantidades que le capturo en el edit, es decir si pongo 456 es lo que registra, me gustaria saber como debo hacer para que registre 456.00, de antemano muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:capturar importes en edit

Publicado por ZeroHot (15 intervenciones) el 05/11/2009 20:54:12
Eso dependera de como este estructurado tu programa y el tipo de datos que tengas en el campo total de tu base de datos, por ejemplo algunos tipos de datos en su formato te dan la opcion de los decimales que quieres con la cantidad... tambien podias ponerle una valor por defecto en el campo que sea .00 asi cuando agregues 456 por ejemplo al almacenarce en la base de datos encontrara el .00 que quieres que se almacene.

Pero eso es otro problema porque cuando tengas que guardar una cantidad con dicimales por ejemplo 456.32 tendras que digitarla completa y el valor .00 estaria de mas en la tabla lo mejor es que si quiere almacenarla con puntos decimales se los pongas tu mismo al introducir el importe...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:capturar importes en edit

Publicado por Jesus (5 intervenciones) el 05/11/2009 21:09:48
hola, gracias por responder, en la base de datos tengo definidos los campos importe, iva y total como tipo float, estoy utilizando el Rave report y al mostrar los datos en el reporte salen muy descuadrados por la cuestion de los decimales, al pasar los datos a la base de datos utilizo la funcion strtofloat, que me recomiendas hacer? gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:capturar importes en edit

Publicado por ragaru (13 intervenciones) el 06/11/2009 13:25:30
La Tabla creada con sql server 2000, no cabe duda, que la tienes que incorporar
al programa por medio de, al menos, un ADOTable.

Si es asi, para que te salgan SIEMPRE las cantidades con dos decimales, en
el Display Format del campo donde almacenes las cantidades, debes poner
lo siguiente : #,###.00 (almohadila coma tres almohadillas punto cero cero).

Asi todas las cantidades te aparecen en la tabla con el punto de los millares
más coma y DOS ceros en el caso de que la cantidad no tenga decimales y con
dos decimales, en caso de que los tenga.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:capturar importes en edit

Publicado por Jesus (5 intervenciones) el 06/11/2009 16:54:20
Hola, muchas gracias por contestar, yo utilizo un AdoQuery para trabajar con la tabla de SQL, me podrias decir donde encuentro el display format por favor?, los datos los capturo a travez de edit.text. muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:capturar importes en edit

Publicado por Eva (484 intervenciones) el 07/11/2009 02:16:09
No se como funciona en Ado, pero normalmente es en el dataset que utilices para conectar, doble click y aparecen los campos, seleccionas el que corresponda y en su propiedad DisplayFormat pones algo asía: #,###,##0.00 o así: #.###.##0,00 dependiendo de la configuración de tu máquina.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:capturar importes en edit

Publicado por Jesus (5 intervenciones) el 07/11/2009 19:42:20
Hola, muchas gracias por contestar, voy a intentar lo que me comentas y te comento, muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:capturar importes en edit

Publicado por maslfire (4 intervenciones) el 07/11/2009 07:42:19
Hola,

Te recomiendo que utilices el ADOTable filtrada solo para el registro que deseas dar de alta para que no se traiga todo el set de datos.

Y en vez de un Edit, utiliza el DBEdit, es mucho mas sencillo y ademas de forma automatica te respeta el tipo de dato que estas capturando dependiendo del tipo de dato de cada campo.

Ahora que si lo que deseas es seguir usando Edit te recomiendo que en la tabla (en la db) en vez de usar FLOAT, utilices un formato que sea para moneda. Yo tengo 10 años que me libere de sql server y la verdad no recuerdo si trae el tipo de dato "decimal" o "currency" o "money". Pero deberias de usar alguno de ellos para almacenar cantidades monetarias. El FLOAT es totalmente no recomendable porque no coinciden los datos al momento de realizar redondeos, definitivamente no recomendable sino quieres salir con cuentas mochas.

Si deseas seguir utilizando Edit, entonces al momento de hacer POST, deberas de hacer lo siguiente:
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:capturar importes en edit

Publicado por maslfire (4 intervenciones) el 07/11/2009 07:55:46
Lo siento... le di "enviar" antes de tiempo.

Bueno, continuo:

Ejemplo:

//Hace post los datos del query suponiendo que solo hay estos tres campos en la tabla
ADOQuery1.SQL.Text := 'INSERT INTO mytabla VALUES( :subtotal, :iva, :total) ';
ADOQuery1.Parameters.ParamByName('subtotal').Value := FormatFloat( "0.00", StrToCurr(Edit1.Text));
ADOQuery1.Parameters.ParamByName('iva').Value := FormatFloat( "0.00", StrToCurr(Edit2.Text));
ADOQuery1.Parameters.ParamByName('total').Value := FormatFloat( "0.00", StrToCurr(Edit1.Text) + StrToCurr(Edit2.Text));
ADOQuery1.ExecSQL();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:capturar importes en edit

Publicado por Jesus (5 intervenciones) el 07/11/2009 19:40:06
muchas gracias por tu respuesta, lo voy a intentar con alguna de estas maneras, gracias de nuevo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar