Hallo m-werk,
der Eingabebutton erzeugt einen neuen Eintrag für das Datum, das im Kalender angewählt ist. Wenn ein Eintrag für dieses Datum bereits existiert, wird dieser ggf. überschrieben:
Delphi-Quellcode:
procedure TForm1.btnEingabeClick(Sender: TObject);
var
pickDate : TDateTime;
tag : Integer;
begin
with cal do
begin
if qrySelData.Locate('Datum',
EncodeDate(year,month,day), []) then
if MessageDlg('Eintrag für diesen Tag existiert schon.'#10
+'Soll der Eintrag geändert werden?',
mtConfirmation, [mbYes, mbNo], 0) = mrNo then
exit
else
qrySelData.Edit
else begin
qrySelData.Append;
qrySelDataDatum.Value := EncodeDate(year,month,day);
end;
ActiveControl := dbeStart
end;
btnPost.Enabled := True;
btnCancel.Enabled := True
end;
Damit der Code funktioniert musst du noch einen weiteren Button namens btnCancel hinzufügen, der unter dem Button Übernahme steht und mit "Rückgängig" beschriftet ist. Damit kann der Nutzer die Eingabe abbrechen. Der Code für den Übernahme Button:
Delphi-Quellcode:
procedure TForm1.btnPostClick(Sender: TObject);
begin
try
qrySelData.Post;
btnPost.Enabled := False;
btnCancel.Enabled := False;
except
{ Fehlermeldung }
end;
end;
Und für den Abbrechen Button:
Delphi-Quellcode:
procedure TForm1.btnCancelClick(Sender: TObject);
begin
qrySelData.Cancel;
btnPost.Enabled := False;
btnCancel.Enabled := False;
end;
Dem OnNewRecord Event von qrySelData weist du folgenden Code zu:
Delphi-Quellcode:
procedure TForm1.qrySelDataNewRecord(DataSet: TDataSet);
begin
qrySelDataPersonalNummer.Value := frmLogin.PNr;
end;
Damit wird auch die Personalnummer automatisch gesetzt, denn die kennt der Benutzer ja nicht.
So, das soll es mal für heute sein.