Feld in Abhängigkeit vom Datum anzeigen
Moderatoren: Raffenberg, A. Schüller, Pfotenhauer
Feld in Abhängigkeit vom Datum anzeigen
Hallo!
erst einmal ohne Report:
Wie kann ich ein Feld in Abhängigkeit vom aktuellen Datum anzeigen bzw. ausblenden lassen?
Wenn das Feld mit einem Datum in der Zukunft gefüllt ist, soll es angedruckt werden, wenn es in der Vergangenheit liegt, dann nicht.
Vielen Dank im Voraus!
erst einmal ohne Report:
Wie kann ich ein Feld in Abhängigkeit vom aktuellen Datum anzeigen bzw. ausblenden lassen?
Wenn das Feld mit einem Datum in der Zukunft gefüllt ist, soll es angedruckt werden, wenn es in der Vergangenheit liegt, dann nicht.
Vielen Dank im Voraus!
Es gibt keine dummen Fragen, nur dumme Antworten, aber die geben wir gerne! 

Re: Feld in Abhängigkeit vom Datum anzeigen
Guten Tag,
https://www.delphi-treff.de/tipps-trick ... ermitteln/ :
"In Delphi gibt es in der Unit SysUtils eine Funktion namens Now, die das aktuelle Datum mit Uhrzeit zurückgibt. [...]
TDateTime ist eine Fließkommazahl, deren ganzzahliger Anteil die Tage angibt, die seit dem 30.12.1899 00:00:00 vergangen sind. Der Nachkommaanteil gibt die Zeit in Bruchteilen von Tagen an. 0,5 entspricht also 12 Stunden."
Daraus ließe sich doch wahrscheinlich etwas basteln, wie TDateTime<Now, oder so.
https://www.delphi-treff.de/tipps-trick ... ermitteln/ :
"In Delphi gibt es in der Unit SysUtils eine Funktion namens Now, die das aktuelle Datum mit Uhrzeit zurückgibt. [...]
TDateTime ist eine Fließkommazahl, deren ganzzahliger Anteil die Tage angibt, die seit dem 30.12.1899 00:00:00 vergangen sind. Der Nachkommaanteil gibt die Zeit in Bruchteilen von Tagen an. 0,5 entspricht also 12 Stunden."
Daraus ließe sich doch wahrscheinlich etwas basteln, wie TDateTime<Now, oder so.
mfG, D.Jakel
-
- Beiträge: 955
- Registriert: Sonntag 19. Mai 2019, 19:53
- Schulform: Gesamtschule
Re: Feld in Abhängigkeit vom Datum anzeigen
Guten Abend,
Delphi?
Ist die Report Sprache nicht Pascal?
OK, ich gestehe, dass ich mich damit nur wenig auskenne...
Aber zur Frage:
Feld.visible := true;
Bzw false ist zur Anzeige nötig.
Beim Datumsvergleich dachte ich auch, dass man ein Datum in eine int64 oder float umwandeln kann.
Habe ich jedoch nicht geschafft.
Dann war meine Vermutung, dass man evtl auch einfach zwei verschiedene Zeiten mit > oder < vergleichen kann.
Funktionierte auch nicht.
Letztendlich habe ich mit Copy (...) Zumindest das Jahr extrahieren können und vergleichen.
Mit etwas Aufwand sollte dann so auch ein ganzes Datum in Bestandteile zerlegt und verglichen werden können.
Eigentlich nicht das gelbe vom Ei.
Aber ich meine, dass es zumindest eine interne Funktion gibt, die das aktuelle System Datum liefert.
Delphi?
Ist die Report Sprache nicht Pascal?
OK, ich gestehe, dass ich mich damit nur wenig auskenne...
Aber zur Frage:
Feld.visible := true;
Bzw false ist zur Anzeige nötig.
Beim Datumsvergleich dachte ich auch, dass man ein Datum in eine int64 oder float umwandeln kann.
Habe ich jedoch nicht geschafft.
Dann war meine Vermutung, dass man evtl auch einfach zwei verschiedene Zeiten mit > oder < vergleichen kann.
Funktionierte auch nicht.
Letztendlich habe ich mit Copy (...) Zumindest das Jahr extrahieren können und vergleichen.
Mit etwas Aufwand sollte dann so auch ein ganzes Datum in Bestandteile zerlegt und verglichen werden können.
Eigentlich nicht das gelbe vom Ei.
Aber ich meine, dass es zumindest eine interne Funktion gibt, die das aktuelle System Datum liefert.
-
- Fachberater*in
- Beiträge: 1030
- Registriert: Montag 3. Dezember 2018, 18:37
- Schulform: Gymnasium (a.D.)
Re: Feld in Abhängigkeit vom Datum anzeigen
Hallo Herr Speh,
ich habe in einem Report aus 2015 den folgenden Code gefunden, der nach meiner Erinnerung damals von Herrn Schrewe bereitgestellt wurde:
var
Jahr, Monat, Tag, Jahr_D, Monat_D, Tag_D : Integer;
begin
DecodeDate(Schueler['Geburtsdatum'], Jahr, Monat, Tag);
DecodeDate(currentdate, Jahr_D, Monat_D, Tag_D); {aktuelles Datum}
If Schueler['Volljaehrig'] ='+'
then text:= '(volljährig)'
else
if encodedate(Jahr_D+1,Monat_D,Tag_D) < EncodeDate(Jahr + 18, Monat, Tag)
then text :=''
else Text:='(volljährig ab '+DateToStr(EncodeDate(Jahr + 18, Monat, Tag)) + ')';
end;
Mit der Forum-Suche nach DecodeDate erhält man weitere Beispiele.
ich habe in einem Report aus 2015 den folgenden Code gefunden, der nach meiner Erinnerung damals von Herrn Schrewe bereitgestellt wurde:
var
Jahr, Monat, Tag, Jahr_D, Monat_D, Tag_D : Integer;
begin
DecodeDate(Schueler['Geburtsdatum'], Jahr, Monat, Tag);
DecodeDate(currentdate, Jahr_D, Monat_D, Tag_D); {aktuelles Datum}
If Schueler['Volljaehrig'] ='+'
then text:= '(volljährig)'
else
if encodedate(Jahr_D+1,Monat_D,Tag_D) < EncodeDate(Jahr + 18, Monat, Tag)
then text :=''
else Text:='(volljährig ab '+DateToStr(EncodeDate(Jahr + 18, Monat, Tag)) + ')';
end;
Mit der Forum-Suche nach DecodeDate erhält man weitere Beispiele.
Viele Grüße aus O.-E.
Wolfgang Maßmann
Wolfgang Maßmann
- Falko Müller
- Fachberater*in
- Beiträge: 1192
- Registriert: Donnerstag 4. Oktober 2018, 20:23
- Schulform: Gymnasium
Re: Feld in Abhängigkeit vom Datum anzeigen
Guten Morgen,
in diesem Fall ist eine Umwandlung des Datums mE nicht notwendig. Man kann das Datum direkt mit currentdate vergleichen:
Das Feld DBText1 muss natürlich ein Datum enthalten.
in diesem Fall ist eine Umwandlung des Datums mE nicht notwendig. Man kann das Datum direkt mit currentdate vergleichen:
Code: Alles auswählen
Procedure DBText1OnGetText(var Text: String);
begin
if StrToDate(Text) <= currentdate then Text := '';
end;
Freundliche Grüße
Falko Müller
Falko Müller
Re: Feld in Abhängigkeit vom Datum anzeigen
Hallo Herr Müller,
das ist noch nicht perfekt...
Exception:
------------------------------------------------------------------------------------------------------
2.1 Date : Sun, 14 Nov 2021 15:25:16 +0100
2.2 Address : 0128ABA7
2.3 Module Name : SCHILD2000.exe - (Schulverwaltungsprogramm für NRW)
2.4 Module Version: 2.0.26.5
2.5 Type : ECodeError
2.6 Message : Programm:_DBText3OnGetText konnte nicht ausgeführt werden
Variante des Typs (UnicodeString) konnte nicht in Typ (Date) konvertiert werden.
2.7 ID : BC3A
2.8 Count : 1
2.9 Status : New
2.10 Note :
Wenn ich zu dem Feld DB Text3, welches das Datum "Ende der Eingliederung" enthält, ihren Code einfüge, erhalte ich diese Fehlermeldung.
das ist noch nicht perfekt...
Exception:
------------------------------------------------------------------------------------------------------
2.1 Date : Sun, 14 Nov 2021 15:25:16 +0100
2.2 Address : 0128ABA7
2.3 Module Name : SCHILD2000.exe - (Schulverwaltungsprogramm für NRW)
2.4 Module Version: 2.0.26.5
2.5 Type : ECodeError
2.6 Message : Programm:_DBText3OnGetText konnte nicht ausgeführt werden
Variante des Typs (UnicodeString) konnte nicht in Typ (Date) konvertiert werden.
2.7 ID : BC3A
2.8 Count : 1
2.9 Status : New
2.10 Note :
Wenn ich zu dem Feld DB Text3, welches das Datum "Ende der Eingliederung" enthält, ihren Code einfüge, erhalte ich diese Fehlermeldung.
Es gibt keine dummen Fragen, nur dumme Antworten, aber die geben wir gerne! 

- Falko Müller
- Fachberater*in
- Beiträge: 1192
- Registriert: Donnerstag 4. Oktober 2018, 20:23
- Schulform: Gymnasium
Re: Feld in Abhängigkeit vom Datum anzeigen
Merkwürdig. Ich habe es mit dem Feld „Anmeldedatum“ getestet. Da hat es geklappt. Kann das gerade nicht testen. Schau mir das später nochmal an.
Freundliche Grüße
Falko Müller
Falko Müller
Re: Feld in Abhängigkeit vom Datum anzeigen
Das Feld Anmeldedatum ist natürlich immer belegt, das Feld "Ende der Eingliederung" nicht. Kann dies den Fehler verursachen?
Es gibt keine dummen Fragen, nur dumme Antworten, aber die geben wir gerne! 

-
- Fachberater*in
- Beiträge: 1030
- Registriert: Montag 3. Dezember 2018, 18:37
- Schulform: Gymnasium (a.D.)
Re: Feld in Abhängigkeit vom Datum anzeigen
Ein vorangestelltes
If Text<>'' then ...
vermeidet diese Fehlermeldung.
If Text<>'' then ...
vermeidet diese Fehlermeldung.
Viele Grüße aus O.-E.
Wolfgang Maßmann
Wolfgang Maßmann
Re: Feld in Abhängigkeit vom Datum anzeigen
Ja, jetzt klappt es. Hätte nicht gedacht, dass ich für meine Leistungsübersichten noch eine Verbesserung finde....
Danke für die Hilfen!
Danke für die Hilfen!
Es gibt keine dummen Fragen, nur dumme Antworten, aber die geben wir gerne! 
