Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-08-2005
Avatar de dmagui
dmagui dmagui is offline
Miembro
 
Registrado: may 2005
Posts: 168
Poder: 20
dmagui Va por buen camino
Hacer Calculos en tiempo de ejecución.

Buenos Dias:

Haber Tengo una duda de como hacer un calculo cuando este ejecutando mi aplicativo.

Lo que pasa es que tengo un campo en el DBGrid llamado costo_unitario pero lo que pasa es que existen a veces excepciones de que este costo_unitario lleve otro tipo de calculo para que sea el costo_unitario como por ejemplo

al costo_unitario multiplicarlo por valor del Kilo de cierto articulo.


estos valores varian y no pueden ser programados ya que deoenden del articulo.

Lo que yo quiero es que pueda hacer este calculo como podria hacer esto????



Gracias.
__________________
El espiritu humano no se acaba cuando es derrotado se termina cuando se rinde.
Responder Con Cita
  #2  
Antiguo 30-08-2005
Avatar de Hugorr
Hugorr Hugorr is offline
Miembro
 
Registrado: jul 2005
Posts: 17
Poder: 0
Hugorr Va por buen camino
Question No me aclaro

Buenas tardes,

La verdad es que no me entero muy bien del problema que tienes, podrias explicarlo mejor. Eso ayudaria bastante.
__________________
Gracias por dedicar su valioso tiempo... '(^_^)'

Un saludo
Hugorr
Responder Con Cita
  #3  
Antiguo 30-08-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Lo que yo haría, sería grabar el valor_kilo en alguna tabla aparte o en algún campo de la tabla de artículos y luego cuando seleccione el artículo, tambien seleccionar su valor_kilo. Si el valor_kilo existe, entonces hago la operación.

para sqlserver sería algo así como:
Código SQL [-]
select case ValorKilo
when ValorKilo is Null then PrecioUnitario
else (PrecioUnitario*ValorKilo) end PrecioUnitario
from artículos

No estoy seguro cuál es la función case para firebird, pero espero al menos poder aportar algo.
__________________

Responder Con Cita
  #4  
Antiguo 30-08-2005
Avatar de dmagui
dmagui dmagui is offline
Miembro
 
Registrado: may 2005
Posts: 168
Poder: 20
dmagui Va por buen camino
Cita:
Empezado por ContraVeneno
Lo que yo haría, sería grabar el valor_kilo en alguna tabla aparte o en algún campo de la tabla de artículos y luego cuando seleccione el artículo, tambien seleccionar su valor_kilo. Si el valor_kilo existe, entonces hago la operación.

para sqlserver sería algo así como:
Código SQL [-]
select case ValorKilo
when ValorKilo is Null then PrecioUnitario
else (PrecioUnitario*ValorKilo) end PrecioUnitario
from artículos

No estoy seguro cuál es la función case para firebird, pero espero al menos poder aportar algo.
Si te entiendo pero el valor del kilo fue un ejemplo ya que existen algunos factores por los que el valor unitario cambie y no esigual para todos los casos.
__________________
El espiritu humano no se acaba cuando es derrotado se termina cuando se rinde.
Responder Con Cita
  #5  
Antiguo 30-08-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Entonces creo que mi opinión es muy parecida (o igual) a la de Hugorr.


Saludos
__________________

Responder Con Cita
  #6  
Antiguo 30-08-2005
Avatar de lpmlpm
lpmlpm lpmlpm is offline
Miembro
 
Registrado: ago 2005
Posts: 136
Poder: 19
lpmlpm Va por buen camino
Desde donde lo veo, es muy sencillo si usas la instrucción Case de Firebird...

suponiendo que tienes un campo o un modo de saber como es que se calcula ese precio a segun el articulo que estas seleccionando lo resolverías mas o menos asi:

Código SQL [-]
select
     case
      when TipoVenta= "Kilo" then Precio_Unitario * Cuantos_Kilos
      when TipoVenta= "Onza" then PrecioUnitario * Cuantas_Onzas
     when (TipoVenta= "Caja") and (Cuantas_Cajas > 12) then PrecioUnitario * Cuantas_Cajas * Porcentaje_Descuento
     when TipoVenta= "Caja" then PrecioUnitario *Cuantas_Cajas
     end as precio
     from articulos


Como puedes ver en estoy poniendo las formulas de las condiciones que me interesaria controlar en la misma consulta y ahí puedes agregar las formulas que se te antojen o necesites en su momento... como puedes ver en una sola consulta puedes controlar todos los casos sin ningun problema, por ejemplo puedes ver que he puesto una condicion de que si se vende por caja y son mas de 12 cajas se aplica un descuento, sino solo se obtiene el precio a partir de cuantas cajas se compro...y asi puedo agregar todas las reglas de negocio que se me ocurrieran...

Puedes crear esta consulta en tiempo de ejecución con las formulas que necesites y no creo que tengas mayores problemas, generalmente esto es suficiente a menos de que tus formulas resulten ser algo asi como ecuaciones de doceavo grado con calculos de integrales y cosas similares con lo que entonces la recomendación sería que crees una DLL y que tu formula se calcule en una funcion dentro de esa DLL... ya nos dirás si es ese tu caso

Saludos
__________________
"Lo mejor de no saber hacer nada es que se tiene mucho tiempo libre."
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 03:24:48.


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