Code: Alles auswählen.
ls_query-tabname = 'USR01'. "Das führt anscheinend zur Anzeige "Benutzername", weiß aber nicht was ich da sonst hinschreiben muss
ls_query-fieldname = 'BNAME'.
append ls_query to lt_query.
START-OF-SELECTION.
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
popup_title ='Please input the exact number of your DATA.'
TABLES
fields = lt_query
EXCEPTIONS
error_in_fields = 1
others = 2.
READ TABLE lt_query INTO ls_query with key fieldname = 'BNAME'.
IF sy-subrc = 0.
write:/ ls_query-value.
ENDIF.
Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
Looper
Code: Alles auswählen.
REPORT ZLK_DYNPROTEST.
DATA: input TYPE i,
output TYPE i,
lv_test(4) TYPE c,
t1(1) TYPE c, t2(1) TYPE c.
CALL SCREEN 6666.
MODULE init_screen_6666 output.
CLEAR input.
t1 = 'X'.
CLEAR: t2.
ENDMODULE.
MODULE user_command_6666 input.
output = input.
*IF exit NE space.
*
*LEAVE PROGRAM.
*ENDIF.
IF t1 = 'X'.
lv_test ='test'.
write:lv_test.
ENDIF.
ENDMODULE.
kann nicht wirklich nach kraut und rüben aussehen weil es fast 1 zu 1 das Beispiel aus der sap dokumentation istdeejey hat geschrieben:Das sieht alles nach Kraut und Rüben aus, du kommst nicht weiter weil du das Konzept dahinter nicht verstehst. Es gibt doch diese Beispiel-Dynproprogramme, wie zum Geier heißen die nochmal? Das ist mMn der beste Einstieg.
Code: Alles auswählen.
DATA: input TYPE i,
output TYPE i,
lv_test(4) TYPE c,
t1(1) TYPE c, t2(1) TYPE c.
CALL SCREEN 6666.
IF t1 = 'X'.
lv_test ='test'.
write:lv_test.
ENDIF.
MODULE init_screen_6666 output.
CLEAR input.
t1 = 'X'.
CLEAR: t2.
ENDMODULE.
MODULE user_command_6666 input.
output = input.
*IF exit NE space.
*
*LEAVE PROGRAM.
*ENDIF.
LEAVE SCREEN.
ENDMODULE.
Und ein "Vorschaltprogramm" ist was? Letztlich entnehme ich Deinen Worten, dass Du das Selektionsbild des Reports selbst als "Vorschaltprogramm" verstehst, was man sicherlich vertreten kann. Nur hat er ja deutlich gemacht, dass ihm genau das eben nicht reicht und dass er da eine erweiterte, flexible Programmsteuerung haben möchte. Und in dem Moment, in dem das so ist, ist ein Report mit seiner einfachen Selektionsbild -> Ergebnisliste-Struktur nicht mehr ausreichend, sondern dann braucht man eine flexible Programmablaufsteuerung. Die einzige Alternative wäre, über FUNCTION KEY Schaltflächen in das Selektionsbild einzubauen und bei deren Nutzung dann aus dem entsprechenden AT SELECTION-SCREEN-Block einen CALL SCREEN auszuführen.black_adept hat geschrieben:was du beschreibst ist ein "Vorschaltprogramm".
Würde gerne mal wissen, wie das aussehen soll. Ein Report generiert Dir aus Deinem Selektionsbild ein Dynpro 1000. Bei Abfahrt geht es in das Ergebnisbild. Viel mehr kann ein Report nicht. Vielleicht kannst Du den Ablauf umbiegen, indem Du im Ereignis START-OF-SELECTION dann plötzlich andere Dynpros per CALL SCREEN rufst, aber das kommt mir wie eine üble Vergewaltigung des REPORT-Konzeptes vor. Ich sehe auch keine Vorteile; im Gegenteil bist Du bei der Gestaltung Deines Selektionsbildes auf die Möglichkeiten beschränkt, die die Report-Programmierung Dir bietet, anstatt Dein Einstiegsdynpro komfortabel per WYSIWYG zu erstellen und dabei alle Möglichkeiten offen zu haben. Allein das Gekrampfe, dass PARAMETERS-Feldnamen nur maximal 8 Zeichen lang sein dürfen, was aussagekräftige Feldnamen zunichte macht, oder dass die Selektionstexte auch auf eine oft unzureichend kurze Länge beschränkt sind, die man sich aufwendig durch die kalte Küche erweitern muss, indem man einen SELECTION-SCREEN BEGIN/END OF LINE-Block baut und dann ein Textsymbol anstelle des normalen Selektionstextes für den Parameter verwendet...Ich schreibe andauernd neue Progrämmchen, welche diverse Dynpros verwenden. Aber wann ich dafür tatsächlich noch einen Modulpool verwendet habe - ich kann mich nicht erinnern das in den letzten 10 Jahren noch gemacht zu haben.
Das ist eine ganz normale Vorgehensweise. Du kommentierst das, als wäre das Zauberei...DeathAndPain hat geschrieben:Würde gerne mal wissen, wie das aussehen soll. Ein Report generiert Dir aus Deinem Selektionsbild ein Dynpro 1000. Bei Abfahrt geht es in das Ergebnisbild. Viel mehr kann ein Report nicht. Vielleicht kannst Du den Ablauf umbiegen, indem Du im Ereignis START-OF-SELECTION dann plötzlich andere Dynpros per CALL SCREEN rufst, aber das kommt mir wie eine üble Vergewaltigung des REPORT-Konzeptes vor.black_adept hat geschrieben:Ich schreibe andauernd neue Progrämmchen, welche diverse Dynpros verwenden. Aber wann ich dafür tatsächlich noch einen Modulpool verwendet habe - ich kann mich nicht erinnern das in den letzten 10 Jahren noch gemacht zu haben.
Ich halte es nicht für Zauberei, sondern für eine Vergewaltigung des REPORT-Prinzips. CALL SCREEN kannste gerne im Ergebnisbild machen, wenn Du im I_CALLBACK_USER_COMMAND-Programm, das Du bei Deinem CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' angegeben hast, mit Reaktionen des Users auf die Ergebnisliste umgehst. Das mache ich auch gerne. Aber da hast Du immer noch das Grundgerüst Selektionsbild->Ergebnisliste->weiteres. In dem Moment, in dem Du keine "Ergebnisliste" brauchst, weil Dein Programm etwas anderes tut, als nach Entgegennahme von Selektionsdaten Ergebnisdaten auszugeben, passt der Report als Programmtyp nicht mehr. Reports haben da eine beachtliche Flexibilität. Z.B. kannst Du einen Korrekturreport Daten verändern lassen, und die "Ergebnisliste" ist dann halt das Log. Aber sobald es darum geht, Daten einzupflegen statt rauszuholen, passt dieses Gerüst in aller Regel nicht mehr.Das ist eine ganz normale Vorgehensweise. Du kommentierst das, als wäre das Zauberei...
Wenn ich das in einem Modulpool brauche, dann mache ich einfach einen CALL SELECTION-SCREEN. Da habe ich alle Möglichkeiten des Report-Selektionsbildes, ohne die Flexibilität des Modulspools herschenken zu müssen. Brauche ich aber nur extrem selten, denn wenn ich es bräuchte, dann wäre es höchstwahrscheinlich von der Struktur her ein Report, und dann würde ich auch einen draus machen.Der Vorteil eines Selektionsbildes ist genau das: du kannst mit einem Befehl eine komplexe Selektion definieren (SELECT-OPTIONS).
Nenn mal ein einziges Beispiel, wo ein Modulpool flexibler ist als ein ReportDeathAndPain hat geschrieben: Da habe ich alle Möglichkeiten des Report-Selektionsbildes, ohne die Flexibilität des Modulspools herschenken zu müssen
Aus dem 1. Posting war nicht klar, dass es das selbe Programm ist aus dem die Zusatzinformationen abgefragt werden. --> Vorschaltprogramm um die Usereingaben zu holen und dann dem "richtigen" Programm zu übergeben. Aber ok - der TE will was anderes.DeathAndPain hat geschrieben:Und ein "Vorschaltprogramm" ist was? Letztlich entnehme ich Deinen Worten, dass Du das Selektionsbild des Reports selbst als "Vorschaltprogramm" verstehst, was man sicherlich vertreten kann. Nur hat er ja deutlich gemacht, dass ihm genau das eben nicht reicht und dass er da eine erweiterte, flexible Programmsteuerung haben möchte.black_adept hat geschrieben:was du beschreibst ist ein "Vorschaltprogramm".
Diese doch sehr vereinfachte Ansicht war vielleicht zur Jahrtausendwende mal aktuell. Heutzutage ist ein Report beileibe nicht mehr SelScreen -> Ergebnisliste. Hat Enno ja auch schon erwähnt.DeathAndPain hat geschrieben:Und in dem Moment, in dem das so ist, ist ein Report mit seiner einfachen Selektionsbild -> Ergebnisliste-Struktur nicht mehr ausreichend, sondern dann braucht man eine flexible Programmablaufsteuerung.