Parameters

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

Parameters

Beitrag von Spook (ForumUser / 44 / 0 / 0 ) »
Hi,

Ist es möglich ein Parameter-Feld in einem Selektionsbildschirm für die Eingabe zu sperren?

Zehn Werte sollen am Bildschirm ausgegeben werden, aber nur fünf davon müssen bearbeitet werden.
Um keinen 'Stilbruch' :D zu verursachen würde ich gerne alle zehn Werte als Parameter-Felder ausgeben, aber einen Teil davon eben schreibgeschützt.

Schon mal Danke für die Lösung,

Gruß Spooky

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


Beitrag von zzcpak (Expert / 673 / 5 / 68 ) »
einen entsprechenden Parameterzusatzs gibts glaube ich nicht, kannst das Feld aber nicht eingabebereits machen. Günstig dafür scheint der Zeitpunkt Initialization.


Beispiel:

parameters: s_disp(10) type c default 'wirsing'.


INITIALIZATION.
loop at screen.
if screen-name = 'S_DISP'.
screen-input = 0.
modify screen.
endif.
endloop.

Beitrag von Spook (ForumUser / 44 / 0 / 0 ) »
Hmmm,

irgendwie geht das bei mir nicht so richtig. Mein Code:

...
SELECTION-SCREEN BEGIN OF SCREEN 100 AS WINDOW TITLE text-010.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(9) comm1234 FOR FIELD p_input.
PARAMETERS p_input(12) TYPE c DEFAULT 'Weihnachten'.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF SCREEN 100.
...

INITIALIZATION.
LOOP AT SCREEN.
WRITE / screen.
IF screen-name = 'p_input'.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.


Mit der Anweisung 'write / screen.', innerhalb der LOOP-Schleife müsste doch 'p_input' ausgegeben werden, oder?
Es wird aber nur 'syst-XCODE' ausgegeben.

Beitrag von zzcpak (Expert / 673 / 5 / 68 ) »
nicht ganz,

write / screen

gibt des kompletten Arbeitsbereich aus. Du müßtest schon

write / screen-name.

verwenden.

Außerdem mus der Feldname in Hochkomma GROSS geschrieben werden

if screen-name = 'P_INPUT'.

Dann sollte es gehen.

Beitrag von Spook (ForumUser / 44 / 0 / 0 ) »

Code: Alles auswählen.

INITIALIZATION.
  LOOP AT SCREEN.
    WRITE / screen-name.
    IF screen-name = 'P_INPUT'.
      screen-input = 0.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.
Also (ich glaub' der Computer ist kaputt!), das geht irgendwie nicht. So sieht mein Code jetzt aus.
Er gibt immer noch nur 'Syst-XCODE' aus!

Keine Ahnung wo der Fehler liegt.

Beitrag von zzcpak (Expert / 673 / 5 / 68 ) »
Ähhh wieso willst du überhaupt screen-name ausgeben? Diese Loop-Schleife ist doch nur zum Ausschalten der Eingabebereitschaft. Mal ne dumme Frage: P_INPUT ist doch als Parameters im Selektionsbildschirm definiert oder? Und? Ist es beim Start des Reports jetzt eingabebereit oder nicht?

Beitrag von Spook (ForumUser / 44 / 0 / 0 ) »
Mit

Code: Alles auswählen.

WRITE / screen-name.
wollt' ich eigentlich nur checken, ob mit dem 'LOOP AT SCREEN'- Befehl auch die richtigen Daten herausgefiltert werden. Rein informativ.


p_input ist als Parameter definiert:

Code: Alles auswählen.

... 
SELECTION-SCREEN BEGIN OF SCREEN 100 AS WINDOW TITLE text-010. 

SELECTION-SCREEN BEGIN OF LINE. 
SELECTION-SCREEN COMMENT 1(9) comm1234 FOR FIELD p_input. 
PARAMETERS p_input(12) TYPE c DEFAULT 'Weihnachten'. 
SELECTION-SCREEN END OF LINE. 

SELECTION-SCREEN END OF SCREEN 100. 
... 
Das Feld ist beim Start des Reports eingabebereit. Obwohl es eigentlich nicht sein sollte, oder?

Beitrag von ernst (ForumUser / 28 / 0 / 0 ) »
Probiers mal mit folgendem Event:

AT SELECTION-SCREEN OUTPUT.
BREAK-POINT.
LOOP AT SCREEN.
WRITE / screen-name.
IF screen-name = 'P_INPUT'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.

Bei mir hat's gerade funktioniert ...

Gruss,
Ernst

Beitrag von Spook (ForumUser / 44 / 0 / 0 ) »
Tatsächlich, so funktioniert's.

Vielen Dank.

Beitrag von Spook (ForumUser / 44 / 0 / 0 ) »
Jetzt stoß' ich hier aber noch auf ein anderes Problem:

Wie kann ich den Wert einer Variablen als 'default'-Wert eines Parameters ausgeben?

Beitrag von Gast ( / / 0 / 3 ) »
Wenn die Variable vor den Selektinosparametern bekannt und gefüllt ist dann so:

PARAMETERS p_input(12) TYPE c DEFAULT variable.

Wenn nicht, dann zur Laufzeit des Programmes im Event:
INITIALIZATION - wird durchgeführt vor dem Aufbau des Selektionsscreens.

Am besten, du baust den Event mal ein und setzt einfach einen Breakpoint hinein, dann wirst du's schon sehen:
BREAK-POINT.

Beitrag von ernst (ForumUser / 28 / 0 / 0 ) »
Anonymous hat geschrieben:Wenn die Variable vor den Selektionsparametern bekannt und gefüllt ist dann so:

PARAMETERS p_input(12) TYPE c DEFAULT variable.

Wenn nicht, dann zur Laufzeit des Programmes im Event:
INITIALIZATION - wird durchgeführt vor dem Aufbau des Selektionsscreens.

Am besten, du baust den Event mal ein und setzt einfach einen Breakpoint hinein, dann wirst du's schon sehen:
BREAK-POINT.
Mist - irgendwas hab' ich doppelt gemacht :oops:
bin aber noch neu hier im Forum, da darf man das :wink:

Beitrag von Spook (ForumUser / 44 / 0 / 0 ) »
Ja gut, aber das funktioniert nur, wenn die Variable bei der Deklaration gleich initialisiert wird.
Wird der Variablen später im Programm (aber noch vor Aufruf des Selektionsbildschirms) ein Wert zugewiesen, dann bleibt das Parameter-Feld leer.

Beitrag von ernst (ForumUser / 28 / 0 / 0 ) »
Genau... INITIALIZATION ist zum initialisieren ...

aber mit

AT SELECTION-SCREEN OUTPUT.
BREAK-POINT. "ZUM TESTEN
MOVE 'XYZ' TO p_input. "statt 'XYZ' geht auch 'ne Variable
LOOP AT SCREEN.
WRITE / screen-name.
IF screen-name = 'P_INPUT'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.

sollte es bei jedem Aufruf des Selectionsscreens gehen.

Setz mal den Cursor auf das AT und drück F1 - dann landest du in der Kontexthilfe.

Gruss,
Ernst

Beitrag von Spook (ForumUser / 44 / 0 / 0 ) »
Jupi, hat doch funktioniert. Der Fehler lag ganz woanders.

Danke

Seite 1 von 1

Vergleichbare Themen

2
Antw.
11676
Views
Parameters-Name ändern
von aaaarrrggh » 10.10.2006 11:58 • Verfasst in ABAP® für Anfänger
3
Antw.
1917
Views
F4-Hilfe bei Parameters
von L0w-RiDer » 12.12.2019 18:34 • Verfasst in ABAP® für Anfänger
1
Antw.
2616
Views
Verschlüsseln eines Parameters
von gregor2001 » 22.06.2006 11:41 • Verfasst in ABAP® Core
1
Antw.
8035
Views
PARAMETERS: DEFAULT (Kommazahl)
von chrislo » 05.04.2011 11:03 • Verfasst in ABAP® für Anfänger
4
Antw.
6104
Views
Wildcards Suche in Parameters
von Oliver Hagn » 24.10.2006 15:58 • Verfasst in ABAP® Core

Über diesen Beitrag


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

Aktuelle Forenbeiträge

BAPI zur ABSO?
vor 6 Tagen von DeathAndPain 2 / 920
Materialstammerweiterung: Neuer Reiter
vor 2 Wochen von DeathAndPain gelöst 4 / 1596
Ermittlung der Arbeitstage (Mosid)
vor 3 Wochen von Radinator 11 / 47268
LSMW-Problem
vor 4 Wochen von DeathAndPain gelöst 6 / 5171

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

BAPI zur ABSO?
vor 6 Tagen von DeathAndPain 2 / 920
Materialstammerweiterung: Neuer Reiter
vor 2 Wochen von DeathAndPain gelöst 4 / 1596
Ermittlung der Arbeitstage (Mosid)
vor 3 Wochen von Radinator 11 / 47268
LSMW-Problem
vor 4 Wochen von DeathAndPain gelöst 6 / 5171