Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-10-2005
Huer Huer is offline
Miembro
 
Registrado: may 2003
Posts: 21
Poder: 0
Huer Va por buen camino
Talking Las horribles fechas, control de fechas

Hola amigos.

antes de enviar esta consulta, me di la tarea de buscar en los foros pero no encontre mi solución es por ello que los molesto su atencion, mi priblema es el siguiente.

trabajo con Delphi 6.0, SQL 2000 CON ADO

todo iba bien durante tres meses el sistema funciono bien, pero me solicitaron controlar la fecha de ingreso ya que la persona que digita las fichas se equivocaba generalmente y digitaba una fecha distinta a la normal. asi que tengo que controlar la fecha durante un rango predeterminado, así que cree una tabla con dos fechas que ingresa el usuario supongamos que el periodo de ingreso es de octubre los parametros deben ser solo del mes y rechazar las fechas que no corresponden

el componente es un TdateEdit, DateEdit1 y quiero controlar el evento onkeydown para que si digito una fecha distinta me advierta.

Código Delphi [-]
 If Key = Vk_return then
   if formatDateTime('ddmmyyy',dtm.ADOTControl_fechas.FieldbyName('FECHA1').Value)
     >= FormatDateTime('dd-mm-yyyy',DEfecha.Date) then
   begin
     ShowMessage('Las fechas son iguales');
   end
   else
   begin
     ShowMessage('Las fechas no son iguales');
   end;
   {...}
busque en el foro esta sentencia, pero solo me controla un rango y no dos.

en espera de una respuesta les doy las gracias de antemano y además gracias por todas las respuestas anteriores...

Última edición por dec fecha: 18-10-2005 a las 22:06:54. Razón: ¡¡Encerrad el código fuente entre las etiquetas [DELPHI] ... [/DELPHI]!!
Responder Con Cita
  #2  
Antiguo 18-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
No comprendo eso de controlar un rango o dos rangos

la comparación que buscas es:
Código Delphi [-]
 if dtm.ADOTControl_fechas.FieldbyName('FECHA1').asDate >= defecha.date then

Por aqui tengo una rutina que tambien puede servirte:
Código Delphi [-]
uses dateutils;

{-----------------------------------------------------------------------------
  Procedure: DateInMonth
  Author:    Lepe
  Date:      11-mar-2005
  Arguments: TheDate:TDateTime; InMonthAndYear:TDateTime
  Result:    Boolean

  Comprueba si la fecha y hora en TheDate pertenece al mes y año indicado en
  InMonthAndYear.
-----------------------------------------------------------------------------}
function DateTimeInMonth(TheDate:TDateTime; InMonthAndYear:TDateTime):Boolean ;


implementation

function DateTimeInMonth(TheDate:TDateTime; InMonthAndYear:TDateTime):Boolean ;
var iniMes, finMes:TDateTime;
begin
  iniMes := RecodeDateTime(InMonthAndYear,
                            RecodeLeaveFieldAsIs,
                            RecodeLeaveFieldAsIs,
                            1,
                            0,0,0,0);
  finMes := RecodeDateTime(InMonthAndYear,
                            RecodeLeaveFieldAsIs,
                            RecodeLeaveFieldAsIs,
                            DaysInMonth(InMonthAndYear),
                            23,59,59,999);
  Result := (TheDate >= iniMes) and (TheDate <= finMes);
end;

bye bye
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 18-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
PD: si haces una rutina algo especial, que no viene en delphi, ponla en este hilo, que igual me sirve a mi

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 18-10-2005
Huer Huer is offline
Miembro
 
Registrado: may 2003
Posts: 21
Poder: 0
Huer Va por buen camino
aclaracion de fechas

es que tengo en una tabla de parametros dos fechas una de inicio 01/10/2005 y 30/10/2005 y en el formulario de ingreso tengo por teclado la fecha de ingreso del formulario o sea 01/11/2005 y tengo que comparar la fecha de ingreso de formulario 01/11/2005 si esta en el rango de las dos fechas anteriores que se encuentran en la tablas "control_fechas", las fechas de tablas de parametros se modifican tomando la opción del mes a ingresar
Responder Con Cita
  #5  
Antiguo 18-10-2005
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
Porque no creas los campos (boton derecho dataset, Fields Editor -> add all fields), y en el campo que quieras validar, usas el evento OnValidate, ahi generas una excepcion si la validacion es erronea...
Esto como complemento a la funcion para validar y demas
Responder Con Cita
  #6  
Antiguo 18-10-2005
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
Desde otro punto de vista: ¿por qué se le dificulta al usuario escribir las fechas?

Es decir, ¿han tomado en cuenta su opinión? ¿Han pensado en modificar la interfaz para que le sea más fácil? Un DateTimePicker por ejemplo, o tres ComboBox, uno para el año, otro para el mes y otro para el día.

Digo esto porque muchas veces se teoriza y buscan soluciones sin considerar al usuario final.

No digo que este sea el caso, no lo puedo saber. Pero si bien no están demás las comprobaciones pertinentes en código, tampoco sobra facilitarle la vida al que debe usar todos los días la aplicación.

// Saludos
Responder Con Cita
  #7  
Antiguo 18-10-2005
Avatar de Chente(rMan)
Chente(rMan) Chente(rMan) is offline
Miembro
 
Registrado: ago 2005
Posts: 89
Poder: 19
Chente(rMan) Va por buen camino
Estoy de acuerdo con Roman, además el DateTimePicker tiene las propiedades MaxDate y MinDate, y con eso lo puedes controlar.



Saludos.

Vicente López.
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 16:43:20.


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