Ungewollte Listausgabe nach Dynpro

Benutzeroberflächen in SAP®-Systemen.
11 Beiträge • Seite 1 von 1
11 Beiträge Seite 1 von 1

Ungewollte Listausgabe nach Dynpro

Beitrag von mawi (ForumUser / 61 / 0 / 1 ) »
Hallo Forum, vielleicht gibt es auch diesmal Hilfe für meine Probleme...

Ich habe ein Selektionsbild (Dynpro 500, Folgedynpro=500 [generiert]), ein Dynpro (300, Folgedynpro=0), das ein PDF anzeigt, und eine Liste ohne Kopf

Der Report beinhaltet die Angabe
REPORT xxx NO STANDARD PAGE HEADING.

Die Aufruffolge ist:

500 => entweder Liste oder 300 (je nach Selektion)

Wenn 300: drückt der Benutzer der CANCEL-Knopf, dann geht es wieder auf den Selektionsschirm, weil explizit gesagt wurde:
CASE FCODE.
when 'CANC'.
call selection-screen 0500.
...

Wenn dann erneut CANCEL gedrückt wurde, erscheint eine leere Seite (Liste) mit waagerechtem Strich oben und Seitenzahl 1.

Ich habe innerhalb dieser Verarbeitungsschritte keine WRITE-Anweisung abgesetzt und die vorher angelegte Listüberschrift gelöscht. Ich habe die Vermutung, daß noch ein Fragment der Listenüberschrift vorhanden ist, die die Liste ausgibt, kann aber auch andere Ursachen haben. Ich will diese Seite jedenfalls nicht angezeigt haben sondern das Programm gleich verlassen. Ich habe aber keinen Plan, wo das passieren könnte.

Könnt ihr mir einen Tip geben, vielleicht auch ein anderes Forum?
Gruß,
Manuela.

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


Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Hi,

allein dass man mit cancel ausm Programm raus geht ist schon seltsam, aber ok ;)

gib dem CANCEL ein Funktionstyp 'E' (EXITCOMMAND)

Code: Alles auswählen.

Module userexit at exit-command.
case okcode.
  when 'CANC'.
    if sy-dynnr = 500.
     leave program.
    else.
     leave to screen 500.
    endif.
 endcase.
Bei deinem Aufruf würde ja das Selectionsbild NEU geladen werden. Aber das ist ja schon geladen, von da kommt man doch aufs 300er oder? zumindest hab ichs so verstanden ;) Dann reicht ein leave to screen 500.


Hoffe geholfen zu haben.

Achja, nach einem anderen Forum zu fragen, wo hier doch die Elite sitzt 8) :o (solch Äusserungen nicht zu ernst nehmen ;) )

Gruß
Markus

Beitrag von mawi (ForumUser / 61 / 0 / 1 ) »
Wiedermal danke für die schnelle Antwort.

(1) Wie gehst Du aus Programmen raus?

(2) Ich kann m.E: nur auf PBO und PAI vom 300-er Dynpro eingehen, aber Dein Modul geht doch auf das 500-er Selektionsbild ein, oder? Dort hätte ich noch
AT SELECTION-SCREEN ON EXIT-COMMAND.
zur Auswahl. Meinst Du, daß ich das da hineinschreiben soll?

(3) Richtig, es war ein NEUES Selektionsbild, zumindest hatte ich während des Probierens zwischendurch mal einen Pingpong-Effekt.
LEAVE TO SCREEN 500.
geht nicht, weil 500 ein Selektionsbild und kein "normales" Dynpro ist. Keine Ahnung, was das Pendant zu Selektionsbildern ist.

(4) Na klar sitzt hier die Elite, aber ich wollte ja nicht aus apentia raus sondern nur fragen, ob ich im Dynpro-Forum richtig bin ;o)

Zu dumm, ich muß jetzt heim und würde das Ganze doch gerne heute noch abschließen... Also bis morgen,
Manuela.

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
mawi hat geschrieben:Wiedermal danke für die schnelle Antwort.

(1) Wie gehst Du aus Programmen raus?

Mit dem EXIT Button ;) Der Gelbe von den 3en.
Es gibt da so ne Regel...wie offiziell die nun ist, kann ich net sagen, aber normal wird das folgendermassen gemacht:
Grüner Button ist 'BACK' bekommt Funktionstyp 'E'.
Gelber Button ist 'EXIT' bekommt Funktionstyp 'E'.
Roter Button ist 'CANC' bekommt Funktionstyp 'E'.

Dann gibt es ein Modul wo beim Aufruf der Zusatz 'AT EXIT-COMMAND' gesetzt wird. Da drin werden dann alle 3 Codes abgefragt und bei BACK und EXIT sollte noch eine Abfrage kommen, da u.U. Daten verloren gehen und wirklich das Dynpro verlassen werden soll. Bei CANC wirds einfach verlassen.
Aber das kann jeder machen wie er es kennt ;)


(2) Ich kann m.E: nur auf PBO und PAI vom 300-er Dynpro eingehen, aber Dein Modul geht doch auf das 500-er Selektionsbild ein, oder? Dort hätte ich noch
AT SELECTION-SCREEN ON EXIT-COMMAND.
zur Auswahl. Meinst Du, daß ich das da hineinschreiben soll?

Soll dass heißen du hast ein Selektionsbild umbenannt? Die haben standardmässig immer die 1000 als Namen.
Also verstehe ich das nun so.

Das Programm startet mit dem Selektionsbild, in deinem Fall die 500. Da drückt der User dann auf PDF (oder wie immer auch der button heist) und das Dynpro 300 wird aufgerufen. Was ein normales Dynpro ist. Wenn CANC gedrückt wird auf 300 soll das Selektionsbild wieder gezeigt werden.
Wenn nun wieder CANC gedrückt wird (wir sind nun auf dem Selectionsbild 500) soll raus aus dem Programm.

Und wann soll da ne Liste kommen???


(3) Richtig, es war ein NEUES Selektionsbild, zumindest hatte ich während des Probierens zwischendurch mal einen Pingpong-Effekt.
LEAVE TO SCREEN 500.
geht nicht, weil 500 ein Selektionsbild und kein "normales" Dynpro ist. Keine Ahnung, was das Pendant zu Selektionsbildern ist.

LEAVE TO SCREEN 0. Wäre der pendant zum Selektionsbild.


(4) Na klar sitzt hier die Elite, aber ich wollte ja nicht aus apentia raus sondern nur fragen, ob ich im Dynpro-Forum richtig bin ;o)

Na dann ;) Is scho richtig hier

Zu dumm, ich muß jetzt heim und würde das Ganze doch gerne heute noch abschließen... Also bis morgen,
Manuela.
bis morgen, so richtig schlau werd ich grad aus deinem Problem nicht. Aber im Grunde kann es eigentlich nur so sein, dass irgendwo ein WRITE steht. Klären wir dann aber morgen...u.U. steht nur irgendwas im Cache.

Gruß
Markus

Beitrag von mawi (ForumUser / 61 / 0 / 1 ) »
(1) aha. wieder was gelernt.

Mein CANC hatte übrigens auch schon vorher den Funktionstyp 'E'.

Das mit dem Modul mit dem Zusatz 'AT EXIT-COMMAND' habe ich auch in einem schlauen Buch gelesen, konnte es aber fix nicht nachmachen. Mein Dynpro wollte das beim Prüfen nicht akzeptieren. Ich hatte versucht, einfach ein Modul mit dem Zusatz hinzuschreiben und bekam den Hinweis, daß nach dem Namen ein Punkt erwartet worden wäre, der Prüfer hatte also mit 'AT EXIT-COMMAND' nichts anfangen können. Manchmal frage ich mich, ob ich mich nur so dumm anstelle oder es wirklich bin ;o)

(2) Korrekt: 500 ist eigentlich 1000.

Hast Du alles richtig verstanden!

Die Liste kommt nach dem CANC, das ich nach Erscheinen von 500 gedrückt habe. Scheint aber trotz allem ein Überbleibsel von PAI von 300 zu sein. WRITE ist definitiv nicht mehr aufgerufen, aber ich bekomme in dem Schritt von: 'CANC nach 500' bis zum Erscheinen der Liste auch keinen Absprungpunkt ins Coding, der da angesprungen wird, weil sich alles im generierten Code des Selektionsbildes (500) abspielt, welcher bekanntlich nicht von mir beschrieben werden kann, weil eben generiert.

Ich hatte ursprünglich mit Listen (alternativ zur Wahl von PDF (=>300)) gearbeitet und dazu eine Listenüberschrift angelegt. Als ich die Liste weg haben wollte, habe ich den Listenkopf gfelöscht, aber evtl. nicht vollständig. Verstehen kann ich es nicht, aber es wird ja noch eine Linie und die "1" (wie Seitennumerierung) angezeigt. Mehr nicht. Und ich hätte die Vermutung, wenn die Listenüberschrift korrekt gelöscht ist, daß dann der Zwischenschritt 500 => "Liste" => Programmende entfällt. Ach, es ist so schlecht zu beschreiben...

(3) LEAVE TO SCREEN 0. hatte ich auch schon probiert. Ich glaube, da war das Programm auch auf die "Liste" gestoßen, und danach konnte man mit einem weiteren CANC das Programm beenden.

Ich wär so glücklich, wenn ich dieses bescheidene Problem endlich in den Griff bekommen würde. Ich sagte bereits, es macht mich so ohnmächtig, wenn ich stundenlang m.M. nach ALLE Möglichkeiten ausprobiere und nichts richtig klappt.

Naja, bis morgen,
Manuela.

Beitrag von mawi (ForumUser / 61 / 0 / 1 ) »
o.k., also einen kleinen Teilerfolg kann ich verzeichnen: die Liste ist weg!

Es lag daran, daß ich zwar alle WRITEs ausgebaut habe, aber ein ULINE vergessen habe sowie eine FORMAT Anweisung.

Nun muß ich nur noch die Dynpro-Folge hinbekommen, denn die ist immer noch nicht richtig.

Eine weitere Frage dennoch:
Wie sehe ich im Debugger die momentane Liste, d.h. den Inhalt des Listprozessors? Das muß im klassischen Debugger gehen, aber ich kann mich einfach nicht mehr erinnern, wie - es ist Jahre her. Und leider bringt mich das Menü nicht weiter, zumindest intuitiv nicht.

Beitrag von Thomas R. (Expert / 755 / 78 / 34 ) »
Hallo Mawi,
STRG+F12 helfen weiter oder
Springen-Zustandsanzeigen-Liste anzeigen

MfG
Thomas R.

Beitrag von mawi (ForumUser / 61 / 0 / 1 ) »
Danke!

Das geht nur noch im klassischen Debugger, und den Menüpunkt gibts auch nur, wenn schon was in die Liste geschrieben worden ist - kann ich zu Programmstart also lange danach suchen... manomanoman

Ich muß noch viel lernen ;o)

Manuela.

Beitrag von mawi (ForumUser / 61 / 0 / 1 ) »
Ich habs nun endlich geschafft!

Es lag daran, daß ich das Standardselektionsbild nicht als "1000" belassen sondern zu "500" umbenannt habe. Damit wurde es zum nicht mehr korrekt ansprechbaren Zwitterwesen. Ich frage mich, warum man ein solches Selektionsbild dann umbenennen darf, wenn danach nichts mehr richtig abläuft?!?

Egal. Ich bin happy und kann mich nun endlich wieder den wichtigeren Dingen widmen ;o)

Danke fürs zahlreiche Zutexten und bis zum gewiß baldig nächsten Problem.
Manuela.

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Schön das sichs gelöst hat.


zu deinem Problem mit AT Exit-Command

Richtig geschrieben wirds so ->

Code: Alles auswählen.

PAI.
MODULE namedesmoduls AT EXIT-COMMAND.
MODULE anderesmodul.
Warum bennenste auch das selectionsbild um 8) Das nächste mal einfach Finger weg von Standard Namen :o

Gruß
Markus

Beitrag von mawi (ForumUser / 61 / 0 / 1 ) »
Das verspreche ich. Schon in meinem eigenen Interesse! :evil:

Seite 1 von 1

Vergleichbare Themen

8
Antw.
3919
Views
Ungewollte Leerzeichen in CSV
von andipalamos » 28.10.2014 11:40 • Verfasst in ABAP® für Anfänger
7
Antw.
1517
Views
Vererbung - Ungewollte Referenz auf Oberklasse
von der_neuling » 22.02.2021 12:12 • Verfasst in ABAP Objects®
4
Antw.
1979
Views
Listausgabe begrenzen
von thiemf » 30.10.2007 15:51 • Verfasst in ABAP® für Anfänger
8
Antw.
4107
Views
Dynamische Listausgabe
von GERDLA » 15.11.2005 09:15 • Verfasst in ABAP® Core
4
Antw.
2617
Views
Formatierungsproblem bei Listausgabe
von Kali » 25.10.2012 10:01 • Verfasst in ABAP® für Anfänger

Ü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 einer Stunde von ralf.wenzel 21 / 11240
Dialog-Container mit Toolbar/Status
vor 23 Stunden von black_adept gelöst 27 / 4334
IT0024 Qualifikationen CP-ID
Gestern von ArjenR 1 / 228

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 einer Stunde von ralf.wenzel 21 / 11240
Dialog-Container mit Toolbar/Status
vor 23 Stunden von black_adept gelöst 27 / 4334
IT0024 Qualifikationen CP-ID
Gestern von ArjenR 1 / 228

Unbeantwortete Forenbeiträge

IT0024 Qualifikationen CP-ID
Gestern von ArjenR 1 / 228
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 3155
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9748