Auf Mehrfachselektion prüfen

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

Auf Mehrfachselektion prüfen

Beitrag von Fistandantilus (ForumUser / 9 / 0 / 0 ) »
Hallo,

folgendes Problem.
Ich habe einen Selektions-Screen, wo ich u.a. die Personalnummer auswählen kann.

Im Programm möchte ich jetzt prüfen, ob dort mehrere Personalnummern angegeben worden. Falls ja, will ich einen Stück des Programms von der Abarbeitung ausschliessen.

Hat jemand eine Idee?

Viele Grüße,
F.

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


Re: Auf Mehrfachselektion prüfen

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

das Feld, in das dein Anwender die Personalnummer eingibt wird intern als Range-Tabelle betrachtet.
Das heißt du musst einmal prüfen ob außer dem Feld "LOW" noch das Feld "HIGH" für eine Personalnummerspanne besetzt wurde und zum anderen musst du prüfen ob deine Rangetabelle mehr als einen Eintrag hat, denn das bedeutet, dass jemand über die Mehrfachselektion mehrere Personalnummern angegeben hat.
Gruß,
der Matze

Re: Auf Mehrfachselektion prüfen

Beitrag von Fistandantilus (ForumUser / 9 / 0 / 0 ) »
OK und wie lese ich die Tabelle aus? Bin noch absoluter Anfänger in ABAP :( Mir fehlen da leider noch ein paar basics. Hab bisher in anderen Sprachen programmiert, so dass es erstmal grundsätzlich kein Verständnisproblem gibt.
Das Programm setzt im HCM auf die logische DB PNP. Knoten pernr.
Wie bekomme ich heraus, wie die Range Tabelle heißt? Werden dort alle Selectionskriterien abgefragt? Falls ja brauch ich nur die Anzahl der Datensätze. Ich nehme an Select count(*) as anz from ... where feldname='pernr' oder so ähnlich müsste dann meinen Zweck schon erfüllen.

Gruß,
F.

Re: Auf Mehrfachselektion prüfen

Beitrag von Fistandantilus (ForumUser / 9 / 0 / 0 ) »
Ein Stück weiter bin ich mittlerweile gekommen.
So wie es aussieht, ist das die Tabelle:

Code: Alles auswählen.

DATA:   gt_sel TYPE RANGE of PTRV_PERNR_SO.

Re: Auf Mehrfachselektion prüfen

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

du musst nur wissen wie das Feld in deinen Select Options heißt. Du schreibst da doch etwas in der Art:

SELECT-OPTIONS: s_pernr FOR xyz-pernr.

Dieses s_pernr ist dann deine Range-Tabelle nur für die pernr.
Gibt jemand im Selektionsbild eine Personalnummernspanne an, also in das linke Feld z.B. 11111 und im rechten Feld 22222 (Spanne von 11111 bis 22222) hat die Rangetabelle nur einen Datensatz, in dem der LOW-Parameter mit 11111 und der HIGH-Parameter mit 22222 besetzt ist. Nur für den Fall das jemand die Mehrfachselektion nutzt hast du mehr als einen Datensatz in der Rangetabelle, d.h. will jemand zu den nummern 11111, 11113 und 22222 (also nur diese 3) selektieren, hat deine Rangetabelle 3 Einträge in denen jeweils der LOW-Parameter besetzt ist. Verständlich?
Um jetzt zu prüfen ob entweder eine Spanne oder eine Mehrfachselektion eingegeben wurde kannst/musst du beide Fälle prüfen. Das kannst du mehr oder weniger miteinander verbinden:

Code: Alles auswählen.

DATA: lv_count TYPE i,
      ls_pernr LIKE LINE OF s_pernr,
      lv_change TYPE char1.

DESCRIBE TABLE s_pernr LINES lv_count. "Anzahl der Zeilen wird in lv_count geschrieben
IF lv_count = 1.
  READ TABLE s_pernr INTO ls_pernr.
  IF ls_pernr-HIGH IS NOT INITIAL.
    lv_change = 'X'.
  ENDIF.
ELSEIF lv_count > 1.
  lv_change = 'X'.
ENDIF.

*Dann kannst du lv_change abfragen, ist es X, dann anderen Code, sonst normalen Ablauf
Wobei jetzt nicht abgefangen wird, was passiert, wenn gar keine personalnummer eingegeben wird.
Ich hoffe es hilft. :)
Gruß,
der Matze

Re: Auf Mehrfachselektion prüfen

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
ups, falscher Thread!

Re: Auf Mehrfachselektion prüfen

Beitrag von Fistandantilus (ForumUser / 9 / 0 / 0 ) »
Hallo,

bei der Verwendung der PNP werden standardmässig schon einige Felder im Selektions-Screen vorgegeben. z.B. Zeitraum, Personalnummer, Abrechnungskreis, Status beschäftigung usw.

In pnppernr ist folgendes definiert:

Code: Alles auswählen.

SELECT-OPTIONS: PNPPERNR FOR PERNR-PERNR MODIF ID SEL
                MATCHCODE OBJECT PREM
                NO INTERVALS. 
Dank Eurer Hilfe bin ich aber jetzt zu der Lösung gekommen:

Code: Alles auswählen.

ls_pernr LIKE LINE OF pnppernr

Seite 1 von 1

Vergleichbare Themen

8
Antw.
2165
Views
Mehrfachselektion
von christof » 18.09.2014 14:24 • Verfasst in ABAP® für Anfänger
10
Antw.
7442
Views
Mehrfachselektion
von Orestes » 18.08.2011 16:00 • Verfasst in ABAP® für Anfänger
5
Antw.
2603
Views
ABAP Mehrfachselektion
von SAP-Thomas » 12.07.2013 13:58 • Verfasst in ABAP® für Anfänger
8
Antw.
5096
Views
MB51 - Mehrfachselektion
von Ulrich B. » 15.07.2016 09:31 • Verfasst in ABAP® für Anfänger
3
Antw.
2173
Views
Funktionsbaustein mit Mehrfachselektion testen
von Danjel » 31.07.2006 14:21 • Verfasst in ABAP® Core

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Trennen Strasse und Hausnummer
vor 8 Stunden von msfox 18 / 10960
Dialog-Container mit Toolbar/Status
vor 11 Stunden von black_adept gelöst 27 / 4072
IT0024 Qualifikationen CP-ID
vor 13 Stunden von ArjenR 1 / 96

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

Trennen Strasse und Hausnummer
vor 8 Stunden von msfox 18 / 10960
Dialog-Container mit Toolbar/Status
vor 11 Stunden von black_adept gelöst 27 / 4072
IT0024 Qualifikationen CP-ID
vor 13 Stunden von ArjenR 1 / 96

Unbeantwortete Forenbeiträge

IT0024 Qualifikationen CP-ID
vor 13 Stunden von ArjenR 1 / 96
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 3027
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9620