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.
2171
Views
Mehrfachselektion
von christof » 18.09.2014 14:24 • Verfasst in ABAP® für Anfänger
10
Antw.
7448
Views
Mehrfachselektion
von Orestes » 18.08.2011 16:00 • Verfasst in ABAP® für Anfänger
5
Antw.
2607
Views
ABAP Mehrfachselektion
von SAP-Thomas » 12.07.2013 13:58 • Verfasst in ABAP® für Anfänger
8
Antw.
5101
Views
MB51 - Mehrfachselektion
von Ulrich B. » 15.07.2016 09:31 • Verfasst in ABAP® für Anfänger
3
Antw.
2176
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

Regex in where
vor 13 Stunden von tar 8 / 304
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1594
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 243
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 481

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 13 Stunden von tar 8 / 304
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1594
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 243
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 481

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 2 Tagen von snooga87 1 / 182
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 3360
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9911