Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
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-02-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.107
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
El problema es que no está claro qué tienes y qué quieres.
Responder Con Cita
  #2  
Antiguo 18-02-2016
davidmedina29 davidmedina29 is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 34
Poder: 0
davidmedina29 Va por buen camino
hola casimiro lo explico otra vez.

tengo una base de datos en sql server con los sig campos: Ejercicio, Periodo, Inicio, Fin.

en Ejercicio tengo un cxCombobox con los sig items: 2014,2015,2016
en Periodo tengo un cxTextEdit que se incrementa en 1, los periodos son: 1, 2, 3 .. etc
en Inicio y Fin tengo dos cxDateEdit en el cual pongo un rango de fechas por ejemplo : Inicio: 20/01/2015, Fin:25/01/2015.

con la BD tengo
msquery en un DM
dataset ligado al msquery en el DM
Msconection ligada a la bd

entonces suponiendo que ya esta dada de alta esa fecha del 20/01/2015 al 25/01/2015, lo que quiero es que si vuelven a ingresar una fecha que este dentro de ese rango por ejemplo 22/01/2015 al 30/01/2015, me marque un error y no deje guardar.
les comparto mi boton guardar.

Código Delphi [-]
procedure TfCatPeriodosInNvo.cxButton1Click(Sender: TObject);
begin
  if cxDateEdit2.Text='' then
    MessageDlg('Falta Fecha Final', mtError, [mbOK], 0)
  else
   if cxDateEdit1.Text='' then
     MessageDlg('Falta Fecha Inivial', mtError, [mbOK], 0)
   else
    if cxComboBox1.Text='' then
      MessageDlg('Falta Ejercicio', mtError, [mbOK], 0)
    else
     if cxTextEdit1.Text='' then
      MessageDlg('Falta Periodo', mtError, [mbOK], 0)
     else
      if (cxDateEdit1.Date) > (cxDateEdit2.Date) then
       MessageDlg('La fecha inicial no puede ser mayor a la final', mtError, [mbOK], 0)
      else
       if yearof(cxDateEdit1.Date)<>cxComboBox1.EditValue then
          MessageDlg('La fecha no coincide con el ejercicio', mtError, [mbOk], 0)
          //raise Exception.Create('La fecha no coincide con el ejercicio');
       else
         if yearof(cxDateEdit2.Date)<>cxComboBox1.EditValue then
            MessageDlg('La fecha no coincide con el ejercicio', mtError, [mbOk], 0)
         else
  begin
   if DM.msqry1.State=dsInsert then
    begin
     DM.msqry1.FieldByName('Ejercicio').AsString := cxComboBox1.Text;
     DM.msqry1.FieldByName('Periodo').AsString := cxTextEdit1.Text;
     DM.msqry1.FieldByName('Inicio').AsString := cxDateEdit1.Text;
     DM.msqry1.FieldByName('Fin').AsString := cxDateEdit2.Text;
     DM.msqry1.Post;
      MessageDlg('Dato Guardado', mtInformation, [mbOK], 0);
      fCatPeriodosInNvo.Close;
     end
    else
   begin
    if dm.msqry1.State=dsEdit then
    DM.msqry1.FieldByName('Inicio').AsDateTime:=cxDateEdit1.Date;
    DM.msqry1.FieldByName('Inicio').AsDateTime:= cxDateEdit2.Date;
    DM.msqry1.Post;
     MessageDlg('Ingreso Guardado', mtInformation, [mbOK], 0);
      fCatPeriodosInNvo.Close;
    end
   end
  end;

si me ayudan se los agradecere mucho!!
Responder Con Cita
  #3  
Antiguo 18-02-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.107
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Entonces, tienes una tabla con los campos: ... inicio, fin, ...
1. El usuario escribe 2 fechas (inicio y fin)
Quieres saber si no hay ningún registro que tengan esas 2 fechas, la de inicio y las de fin
Código SQL [-]
select count(*) from tabla where inicio=fechaINIusuarioi and fin=fechaFINusuario
Si devuelve mayor de cero es que hay algún registro con esas fechas.

2. El usuario escribe 1 fecha.
Quieres saber que no esté comprendida entre "inicio" y "fin" en ningún registro.
Código SQL [-]
select count(*) from tabla where fechausuario >= inicio  and  fechausuario <= fin
Si devuelve mayor de cero es que esa fecha está comprendida entre las fechas inicio y fin de algún registro.

O acaso quieres una 3 opción:
3. El usuario escribe 2 fechas.
Quieres saber que fechaINIusuario >= inicio de cualquier registro Y fechaFINusuario<=fin de cualquier registro

Y si es otra cosa lo que quieres hacer, tendrás que explicarlo de otra forma.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿saber si una fecha o mas estan dentro de un rango de fechas? JXJ Firebird e Interbase 17 25-08-2010 23:55:43
Error al filtrar una fecha entre un rango de fechas dec Trucos 0 01-07-2006 01:01:41
funcion para saber los dias que hay entre dos fechas estebanx Varios 5 19-04-2006 23:01:51
como calcular los dias entre fechas. carlos gonzalez Varios 2 27-08-2005 01:30:59
Cómo consulto entre dos fechas ? K4RL0S SQL 3 24-12-2003 10:58:07


La franja horaria es GMT +2. Ahora son las 23:16: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