Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-06-2004
silviodp silviodp is offline
Miembro
 
Registrado: may 2003
Ubicación: General Levalle, Argentina
Posts: 277
Poder: 21
silviodp Va por buen camino
Calculos en una Tabla

Hola, mi consulta es la siguiente:

Quiero calcular en mi aplicación el monto del Iva de un determinado producto cuando ingreso el precio del mismo en un DBEdit relacionado con éste campo, es decir ingreso el valor y doy Enter (o tabulador) y que me calcule automáticamente el IVA, el tema está en como hago calcularlo si todavía no tengo grabado el PRECIO en mi tabla y el DBEdit no posee ninguna propiedad Text por ejemplo.
Como o en que evento debería realizarlo?
Gracias, saludos.-

Silvio.-
Responder Con Cita
  #2  
Antiguo 01-06-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Yo creo que te convendría usar un campo calculado. Lo agregas en el editor de campos del dataset y lo calculas en el evento OnCalcFields.

// Saludos
Responder Con Cita
  #3  
Antiguo 01-06-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Yo lo haria en la propiedad onexit del texto
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #4  
Antiguo 01-06-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
El problema con el campo calculado es que el valor del iva debe ser almacenado en la tabla
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #5  
Antiguo 01-06-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por eduarcol
El problema con el campo calculado es que el valor del iva debe ser almacenado en la tabla
Responder Con Cita
  #6  
Antiguo 01-06-2004
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
si que posee una propiedad text aunque no aparezca en el object inspector.... para calcular el iva cuando se pulse enter sería más o menos asi:

Código Delphi [-]
procedure form1.dbEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) then
begin

//Calculo del iva
end
end;


Saludos, Tony
Responder Con Cita
  #7  
Antiguo 01-06-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
La verdad Roman es que trate de adivinar sobre le diseño de la base de datos como el iva es un factor que cambia mucho me imagino que en la tabla de factura guarda el valor resultante
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #8  
Antiguo 01-06-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Quizá por iva entendemos cosas distintas. Pero lo que yo pienso es que si va a usar un evento para calcular el iva lo mismo da que lo calcule en OnCalcFields que me parece más adecuado. A ver, si la tabla es

tabla = (id, precio, ....)

Yo agregaría el campo calculado Iva (que yo entiendo como el impuesto sobre el precio, digamos 15%) y en el evento OnCalcFields:

Código Delphi [-]
DataSet['iva'] := 15*DataSet['precio']/100;

// Saludos
Responder Con Cita
  #9  
Antiguo 01-06-2004
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
estoy con Roman(suponiendo que el iva lo quiera meter en otro campo llamado iva) pero como había dicho que lo quería hacerlo al salirse del control o pulsar enter.......
Responder Con Cita
  #10  
Antiguo 01-06-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Entendemos por iva lo mismo, lo unico que diferencia es el diseño de la tabla como te dije antes, ...
Cita:
Empezado por Roman
tabla = (id, precio, ....)
en cambio

Cita:
Empezado por eduarcol
tabla = (id, precio, Iva ....)
.

en ese caso el iva esta dentro de la tabla, y asumi que lo que queria era el evento dond calcular el valor de un campo que ya existe
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #11  
Antiguo 01-06-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por eduarcol
tabla = (id, precio, Iva ....)

en ese caso el iva esta dentro de la tabla, y asumi que lo que queria era el evento dond calcular el valor de un campo que ya existe.
De acuerdo, pero en tal caso yo recomendaría rediseñar la tabla a menos que haya una necesidad muy específica para guardar permanentemente el valor de un campo calculado.

// Saludos
Responder Con Cita
  #12  
Antiguo 01-06-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por roman
De acuerdo, pero en tal caso yo recomendaría rediseñar la tabla a menos que haya una necesidad muy específica para guardar permanentemente el valor de un campo calculado.
Yo lo veo desde este punto de vista
Cita:
Empezado por eduarcol
La verdad Roman es que trate de adivinar sobre le diseño de la base de datos como el iva es un factor que cambia mucho me imagino que en la tabla de factura guarda el valor resultante
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #13  
Antiguo 01-06-2004
silviodp silviodp is offline
Miembro
 
Registrado: may 2003
Ubicación: General Levalle, Argentina
Posts: 277
Poder: 21
silviodp Va por buen camino
Calculos en una Tabla

Bueno, en mi tabla ya tengo definido el campo Iva, y quiero en éste guardar el valor del mismo permanentemente, en definitiva que me aconsejan hacer??o como??
Gracias.

Silvio.-
Responder Con Cita
  #14  
Antiguo 02-06-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
El evento apropiado para calcular el IVA, es el evento OnChange del field [importe] o como se llame en tu tabla.

Personalmente creo que la información del iva puede o no ser redundante, de acuerdo a diversos criterios y a la legislación de los diferentes paises. Aca en Guatemala, por ejemplo, todos los artículos (incluyendo alimentos, medicinas, licores y demás yerbas) están sujetos a una tasa única, con lo que regularmente se hace necesario unicamente almacenar dicha tasa en el encabezado de la factura.

Pue'que en otros paises si sea necesario almacenar puntualmente el valor en cada detalle. En todo caso, tu duda está resuelta y yo, al menos, no discutiré tu diseño de base de datos (que ya es harina de otro costal).

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #15  
Antiguo 02-06-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por jachguate
y yo, al menos, no discutiré tu diseño de base de datos (que ya es harina de otro costal).
Bueno, realmente yo, al menos, no estaba discutiendo el diseño en el sentido de crítica; simplemente se trataba de una sugerencia para el caso de que fuera una posibilidad que no hubiera considerado.

// Saludos
Responder Con Cita
  #16  
Antiguo 02-06-2004
silviodp silviodp is offline
Miembro
 
Registrado: may 2003
Ubicación: General Levalle, Argentina
Posts: 277
Poder: 21
silviodp Va por buen camino
Calculos en una tabla

En el evento OnChange de mi Field 'Precio' (que es como se llama) es el que me convendría utilizar?, y en él asigno al campo Iva, el valor o como es?, la verdad no me doy cuenta?, y en el caso de hacerlo con un campo calculado como sería?
Te comento que la Tasa de Iva acá en la Argentina es del 21%, y algunas cosas como por ejemplo los monitores, etc. es de el 10,5%.
Gracias, saludos.-

Silvio.-
Responder Con Cita
  #17  
Antiguo 02-06-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por silviodp
En el evento OnChange de mi Field 'Precio' (que es como se llama) es el que me convendría utilizar?
Mira se te han dado varias opciones prueba cada una de ellas y en base a los resultados obtenidos prueba cual te conviene mas.

Cita:
Empezado por silviodp
y en él asigno al campo Iva, el valor o como es?, la verdad no me doy cuenta?,
Pues tienes que darte cuenta tu diseñastes la base de datos, asi que solo tu sabras qque valor o porcentaje?? vas a almacenar en ese campo

Cita:
Empezado por silviodp
y en el caso de hacerlo con un campo calculado como sería?
Dejemos que delphi responda eso

Cita:
Empezado por Ayuda de delphi
Occurs when an application recalculates calculated fields.

property OnCalcFields: TDataSetNotifyEvent;

Description

Write an OnCalcFields event handler to take specific action when an application recalculates calculated fields. A calculated field is one that derives its value from the values in one or more fields in the dataset, sometimes with additional processing.

When the AutoCalcFields property is True, OnCalcFields is triggered when:

A dataset is opened.
A dataset is put into dsEdit state.
Focus moves from one visual control to another, or from one column to another is a data-aware grid control and modifications were made to the record.
A record is retrieved from a database.

Note: When the AutoCalcFields property is True, an OnCalcFields event handler should not modify the dataset (or a linked dataset if it is part of a master-detail relationship), because such modifications retrigger the OnCalcField event, leading to recursion.

If an application permits users to change data, OnCalcFields is frequently triggered. To reduce the frequency with which OnCalcFields occurs, set AutoCalcFields to False. When AutoCalcFields is False, OnCalcFields is not called when changes are made to individual fields within a record.

Warning: When the dataset is the master table of a master-detail relationship, OnCalcFields occurs before detail sets have been synchronized with the master table.
Nunca subestime el valor de F1

Cita:
Empezado por silviodp
Te comento que la Tasa de Iva acá en la Argentina es del 21%, y algunas cosas como por ejemplo los monitores, etc. es de el 10,5%.
Esos son los factores que tienes que estudiar para el diseño de la base de datos

Espero te sirva

Por cierto

Cita:
Empezado por Roman
Bueno, realmente yo, al menos, no estaba discutiendo el diseño en el sentido de crítica;
En ningun momento, tampoco fue mi intencion discutir, solo expuse como lo haria y porque
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #18  
Antiguo 02-06-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Solo te hago notar que si el campo "precio" es el precio unitario, y el "iva" es el iva total de la línea no solo debieras calcular el iva en el onChange del precio, sino también en el de las unidades. Para ello es podes compartir el mismo método en el OnChange de ambos fields, o definir un método, digamos CalculaIva que es invocado desde ambos eventos. La tercera opción es hacerlo "a mano" en cada evento, pero estarias innecesariamente duplicando código... ademas de que al ser necesaria una modificación habrá dos puntos que actualizar, y si para ese entonces ya no lo tenes presente... plaf!... un bug mas...

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #19  
Antiguo 02-02-2010
Kalex Kalex is offline
Registrado
 
Registrado: ene 2010
Posts: 3
Poder: 0
Kalex Va por buen camino
el calcular el iva no es el problema...como harias si el IVA cambia...kiero k mi software siga funcionando en caso ke el iva cambie al 15 al 16 al 20% o a cualkier otro porcentaje...k me sugieren hacer
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


La franja horaria es GMT +2. Ahora son las 20:14:32.


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