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)
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!!