Erster und letzten Datensatz eines Reports

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

Erster und letzten Datensatz eines Reports

Beitrag von sacair (ForumUser / 3 / 0 / 0 ) »
Hallo!

Ich bin noch ziemlich ein Anfänger in der ABAP Programmierung. Jetzt habe ich ein Programm programmiert welches alle Lieferscheine eines Werkes pro Tag und Uhrzeit erzeugt wurden, ausgibt. Diese Daten kommen über eine Schnittstelle. Soweit so gut. Das hätte ich, aber ich muss noch einbauen dass NUR der erste und letzte Datensatz pro Werk und Tag ausgegeben wird (also nicht alle Lieferscheine). Mit welchen Befehlen bzw. wie könnte ich das Programmieren?
Ebenso würde ich das gerne als ALV Grid darstellen. Leider hab ich aber überhaupt keine Ahnung wie. Da das für den obersten Vorstand ist wäre es toll etwas professionelles abgeben zu können. Und lernen würde ich es auch gleich

Anbei der Code der Programmierung.

REPORT zzssupload_ls_uhrzeit LINE-SIZE 198.
TABLES:zzss_upload,
T001w.

DATA: t_dlik LIKE zss_dlik OCCURS 100 WITH HEADER LINE,
t_dfie_dlik LIKE dfies OCCURS 0 WITH HEADER LINE.

DATA: h_datum LIKE sy-datum,
h_satztp LIKE zss_dlik-satztp,
h_vbeln LIKE zss_dlik-vbeln,
s-lfuhr1 LIKE zss_dlik-lfuhr1,
s_recid LIKE zzss_upload-recid.

FIELD-SYMBOLS: <f>.
INCLUDE zzssdata.

SELECT-OPTIONS:
s_werks FOR t_dlik-werks,
s_wadat FOR t_dlik-wadat.


DESCRIBE FIELD t_dlik LENGTH h_len_dlik.

PERFORM read_nametab: TABLES t_dfie_dlik USING 'ZSS_DLIK'.

SELECT * FROM zzss_upload
WHERE satztp <> c_satztp_lkp AND
satztp <> c_satztp_end.

t_dlik = zzss_upload+c_offset_up(h_len_dlik).
IF t_dlik-werks IN s_werks AND
t_dlik-wadat IN s_wadat.
APPEND t_dlik.
ELSE.
CLEAR t_dlik.
ENDIF.
ENDSELECT.

SORT t_dlik ASCENDING BY vkorg werks wadat lfuhr1.


LOOP AT t_dlik.
s_werks = t_dlik-werks.
s_wadat = t_dlik-wadat.

select single * from T001w
where werks = t_dlik-werks.

WRITE: / t_dlik-vkorg,
t_dlik-werks,
t001w-name1,
t_dlik-wadat,
t_dlik-lfuhr1.

ENDLOOP.

AT LINE-SELECTION.
CHECK sy-lsind < 2.
LOOP AT t_dlik WHERE werks = s_werks AND
wadat = s_wadat.
LOOP AT t_dfie_dlik.
ASSIGN COMPONENT t_dfie_dlik-position OF STRUCTURE t_dlik TO <f>.
WRITE: / t_dfie_dlik-fieldname,
t_dfie_dlik-scrtext_m,
<f>.
ENDLOOP.
ENDLOOP.

*&---------------------------------------------------------------------*
*& Form READ_NAMETAB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_T_DFIE_DLIK text
* -->P_0054 text
*----------------------------------------------------------------------*
FORM read_nametab TABLES pa_dfies STRUCTURE dfies
USING pa_tabname.

CALL FUNCTION 'DDIF_FIELDINFO_GET'
EXPORTING
tabname = pa_tabname
* ALL_TYPES = ' '
* IMPORTING
* X030L_WA =
* DTELINFO_WA =
* TTYPINFO_WA =
* DDOBJTYPE =
TABLES
* X031L_TAB =
dfies_tab = pa_dfies
* EXCEPTIONS
* NOT_FOUND = 1
* OTHERS = 2
.
ENDFORM. " READ_NAMETAB

PS: Danke für euren Rat und Hilfestellung.

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


Re: Erster und letzten Datensatz eines Reports

Beitrag von TWP (Specialist / 445 / 0 / 1 ) »
Ich verstehe zwar nich wieso du den ersten und letzten Lieferschein benötigts, aber gut. Hier mal allgemein.

Wenn du eine Daten in einer internen Tabelle hast, sortierst du diese nach Lierscheinnummern, sofern das nicht der Fall ist.

Mit READ TABLE ... INDEX 1 findest du den ersten Satz.
Mit DESCRIBE ... LINES ... kann man die Anzahl der Sätze ermitteln
Mit READ TABLE ... INDEX <wert aus describe> kannst du den letzten Datensatz ermitteln.

Vielleicht reicht dir das fürs erste.

Gruß

Thomas

Re: Erster und letzten Datensatz eines Reports

Beitrag von sacair (ForumUser / 3 / 0 / 0 ) »
Hallo,

erstmal vielen lieben Dank.

Nun warum von jedem werk immer der 1. und den letzten Lieferschein pro Tag?

Ich glaub es soll zur Kontrolle dienen wie unsere Leute in den Werken arbeiten bzw. wie lange. ;o)
Die LS dazwischen interessieren unseren Chef dann nicht mehr.

Eine Frage. Woran erkennt dieser Kommand wann die Werksnummer wechselt und wann der Tag wechselt um wieder den 1 und letzten Datensatz auszugeben?

Herzlichen Dank

Re: Erster und letzten Datensatz eines Reports

Beitrag von TWP (Specialist / 445 / 0 / 1 ) »
Wenn alle Daten in der Tabelle stehen, dann eventuell bei der Verarbeitung lösen

Code: Alles auswählen.

data: begin of g_stat,
    werks like werks_d,
    nr_start(10) type n,
    nr_ende(10) type n,
end of g_stat.

data: gt_stat like table of g_stat.

sort eingabe by werks, nr.

LOOP at eingabe into esatz.
  at new werks.
    g_stat-werks = esatz-werks.
    g_stat-start  = nr.
    g_stat-ende = 0.
    collect g_stat into gt_stat.
  andat.
  at end of werks.
    g_stat-werks = esatz-werks.
    g_stat-start  = 0.
    g_stat-ende = nr.
    collect g_stat into gt_stat.
  endat.
endloop.
In der Tabelle gt_stat, sollten nun deine Werte stehen. Es kann sein, das bei at new die Nummer nicht sichtbar ist, in diesem Fall setze dir einen Schalter und prüfe in ab. Wenn er gesetzt ist, dann schreibe die Startwerte und lösche den Schalter.

Also wie du siehst gibt es viele Möglichkeiten so etwas abzufangen. Sofern deine Daten in einer Datenbanktabelle liegen und du mit SELECT arbeitest, kannst du auch die Aggregatsfunktion vom SELECT benutzen.

MfG

Thomas

Re: Erster und letzten Datensatz eines Reports

Beitrag von sacair (ForumUser / 3 / 0 / 0 ) »
Hallo Thomas,

vielen lieben Dank!

werde es gleichmal versuchen umszusetzen.

GLG

Sabrina

Seite 1 von 1

Vergleichbare Themen

3
Antw.
1564
Views
in zeichenkette erster Treffer eines beliebigen Buchstaben
von meistercoach » 20.02.2018 11:20 • Verfasst in ABAP® für Anfänger
2
Antw.
1375
Views
Alle Knoten von einem Baum bei erster Anzeige aufklappen
von cuncon » 08.11.2018 09:32 • Verfasst in ABAP® für Anfänger
7
Antw.
4522
Views
Reports zum Löschen unbenötigter Reports
von Tunoto » 28.02.2006 16:45 • Verfasst in ABAP® für Anfänger
4
Antw.
3198
Views
SELECT der letzten ID
von the-FoX » 18.01.2005 18:11 • Verfasst in ABAP® Core
0
Antw.
1619
Views
Selektieren des letzten timestamps
von barbara » 02.08.2006 15:10 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Regex in where
vor 2 Stunden von tar 8 / 180
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1489

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

Regex in where
vor 2 Stunden von tar 8 / 180
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1489

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9822