Mehrere Zeitdaten eines Tages bewerten

Getting started ... Alles für einen gelungenen Start.
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

Mehrere Zeitdaten eines Tages bewerten

Beitrag von sgevolker (ForumUser / 56 / 4 / 0 ) »
Hallo,

ich habe folgendes Problem:

Über select selektiere ich Sätze aus der TEVEN (Zeitdaten). Das Ergebnis sieht dann zum Beispiel wie folgt aus:

Bild

In diesem Fall habe ich 8 Zeitpaare. Es können aber auch nur 2 sein, oder 4 sein usw.

Ich möchte nun gerne die Differenz der Zeitpaare 8-7 ; 6-5 ; 4-3 ; 2-1 ausrechnen. Doch wie mache ich das? Ich vermute, ich müsste erstmal die Zeiten in eine Tabelle schreiben und nummerieren?

VG
Volker

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Mehrere Zeitdaten eines Tages bewerten

Beitrag von wreichelt (Top Expert / 1031 / 29 / 188 ) »
Hallo Volker,

ich würde ein Tabelle mit drei Felder anlegen:
Feld 1 zeitbuchung
Feld 2 zeitbuchung
Feld 3 Differenz

Die Teven einlesen und über eine Zahl ungerade immer in Feld1 speichern,
gerade Zahl in Feld2 speichern.

Im weiteren Schritt über die Tabelle Loopen und die Differenz bilden.

Gruß Wolfgang

Folgende Benutzer bedankten sich beim Autor wreichelt für den Beitrag:
sgevolker


Re: Mehrere Zeitdaten eines Tages bewerten

Beitrag von sgevolker (ForumUser / 56 / 4 / 0 ) »
Hallo Wolfgang,

Danke für Deine Antwort. Leider komme ich nicht weiter. Folgendes habe ich gemacht:

Bild

Ergebnis in der gebildeten Tabelle ist dann:

Bild

Muss ich jetzt nochmal über die Tab loopen?

VG
Volker

Re: Mehrere Zeitdaten eines Tages bewerten

Beitrag von JHM (Top Expert / 1188 / 1 / 195 ) »
sgevolker hat geschrieben:Muss ich jetzt nochmal über die Tab loopen?
Nö, aber so ganz funktionieren kann das nicht.
Was ist dein genaues Ziel, nur die Ausgabe?

Wieso loopst du über TEVEN innerhalb der Select Schleife? Wo/Wie wird teven gefüllt?
Das Ergbnis des Selects ist unsortiert bzw. die sortierreihenfolge ist unbestimmt. Hier sollte irgendwie sinnvoll sortiert werden, damit die "richtigen" Paare verglichen werden:

Code: Alles auswählen.

*Init vor Select-Schleife:
CLEAR tab.

* Daten selektieren:
SELECT *
FROM teven
WHERE ...
ORDER BY pernr ertim.  "sortieren erzwingen (Prüfen wie genau sortiert werden muss)

IF tab-infob1 IS INITIAL.
* neues Wertpaar aufbereiten:
  tab-pernr = p_pernr.
  tab-infob1 = teven-ertim.
ELSE.
  tab-infob2 = teven-ertim. "Wert übernehmen
  tab-diff = tab-infob2 - tab-info1. "Differenz berechnen (neues Feld!)
  WRITE: / tab-pernrr, tab-infob1, tab-infob2, tab-diff. "Ausgabe

  CLEAR: tab. "Datenpaar zurück setzten
ENDIF.
ENDSELECT.
Das mal als einfaches Beispeil. TAB braucht es nicht wirklich, drei Variablen würden es auch tun.
Ob du das ganze innerhalb der Select-Schleife oder über einen Loop realisierst ist eher den Anforderungen geschuldet, wichtig ist "nur" das man irgendwie hinbekommt, das Ergebnis des ersten Schleifendurchlaufs in den zweiten Schleifendurchlauf zu bekommen. Dafür bedarf es einer Hilfsvariable, die den ersten Zeitwert speichert, um ihn im zweiten Schleifendurchlauf für die Berechnung zur Verfügung zu haben. Innerhalb eines Schleifendurchlaufs muss man dann noch bestimmen, ob man "Speichern" oder "Berechnen" muss. Ist oben mit der Abfrage auf IS INITIAL realisiert, ginge aber auch mittels sy-dbcnt MOD 2 = 0, oder ...

Stell beim nächsten mal bitte den Code per Copy&Past in Code-Tags ein, ein ScreenShoot ist echt unpraktisch...
Gewöhn dir einen "sinnvollen" Programmierstil an, der aktuell ist stark verbesserungswürdig: ITABS mit Kopfzeiten (obsolet), TABLES Deklarationen für Selects, nichtssagende Variablennamen...

Folgende Benutzer bedankten sich beim Autor JHM für den Beitrag:
sgevolker

Gruß Hendrik

Re: Mehrere Zeitdaten eines Tages bewerten

Beitrag von sgevolker (ForumUser / 56 / 4 / 0 ) »
Hallo Hendrik,

Du hast natürlich recht mit den variablen usw. Das hätte ich aber alles noch vernünftig kommentiert und bezeichnet. Ich habe im letzten Jahrtausend die Abap Schulung gemacht und mir fehlt leider etwas die Übung. Ich muss mal schauen ob ich nochmal einen Kurs belege und wieder etwas mehr mache.

Danke für die Lösung, mit Initial ist natürlich genial. Hätte ich auch selbst drauf kommen können. Die Einträge in der TEVEN sind schon sortiert, dass sollte passen. Ich würde gerne noch abfragen, ob es immer Zeitpaare sind. D.h. wenn es z.B. drei Einträge sind, dann sollte ein Fehler ausgegeben werden. Leider ist mir nicht klar, wie ich vorab die Anzahl der Datensätze abfragen kann.

VG
Volker

Re: Mehrere Zeitdaten eines Tages bewerten

Beitrag von MrBojangles (Specialist / 367 / 3 / 30 ) »
Hallo Volker,
sgevolker hat geschrieben:Ich würde gerne noch abfragen, ob es immer Zeitpaare sind. D.h. wenn es z.B. drei Einträge sind, dann sollte ein Fehler ausgegeben werden. Leider ist mir nicht klar, wie ich vorab die Anzahl der Datensätze abfragen kann.
Entweder Du machst vorher einen SELECT COUNT(*) (Details s. F1-Hilfe) oder Du verbaust einen Zähler in der Schleife.
Weiterhin viel Freude mit SAP...
Cheers
MrB.

Re: Mehrere Zeitdaten eines Tages bewerten

Beitrag von JHM (Top Expert / 1188 / 1 / 195 ) »
MrBojangles hat geschrieben: Entweder Du machst vorher einen SELECT COUNT(*) (Details s. F1-Hilfe) ....
Eine Abfrage auf sy-dbcnt nach dem Select der Zeitpläne sollte auch reichen...
Gruß Hendrik

Seite 1 von 1

Vergleichbare Themen

0
Antw.
2518
Views
Mehrwertige Merkmale mit FB bewerten
von oliver_1971 » 27.09.2006 11:11 • Verfasst in ABAP® Core
2
Antw.
401
Views
Dynamisch zugeteilten Tages Arbeitszeitplan auslesen
von Thor » 05.05.2022 09:31 • Verfasst in Human Resources
2
Antw.
2389
Views
Tagesverarbeitung der Zeitdaten
von haavelmo » 31.08.2006 10:21 • Verfasst in Human Resources
1
Antw.
1495
Views
HR_TIME_RESULTS_GET, Zeitdaten
von Gynix1 » 08.02.2007 08:11 • Verfasst in ABAP® Core
0
Antw.
1156
Views
Tabellen mit Zeitdaten
von obreuer » 27.06.2007 15:09 • Verfasst in Human Resources

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140