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 13-07-2003
Avatar de @-Soft
@-Soft @-Soft is offline
Miembro
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 200
Poder: 21
@-Soft Va por buen camino
restar fechas para comparar resultado

hola

estoy realizando una aplicacion con delphi6-mysql3.23-zeosdbo y hasta ahora toda esta bien.

pero necesito hacer una resta de fechas y comparar los resultado con una condicion.

me explico:

tengo un DateEdit de las RXLib donde digito la fecha de compra del equipo y luego de capturar esta fecha tengo que restarsela a la fecha del sistema (Now o Date) para obtener el total de dias que tiene el equipo, este resultado lo almaceno en una variable llamada (tiempo). Luego en la condicion si tiempo > 0 y < 93 en un edit llamado tipo de garantia se despliega (COMPLETA). luego si no se cumple esta primera codicion pasa a la segunda, si tiempo > 93 y < 272 entonces se despliega (SERVICIOS). y si no se cumplen ninguna de las dos entonces sera igual a (NINGUNA).

espero que puedan ayudarme, gracias...
__________________
Ivan Lora

http://www.arrobasoft.da.ru

Valientes son aquellas personas que triunfan donde otros fracasan.
Bienaventurado los que nada esperan porque jamas seran defraudados.
Responder Con Cita
  #2  
Antiguo 13-07-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Por qué no guardas la diferencia entre las fechas en una variable y a partir de ahí comparas?

Código:
procedure TForm1.Button1Click(Sender: TObject);
var
nDias:Variant;
begin
nDias:=Date - table1fecha.value ;
ShowMessage(IntToStr(nDias));
end;
Un Saludo.
Responder Con Cita
  #3  
Antiguo 13-07-2003
Avatar de @-Soft
@-Soft @-Soft is offline
Miembro
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 200
Poder: 21
@-Soft Va por buen camino
hola marcoszorrilla

lo que acabas de explicar es cierto, pero no es exactamente lo que quiero.

la fecha que quiero restar de la fecha del sistema no esta almacenada en un BD, sino que la estoy capturando en un DateEdit de las RXLibs y que al presionar enter o seleccionar del calendario que trae, en el Edit donde se captura el tipo de garantia este despliegue automaticamente de acuerdo a la cantidad de dias que de el resultado de la resta y la condicion que la ha de procesar.

ej:

Código:
procedure TForm1.DateEdit1KeyPress()
var
nDias:Variant;
begin
if Key = #13 then
begin
 nDias:=Date - DateEdit1.Text ;
 if nDias > 0 and nDias < 93 then
 begin
   Edit5.Text := 'COMPLETA';
 end else
 if  nDias > 93 and nDias < 272 then
 begin
   Edit5.Text := 'SERVICIOS';
 end else
   Edit5.Text := 'NINGUNA';
 end;
end;
end;
me da un error de: Operation not applicable.

otro saludo
__________________
Ivan Lora

http://www.arrobasoft.da.ru

Valientes son aquellas personas que triunfan donde otros fracasan.
Bienaventurado los que nada esperan porque jamas seran defraudados.

Última edición por @-Soft fecha: 13-07-2003 a las 21:32:50.
Responder Con Cita
  #4  
Antiguo 13-07-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
No trabajo con las RX pero prueba con este cambio:
Código:
procedure TForm1.DateEdit1KeyPress()
var
nDias:Variant;
begin
if Key = #13 then
begin
 nDias:=Date - StrToDate(DateEdit1.Text) ;
 if nDias > 0 and nDias < 93 then
 begin
   Edit5.Text := 'COMPLETA';
 end else
 if  nDias > 93 and nDias < 272 then
 begin
   Edit5.Text := 'SERVICIOS';
 end else
   Edit5.Text := 'NINGUNA';
 end;
end;
end;
Un Saludo.
Responder Con Cita
  #5  
Antiguo 13-07-2003
Alfredo Soler Alfredo Soler is offline
Miembro
 
Registrado: may 2003
Ubicación: Santo Domingo,R.D.
Posts: 30
Poder: 0
Alfredo Soler Va por buen camino
Las DateEdit de las RXLib tienen una propiedad Date que puedes utilizar, porque te devuelven la fecha en formato date, es decir que no necesitas la función StrToDate.

La línea del cambio quedaría así:


nDias:=Date - DateEdit1.date ;
Responder Con Cita
  #6  
Antiguo 14-07-2003
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Me permiten que me meta donde no me llaman ??

Y ya puestos a sugerencias.... en lugar de usar un Edit para que ponga
completa, servicios o ninguna... por qué
no elegir un TcomboBox por ejemplo?

Tcombobox.style := csDropDownList // evita que el usuario
//modifique el valor

en la propiedad items, escribe:

COMPLETA
SERVICIOS
NINGUNA

Y por fin el código quedará así:

Código:
procedure TForm1.DateEdit1KeyPress()
var
nDias:Variant;
begin
if Key = #13 then
begin
 nDias:=Date - DateEdit1.Date ;
if nDias > 0 and nDias < 93 then
   combobox1.itemindex:=0
else
 if  nDias > 93 and nDias < 272 then
combobox1.itemindex:=1
 else
combobox1.itemindex:=2
end
end;

Saludos
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 01:59:24.


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