Ver Mensaje Individual
  #16  
Antiguo 18-02-2016
davidmedina29 davidmedina29 is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 34
Reputación: 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