Aufgrund von Wartungsarbeiten wird das Forum am Montag, dem 28.07.2025 vorübergehend nicht erreichbar sein.

copy-Funktion in Datumsangaben: Oje!

Alles, was den Reportdesigner und Drucken betrifft. Fehlermeldungen, Fragen, Reports

Moderatoren: Raffenberg, A. Schüller, Pfotenhauer

Antworten
c.buchner
Beiträge: 94
Registriert: Donnerstag 24. Januar 2019, 12:35
Schulform: Berufskolleg

copy-Funktion in Datumsangaben: Oje!

Beitrag von c.buchner »

Hallo,
verwende ich die copy-Funktion, um aus einem Datum die Jahreszahl zu ermitteln, dann muss ich Glück haben. Ist es ein Datum mit zweistelliger oder einstelliger Monatszahl (an die Tageszahl habe ich noch gar nicht gedacht)?

Bei einer einstelligen Monatszahl erhalte ich mit copy(Schueler['AbschlussDatum'],9,2) nur die letzte Ziffer, bei einer zweitstelligen Monatszahl erhalte ich zwei Ziffern.

Gibt es im ReportBuilder nicht eine Delphi-Funktion wie "AnsiRightStr ( const Source : AnsiString; const Count : Integer ) : AnsiString", so dass ich von links die letzten zwei Ziffern aus dem Datum erhalte?
Viele Grüße

Christian Buchner
Berufskolleg Wirtschaft u. Verwaltung des Kreises Siegen
christian.buchner@berufskolleg-wirtschaft.de
Christoph Sprung
Beiträge: 415
Registriert: Montag 3. Dezember 2018, 18:43
Schulform: WbK (a. D.)

Re: copy-Funktion in Datumsangaben: Oje!

Beitrag von Christoph Sprung »

c.buchner hat geschrieben: Dienstag 14. Januar 2020, 12:47 von links die letzten zwei Ziffern aus dem Datum
Guten Tag Herr Buchner,
führt

Code: Alles auswählen

Text := copy(Schueler['AbschlussDatum'],length(Schueler['AbschlussDatum']) - 1,2);
zum gewünschten Ergebnis?
Grüße aus Bochum
Christoph Sprung
Benutzeravatar
wschrewe
Fachberater*in
Beiträge: 1882
Registriert: Dienstag 25. September 2018, 17:36
Schulform: BK (Pensionär)
Kontaktdaten:

Re: copy-Funktion in Datumsangaben: Oje!

Beitrag von wschrewe »

c.buchner hat geschrieben: Dienstag 14. Januar 2020, 12:47verwende ich die copy-Funktion, um aus einem Datum die Jahreszahl zu ermitteln, dann muss ich Glück haben. Ist es ein Datum mit zweistelliger oder einstelliger Monatszahl (an die Tageszahl habe ich noch gar nicht gedacht)
Dann zerlegen Sie doch das Datum in seine Einzelteile:

Code: Alles auswählen

var
  lJahr, lMonat, lTag : Integer;
begin
  DecodeDate(Schueler['AbschlussDatum'],lJahr,lMonat,lTag);
  ...
  ...
end;
Mit den Bestandteilen können Sie dann nach Belieben weiter arbeiten.
Mit freundlichen Grüßen
Walter Schrewe
"If all else fails, read the instructions" (Donald E. Knuth, letzter TeX - Hilfehinweis)
Christoph Sprung
Beiträge: 415
Registriert: Montag 3. Dezember 2018, 18:43
Schulform: WbK (a. D.)

Re: copy-Funktion in Datumsangaben: Oje!

Beitrag von Christoph Sprung »

wschrewe hat geschrieben: Dienstag 14. Januar 2020, 14:16 Dann zerlegen Sie doch das Datum in seine Einzelteile:
Schueler['AbschlussDatum'] ist ein Textfeld, sein Inhalt müsste erst ein Format erhalten, das von DecodeDate zerlegt werden kann. Das geht natürlich und bringt auch richtige Ergebnisse - aber nicht immer. Der Eintrag 'Juni 21' wird decodiert, liefert hier als Jahr aber 2020.
Falls das Jahr in Schueler['AbschlussDatum']in Herrn Buchners DB immer der letzte Teil des Eintrages ist, müsste der o. g. copy-Befehl eigentlich reichen.
Grüße aus Bochum
Christoph Sprung
Benutzeravatar
wschrewe
Fachberater*in
Beiträge: 1882
Registriert: Dienstag 25. September 2018, 17:36
Schulform: BK (Pensionär)
Kontaktdaten:

Re: copy-Funktion in Datumsangaben: Oje!

Beitrag von wschrewe »

Christoph Sprung hat geschrieben: Dienstag 14. Januar 2020, 16:26Schueler['AbschlussDatum'] ist ein Textfeld,
Na gut, dann eben

Code: Alles auswählen

DecodeDate(StrToDate(Schueler['AbschlussDatum'] ),lJahr,lMonat,lTag);
'Juni 21' könnte deswegen falsch decodiert werden, weil die Schreibweise möglicherweise nicht dem länderspezifischen (kurzen) Datumsformat entspricht.
Mit freundlichen Grüßen
Walter Schrewe
"If all else fails, read the instructions" (Donald E. Knuth, letzter TeX - Hilfehinweis)
Antworten