Mehrere Zeitdaten eines Tages bewerten


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

Mehrere Zeitdaten eines Tages bewerten

Beitragvon sgevolker » 27.12.2016, 16:22

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
sgevolker
ForumUser
 
Beiträge: 56
Registriert: 04.02.2005, 09:39
Dank erhalten: 0 mal

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Mehrere Zeitdaten eines Tages bewerten

Beitragvon wreichelt » 27.12.2016, 17:59

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

Für diese Nachricht hat wreichelt einen Dank bekommen :
sgevolker
wreichelt
Expert
 
Beiträge: 507
Registriert: 17.07.2005, 09:46
Wohnort: Hessen
Dank erhalten: 84 mal
Ich bin: sonstiges

Re: Mehrere Zeitdaten eines Tages bewerten

Beitragvon sgevolker » 28.12.2016, 14:07

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
sgevolker
ForumUser
 
Beiträge: 56
Registriert: 04.02.2005, 09:39
Dank erhalten: 0 mal

Re: Mehrere Zeitdaten eines Tages bewerten

Beitragvon JHM » 28.12.2016, 15:06

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...
Gruß Hendrik

Für diese Nachricht hat JHM einen Dank bekommen :
sgevolker
JHM
Top Expert
 
Beiträge: 1124
Registriert: 15.02.2006, 12:39
Wohnort: Aachen
Dank erhalten: 176 mal

Re: Mehrere Zeitdaten eines Tages bewerten

Beitragvon sgevolker » 29.12.2016, 13:50

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
sgevolker
ForumUser
 
Beiträge: 56
Registriert: 04.02.2005, 09:39
Dank erhalten: 0 mal

Re: Mehrere Zeitdaten eines Tages bewerten

Beitragvon MrBojangles » 03.01.2017, 10:19

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.
MrBojangles
Specialist
 
Beiträge: 346
Registriert: 09.03.2006, 13:19
Dank erhalten: 25 mal
Ich bin: Berater/in

Re: Mehrere Zeitdaten eines Tages bewerten

Beitragvon JHM » 03.01.2017, 21:36

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
JHM
Top Expert
 
Beiträge: 1124
Registriert: 15.02.2006, 12:39
Wohnort: Aachen
Dank erhalten: 176 mal


Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
Eclipse-Einstellungen migrieren
vor 11 Stunden von black_adept 1 Antw.
gelöst ALV TREE | Positionsänderung nach Double Click Event
vor 18 Stunden von Lukas R. 2 Antw.
Krypto-Wahn verstehen?
vor 15 Stunden von Moraim 2 Antw.
Beziehungswissen anwenden
Gestern von moo_jo 2 Antw.
gelöst ABAP - Application Log
Gestern von swonny 1 Antw.

  Ähnliche Beiträge beta
Mehrere Sheets
09.09.2008, 07:36 von black_adept 2 Antw.
gelöst CSV für mehrere KundenaufträgBAPI_SALESORDER_CREATEFROMDAT2
26.11.2015, 12:00 von 82kolu1bma 10 Antw.
LSMW mehrere Strukturen
23.02.2007, 09:58 von codierknecht 0 Antw.
Verwendungsnachweis für mehrere Materialien
16.12.2009, 11:43 von ratsnus 1 Antw.
Select mit mehrere Join's
23.08.2011, 16:23 von ralf.wenzel 2 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!