Registriert seit: 2. Jan 2022
Ort: Arnsberg im Sauerland
87 Beiträge
Delphi 10.4 Sydney
|
AW: Datum Uhrzeit im Grid
20. Mär 2023, 21:24
Hallo also hab mich doof ausgedrückt
die Zeiten (TTime Felder) im Grid werden beim click auf das Grid oder beim einfügen eines Datensatzes aktualisiert
soll heißen mit der aktuellen Uhrzeit gefüllt.
Es gibt im ganzen Quellcode (wenig Code überhaupt) nichts was das auslösen könnte da in der Datenbank
selber die echten werte stehen kann es ja nur am Grid, an der Bindung oder an den Einstellungen
der FDConnection liegen, ich finde aber nix. Komischerweise werden die Timestamp Felder nicht aktualisiert.
Der Code zum Einfügen einer Zeit in die Liste sieht so aus:
procedure TfraMain.btnArbeitClick(Sender: TObject);
var
vGuid : TGuid;
vZeit : TTime;
begin
with dmMain do
begin
ZeitenListe.Close;
if vArbeitLauft = False then
begin
vArbeitLauft := true;
vStartArbeit := Now;
btnArbeit.Text := 'STOP';
lblArbeitStart.text := DateTimeToStr(vStartArbeit);
lblArbeitEnde.text := '-';
CreateGuid(vGuid);
vActiveGuid := vGuid;
//Insert neuer Datensatz!
ZeitenEdit.Open;
ZeitenEdit.Insert;
ZeitenEditId.Value := GuidToString(vGuid);
ZeitenEditIDMITARBEITER.AsString := vMitarbeiterId;
ZeitenEditBUCHUNGSART.AsString := 'AZ';
ZeitenEditDatum.asDateTime := DateOf( vStartArbeit );
ZeitenEditANFANGZEIT.AsDateTime := vStartArbeit;
ZeitenEditJAHR.Value := YearOf(vStartArbeit);
if MonthOf(vStartArbeit) < 10 then
ZeitenEditMONAT.Value := '0' + IntToStr(MonthOf(vStartArbeit))
else ZeitenEditMONAT.Value := IntToStr(MonthOf(vStartArbeit));
if DayOf(vStartArbeit) < 10 then
ZeitenEditTag.Value := '0' + IntToStr(DayOf(vStartArbeit))
else ZeitenEditTAG.Value := IntToStr(DayOf(vStartArbeit));
ZeitenEditBEMERKUNG.AsString := 'Testbemerkung';
ZeitenEditSTART.AsDateTime := TimeOf( vStartArbeit );
ZeitenEditGesendet.Value := False;
ZeitenEdit.Post;
ZeitenEdit.Close;
end
else
begin
vArbeitLauft := false;
vEndeArbeit := Now;
btnArbeit.Text := 'START';
lblArbeitEnde.text := DateTimeToStr(vEndeArbeit);
vZeit := vEndeArbeit - vStartArbeit;
Label1.Text := TimeToStr(vZeit);
//Update auf bestehenden Datensatz!
ZeitenEdit.Open;
ZeitenEdit.Filtered := false;
ZeitenEdit.Filter := 'Id = ' + QuotedStr( GUIDToString(vActiveGuid));
ZeitenEdit.Filtered := true;
ZeitenEdit.Edit;
ZeitenEditENDEZEIT.AsDateTime := vEndeArbeit;
ZeitenEditENDE.Value := TimeOf( vEndeArbeit );
ZeitenEdit.Post;
ZeitenEdit.Close;
ZeitenEdit.Filtered := false;
ZeitenEdit.Filter := '';
//ZeitenUpdate.Close;
//ZeitenUpdate.Params[0].Value := vEndeArbeit;
//ZeitenUpdate.Params[1].Value := QuotedStr( GUIDToString(vActiveGuid));
//ZeitenUpdate.ExecSQL;
end;
ZeitenListe.Open;
end;
end;
Es gibt sonst nix mehr an Code außer Application.Terminate
Jürgen
|