Hola, tengo que realizar la carga de un registro de una veterinaria, la cual debe discriminar si el veterinario ya tiene una reserva en el mismo día y horario, le avise que ese turno esta ocupado que elija otro horario.
La carga del dia se realiza a través de un DateTimePicker y la hora a través de dos combobox uno para la hora y otro para los minutos los cuales se asignan a una veriable 'Hora' del tipo datatime.
Les muestro una imagen de la pantalla de carga y la codificación, pense que se podria utilizar un if anidado o algo asi :
No le presten atención a las flechas
codificación boton nuevo
Código Delphi
[-] procedure TForm20.BitBtn6Click(Sender: TObject);
begin
DBEdit4.SetFocus;
Table1.Open;
Table1.Last;
c:=Table1.FieldByName('Cod_turnovet').Asinteger;
c:=c+1;
Table1.insert;
table1.edit;
BitBtn6.Enabled:=False;
BitBtn3.Enabled:=false;
BitBtn2.Enabled:=true;
BitBtn4.Enabled:=true;
DBEdit2.Visible:=false;
DateTimePicker1.Visible:=true;
end;
botón guarda nuevo
Código Delphi
[-] procedure TForm20.BitBtn4Click(Sender: TObject);
begin
cv:= ('Cod_vete').integer;
f:=('Fecha').datetime;
if table1.FieldByName('Cod_vete').AsInteger = cv and table1.FieldByName('Fecha')= f;
if (ComboBox3.ItemIndex <> -1) and (ComboBox2.ItemIndex <> -1) then
begin
table1.FieldByName('Cod_turnovet').AsInteger:=c;
table1.FieldByName('Cod_propi').AsInteger:=Table3.FieldByName('Cod_prop').AsInteger;
Table1.FieldByName('Hora').AsDateTime := EncodeTime(
StrToInt(ComboBox3.Items[ComboBox3.ItemIndex]), StrToInt(ComboBox2.Items[ComboBox2.ItemIndex]), 0, 0); hr:=('Hora').datetime;
end;
if not Table1.FieldByName('Hora').AsDateTime = hr then
begin
table1.Post;
BitBtn5.Enabled:=True;
BitBtn6.Enabled:=True;
BitBtn4.Enabled:=false;
BitBtn3.Enabled:=True;
DateTimePicker1.Visible:=false;
DBEdit2.Visible:=true;
end
else
ShowMessage('Debe ingresar horas y minutos');
end;
Pero no funciona,que datos mas necesitan para pode ayudarme, gracias.