Select-Option Wert in Report ändern

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
9 Beiträge • Seite 1 von 1
9 Beiträge Seite 1 von 1

Select-Option Wert in Report ändern

Beitrag von Dyrdek (Specialist / 306 / 30 / 0 ) »
Guten Tag zusammen,

Der Kunde möchte auf dem Selektionsbild auch nach dem Namen eines Mitarbeiters suchen können.
Meine SELECT kann ich leider nicht einfach erweitern, da in der entsprechenden Tabelle Nach- und Vorname in einem Feld und nicht separat hinterlegt sind.
Also habe ich versucht mit dem Vor- bzw. Nachname der vom Selektionsbild mitgegeben wird in der PA0002 die entsprechende PersNr zu suchen und dann mit meiner bisherigen SELECT Anweisung weiterarbeiten.

Aktuell habe ich aber das Problem, dass meine Select-Option so_pernr, die mehrere PersNr als Selektion aufnehmen kann, die entsprechende PersNr nicht erhält.
Ich hänge gerade daran, wie ich meine Select-Option Tabelle so_pernr mit den gefundenen PersNr manuell im Report füllen kann.

Code: Alles auswählen.

SELECT PERNR FROM PA0002 INTO CORRESPONDING FIELDS OF LS_P0002
  WHERE vorna IN so_vorna
  AND   nachn IN so_nachn.
  IF LS_P0002 IS NOT INITIAL.
    (Personalnummer an so_pernr Tabelle anfügen)
  ENDIF.
ENDSELECT.

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


Re: Select-Option Wert in Report ändern

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Hi,

Stichwort: Rangetabelle. :)
Deine so_pernr ist eine solche und muss gefüllt werden.
und zwar wie folgt:

Code: Alles auswählen.

so_pernr-sign = 'I'.
so_pernr-option = 'EQ'.
so_pernr-low = ls_p0002-pernr.
APPEND so_pernr.

Folgende Benutzer bedankten sich beim Autor Thanatos82 für den Beitrag:
Dyrdek

Gruß,
der Matze

Re: Select-Option Wert in Report ändern

Beitrag von Dyrdek (Specialist / 306 / 30 / 0 ) »
Ok danke! Genau das habe ich in der Zwischenzeit probiert und es scheint zu funktionieren :P

Also ich habs jetzt so angelegt.

Code: Alles auswählen.

TYPES: BEGIN OF append_so.
TYPES: app_sign(1) TYPE c,
       app_option(2) TYPE c,
       app_low(8) TYPE n,
       app_high(8) TYPE n,
       END OF append_so.

...

SELECT PERNR FROM PA0002 INTO CORRESPONDING FIELDS OF LS_P0002
  WHERE vorna IN so_vorna
  AND   nachn IN so_nachn.
  IF LS_P0002 IS NOT INITIAL.
    LS_APPEND_SO-APP_HIGH = ''.
    LS_APPEND_SO-APP_LOW = LS_P0002-PERNR.
    LS_APPEND_SO-APP_OPTION = 'EQ'.
    LS_APPEND_SO-APP_SIGN = 'I'.
    APPEND LS_APPEND_SO TO SO_PERNR.
  ENDIF.
ENDSELECT.
Verbesserungsvorschläge wie ich das ganze optimieren kann sind sehr willkommen :)

Re: Select-Option Wert in Report ändern

Beitrag von a-dead-trousers (Top Expert / 4394 / 223 / 1182 ) »
Hier ein Vorschlag OHNE zusätzliche Datenstrukturen:

Code: Alles auswählen.

field-symbols:
  <ls_pernr> like line of SO_PERNR.

SELECT PERNR AS LOW 
  FROM PA0002 
  APPENDING CORRESPONDING FIELDS OF TABLE SO_PERNR
  WHERE vorna IN so_vorna
  AND   nachn IN so_nachn.

LOOP AT SO_PERNR ASSIGNING <ls_pernr> WHERE SIGN is initial.
  <ls_pernr>-SIGN = 'I'.
  <ls_pernr>-OPTION = 'EQ'.
ENDLOOP.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Select-Option Wert in Report ändern

Beitrag von a-dead-trousers (Top Expert / 4394 / 223 / 1182 ) »
In der "neuen" Syntax gehts sogar noch schneller:

Code: Alles auswählen.

SELECT 'I' AS sign, 'EQ' AS option, PERNR AS LOW
  FROM PA0002
  APPENDING CORRESPONDING FIELDS OF TABLE @SO_PERNR[]
  WHERE vorna IN so_vorna
  AND   nachn IN so_nachn.
EDIT: --> @SO_PERNR[]
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Select-Option Wert in Report ändern

Beitrag von Dyrdek (Specialist / 306 / 30 / 0 ) »
Hey ADT,

Wenn ich deinen Ansatz ausprobiere erhalte ich leider folgendes:
Das Escaping von Hostvariablen mit dem @-Zeichen muss einheitlich
erfolgen. Das Escaping der Variable SO_VORNA passt nicht zum Escaping
vohergehender Hostvariablen.
Und so habe ich es eingefügt:

Code: Alles auswählen.

SELECT 'I' AS sign, 'EQ' AS option, PERNR AS LOW
  FROM PA0002
  APPENDING CORRESPONDING FIELDS OF TABLE @SO_PERNR[]
  WHERE vorna IN so_vorna
  AND   nachn IN so_nachn.
Habe ich da einen Übertragungsfehler gemachT? Interessant wäre die Herangehensweise ja auch :)

Re: Select-Option Wert in Report ändern

Beitrag von a-dead-trousers (Top Expert / 4394 / 223 / 1182 ) »
Ups... Natürlich müssen auch die restlichen Variablen "gehostet" werden.

Code: Alles auswählen.

SELECT 'I' AS sign, 'EQ' AS option, PERNR AS LOW
  FROM PA0002
  APPENDING CORRESPONDING FIELDS OF TABLE @SO_PERNR[]
  WHERE vorna IN @so_vorna[]
  AND   nachn IN @so_nachn[].
&#91;&#93 = []

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Dyrdek

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Select-Option Wert in Report ändern

Beitrag von Dyrdek (Specialist / 306 / 30 / 0 ) »
Ok werds gleich nochmal testen.

Eine kurze Zwischenfrage :/ bei meiner vorherigen Lösung, bin ich irritiert.
EDIT: PersNr Selektion sollte stimmen.

Zudem funktioniert die Selektion nur beim Nach- aber nicht beim Vorname. :/

EDIT:
Abfrage mit Vorname klappt jetzt auch.
In folgender Zeile muss natürlich noch ein 'IS NOT INITIAL zwischen so_vorna und OR.

Code: Alles auswählen.

IF SO_VORNA OR SO_NACHN IS NOT INITIAL.

Re: Select-Option Wert in Report ändern

Beitrag von Dyrdek (Specialist / 306 / 30 / 0 ) »
@ADT

Code: Alles auswählen.

SELECT 'I' AS sign, 'EQ' AS option, PERNR AS LOW
  FROM PA0002
  APPENDING CORRESPONDING FIELDS OF TABLE @SO_PERNR[]
  WHERE vorna IN @so_vorna[]
  AND   nachn IN @so_nachn[].
Funktioniert exakt wie mein Coding und ist kürzer. Hervorragend! :)

Seite 1 von 1

Vergleichbare Themen

3
Antw.
1694
Views
Select-Option: Default-Wert Decimal
von Dyrdek » 14.12.2016 16:29 • Verfasst in ABAP® Core
2
Antw.
2967
Views
SELECT-OPTION muss mindestens einen Wert enthalten
von thr74 » 11.01.2011 17:23 • Verfasst in ABAP® für Anfänger
2
Antw.
2289
Views
SELECT Wertepaar Select-Option
von myllertym » 12.08.2013 10:39 • Verfasst in ABAP® für Anfänger
3
Antw.
1555
Views
SELECT * Where Datum = select-option-low
von abapfreshman » 17.09.2021 00:24 • Verfasst in ABAP® für Anfänger
10
Antw.
989
Views
SELECT-OPTION
von ABAPLover » 09.08.2023 09:53 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

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.

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1617
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8221