Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-06-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Lo que si puedes hacer es la comprobación de valores nulos en la rutina que hace el cálculo.

Un Tfield, tiene el método IsNull, antes de hacer el cálculo, pregunta si alguno de los campos implicados es null, y en ese caso, no haces el cálculo.

Una posible idea es esta:
Código Delphi [-]
function HacerCalculos:Boolean;
var Nombres : Array [0..3] of string = ('precio', 'unidad', 'base','impuestos');
begin
  Result := false;
  for I:= low(Nombres) to High(nombres) do
  begin
    Result :=  tabla1.Fieldbyname(Nombres[i]).IsNull;
    If Result then Break;
  end;
end;

Si no te sirve, indica qué estas haciendo, que tablas, campos, Base de Datos, componentes de acceso, etc

Ayudar a ciegas es dificil

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #2  
Antiguo 23-06-2006
Avatar de destrukthor
destrukthor destrukthor is offline
Miembro
 
Registrado: may 2006
Posts: 57
Poder: 21
destrukthor Va por buen camino
Amigos gracias.....

Gracias nuevamente por su ayuda, ya encotre mi problema era el tipo de funcion q estaba usando para extraer los datos de la tabla, usaba...
Tabla1.FiendValues['campo1']
y esta no le dice q tipode dato es, asi q por obligacion ahi q usar una q le diga el tipode datos q tiene comop el FieldByName('campo1').AsFloat
Responder Con Cita
  #3  
Antiguo 23-06-2006
Avatar de destrukthor
destrukthor destrukthor is offline
Miembro
 
Registrado: may 2006
Posts: 57
Poder: 21
destrukthor Va por buen camino
Gracias nuevamente

Gracias por las soluciones, me han dado las respuestas q necesitaba.

Gracias por la pronta respuesta.
Responder Con Cita
  #4  
Antiguo 24-06-2006
Avatar de destrukthor
destrukthor destrukthor is offline
Miembro
 
Registrado: may 2006
Posts: 57
Poder: 21
destrukthor Va por buen camino
Hola Amigo, Suiendo con el problem

Hola lo funciona bien y ya no tengo el error de nulls, bien el problema radica en q tenemos un registro nuevo o la edicion de los campo, pues bien si cambio los valores en los DBEdit en tiempo real no me hace los calculos ya q no se an guardado, bueno la idea es q realice los calculos con los datos y despues guardar los q mas acomodan.
Es el ahi el q quiero usar el DBEdit q es donde se ingresan los datos q son de formato $ para poderlos dejar en valores reales.
Que complicado soy pero se q lo lograre.
Si lo descubro les aviso, se q tiene q haber una forma....
Desde ya gracias...
__________________
Solo se q nada Se, Cada dia es un aprendisaje y asi siempre sera.
Responder Con Cita
  #5  
Antiguo 24-06-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
No uses el DBEdit, usa el campo, ya te lo dije, lo vuelvo a decir y no lo diré más
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 25-06-2006
Avatar de destrukthor
destrukthor destrukthor is offline
Miembro
 
Registrado: may 2006
Posts: 57
Poder: 21
destrukthor Va por buen camino
Nuevamente te explico lepe..

Mi problema radica en q tengo un procedure en un evento Change del DBedit q es cuando cambia el valor de DBEdit y antes de hacer el Table1.Post quiero q los valores ingresados o modificados hagan un calculo antes y me entregue un resultado el cual determinara si los valores ingresas dan el resultado esperado antes de Guardar los cambio o nuevos ingresos, por lo tanto al no Guardar la tabla y sus campos sigue teniendo los valores de antes de las modificaciones.
La solucion seria trabajar todo con variales y Edit i hacer los calculos antes y transferiri los datos a las tablas pero seria muy largo e ineficiente es ahi el drama q tengo con los datos definido en una tabla con $ y sus DBEdit.
Quisiera q probaras lo q te digo para q te des cuenta del problema.
Como tu lo expresas funciona pero solo despues q se ejecuta el Table1.Post
Antes no me toma los valores q ingreso en el momento.
Ahora cuando cambia de foco un DBEdit debiera de hacer los calculos pero no conozco el evento q ocurre despues del quitar el foco a un DBEdit y pasar al siguiente.
Las modificaciones q me sujerists funcionan bien ya no tengo el error de Null, pero mientras no Guarde no me hace los calculos.

Sorry
__________________
Solo se q nada Se, Cada dia es un aprendisaje y asi siempre sera.
Responder Con Cita
  #7  
Antiguo 25-06-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
El evento al perder el foco es el OnExit de ese DBEdit, y justo despues es cuando el valor de ese DBEdit se asigna al campo de la tabla, por tanto, en el mismo OnExit del DBEdit no te sirve, sino que tendrás que usar el OnEnter del siguiente DBEdit.

El problema que tiene ese método, es que el usuario puede no salir del DBEdit para guardar los cambios, es decir, da el foco al DBEdit, cambia el valor del DBEdit, y a continuación coge el ratón y le da a guardar los cambios. Si el botón de guardar es un TSpeedButton o derivado, no se genera el evento OnExit del DBEdit, porque precisamente los TSpeedButton no capturan el foco del ratón.

En ese caso habría que llamar a la rutina que hace los cálculos 20 veces, uno en el evento OnExit de cada DBEdit, (porque el usuario siempre puede editar un registro y cambiar un sólo dato para ver los cálculos y posteriormente cancelar la edición), y otra vez en el evento BeforePost de la tabla.

Como ves no es eficiente, pero la comodidad de modificar un dato, y que automáticamente se recalcule todos los demás, tiene un precio.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 25-06-2006 a las 19:38:37.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Convertir numero en cadena rex JAVA 7 25-10-2007 03:28:11
Convertir una cifra de tipo real a su cantidad en letras reina Varios 7 11-08-2005 18:16:31
Problema copn un campo DBEdit de tipo precio????ayudaa!!!!! Bitbanner Tablas planas 4 09-02-2005 15:02:35
Convertir texto a Tipo Título Tangela Varios 1 20-10-2004 14:57:26
Convertir variable tipo Word a Char andre Varios 2 15-12-2003 20:15:23


La franja horaria es GMT +2. Ahora son las 06:38:13.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi