Ver Mensaje Individual
  #1  
Antiguo 06-10-2013
DOS DOS is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 173
Reputación: 13
DOS Va por buen camino
if anidado o consulta con varias selecciones

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 [-]
 // nuevo turno
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 [-]
  // guarda turno
procedure TForm20.BitBtn4Click(Sender: TObject);
begin
cv:= ('Cod_vete').integer;
f:=('Fecha').datetime;
//comparo si el veterinario seleccionado es el mismo y si la fecha es la misma a alguna seleccionada
 if table1.FieldByName('Cod_vete').AsInteger = cv and table1.FieldByName('Fecha')= f;
  // Si hay horas y minutos seleccionados...
  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]),     // Horas
      StrToInt(ComboBox2.Items[ComboBox2.ItemIndex]), //Minutos
      0, 0); // Segundos, ms
      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.
Responder Con Cita