Felder bearbeiten
Felder zusammen führen (den Inhalt von mehreren Feldern in ein Feld packen)
CONCATENATE lf_feld gs-name2 INTO lf_text."Zwei Felder in ein Feld zusammenführen
Spezial Fall (letztes Zeichen eines Feldes löschen)
DATA: lf_length TYPE i.
DATA: lf_length2 TYPE i.
DATA: lf_feld LIKE gs-name1.
lf_length = strlen( gs-name1 ). "Länge des Namen z.B. 30 Zeichen
lf_length2 = lf_length - 1. "Länge des Namen - 1 z.B. 29 Zeichen
lf_feld = gs-name1+lf_length2(1). "lf_feld enthält das letzte Zeichen des Feldes gs-name1 z.B. "-"
IF lf_feld = '-'. "Falls lf_feld "-" enthält schreibe text ohne das letzte Zeichen
lf_feld = gs-name1(lf_length2).
ELSE. "Falls lf_feld etwas anderes enthält schreibe den text mit dem letzten Zeichen
lf_feld = gs-name1.
ENDIF.
CONCATENATE lf_feld gs-name2 INTO lf_text."Zwei Felder in ein Feld zusammenführen
Lösche die letzten fünf Zeichen aus einem Feld
DATA: gf_len TYPE i.
DATA: gf_pos TYPE i.
DATA: gf_feld TYPE c LENGTH 10.
gf_feld = 'REGOTZ_BRAVO'.
"Lesen der letzten 5 Zeichen
gf_len = strlen( gf_feld ).
IF gf_len = 8.
gf_pos = gf_len - 5.
ENDIF.
"Wenn die letzten 5 Zeien 'BRAVO' sind, werden diese gelöscht.
IF gf_feld+gf_pos = 'BRAVO'.
SHIFT gf_feld RIGHT BY 7 PLACES.
ENDIF.
Führende Nullen
"Führende Nullen entfernen
SHIFT mv_pernr LEFT DELETING LEADING '0'.
"Nur für string
mv_pernr = |{ mv_pernr ALPHA = OUT }|.
"Führende Nullen hinzufügen
mv_pernr = |{ mv_pernr WIDTH = 8 ALPHA = IN }|.
Nullen entfernen Linksbündig
SHIFT gf_feld RIGHT DELETING TRAILING space.
OVERLAY gf_feld WITH '0000000000'.
Nullen entfernen Linksbündig
SHIFT gf_feld RIGHT DELETING TRAILING space.
TRANSLATE gf_feld USING ' 0'.
Nullen entfernen Rechtsbündig
S
HIFT gs_pss_ver-pernr LEFT DELETING LEADING '0'.
SHIFT gs_pss_ver-pernr RIGHT DELETING TRAILING space..
Führende Nullen löschen
SHIFT gf_feld LEFT DELETING LEADING '0'.
Format ändern um Berechnungen zu machen
"Komma durch Punkt ersetzen für die Berechnung.
REPLACE ',' IN export-lobarf1 WITH '.'.
REPLACE ',' IN export-lbetr_21 WITH '.'.
"Zahlenformat verwenden für die Berechnung (nicht C sondern P)
lf_betlo = export-lobarf1.
lf_betlb = export-lbetr_21.
"Falls die Lohnart nicht vorhanden ist Subbtrahiere den 13 Monatslohn.
lf_betlo = lf_betlo - lf_bet00.
lf_betlb = lf_betlb - lf_bet00.
"Format der Export Struktur wieder herstellen. (in C umwandeln)
export-lobarf1 = lf_betlo.
export-lbetr_21 = lf_betlb.
"Punkt durch komma ersetzten für die Ausgabe Struktur
REPLACE '.' IN export-lobarf1 WITH ','.
REPLACE '.' IN export-lbetr_21 WITH ','.
Lesen der letzen Zeichen eines Feldes wenn man auf ein Datei Format prüfen will
*&---------------------------------------------------------------------*
*& Form UPLOADEXCEL
*&---------------------------------------------------------------------*
* Es darf nur eine XLS oder XLSX Datei hochgeladen werden
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM uploadexcel .
DATA: lf_len TYPE i.
DATA: lf_pos TYPE i.
"Lesen der letzten 3 Zeichen
lf_len = strlen( pa_file ).
lf_pos = lf_len - 3.
"Wenn die letzten 3 Zeichen 'XLS' sind dann GF_XLS = X
IF pa_file+lf_pos = 'XLS' OR pa_file+lf_pos = 'xls'.
gf_xls = 'X'.
ENDIF.
"Lesen der letzten 4 Zeichen
CLEAR: lf_pos.
lf_pos = lf_len - 4.
"Wenn die letzten 4 Zeichen 'XLSX' sind dann GF_XLSX = X
IF pa_file+lf_pos = 'XLSX' OR pa_file+lf_pos = 'xlsx'.
gf_xlsx = 'X'.
ENDIF.
IF gf_xls = 'X'.
"XLS hochladen
PERFORM upload_xls.
ELSEIF gf_xlsx = 'X'.
"XLSX hochladen
PERFORM upload_xlsx.
ELSE.
MESSAGE e001(zpoup).
ENDIF.
ENDFORM. " UPLOADEXCEL