Parameters löschen und Enter simulieren

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

Parameters löschen und Enter simulieren

Beitrag von LittleT (ForumUser / 48 / 0 / 0 ) »
Hallo liebe helferchen,

mir wurde schon öfter super hier geholfen, und ich habe auch bei diesem Problem große Hoffnung, dass dem so ist. :-)

Ich habe einen Report, bei dem ein Wert über einen Handscanner eingegeben wird. Sobald alle Felder gefüllt sind, soll die Entertaste simuliert werden und der Report durchlaufen. Wenn alles geklappt hat gibt es unten eine Meldung, dass alles erfolgreich ist, und es kann erneut ein Wert eingegeben werden.

Nun zu meinen 2 Problemen.
Wie kann ich das drücken der Entertaste simulieren sobald alle Werte bei den Parameters gefüllt sind?

Und wie kann ich die Eingaben nach der Verarbeitung wieder löschen?
Wenn ich im ersten Durchgang beispielsweise ins erste Feld a21 eingebe und ins zweite Feld 32456433245 dann bekomm ich die Meldung das alles erfolgreich verarbeitet wurde, aber die Daten "a21" und "32456433245" bleiben bestehen.

Ich hoffe ich habe mich nicht allzu mißverständlich ausgedrückt.
Für Eure Bemühungen bedanke ich mich schonmal im voraus.

LG
LittleT
Es ist nicht schlimm nichts zu wissen, nichts dagegen zu unternehmen ist schlimm.

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


Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Bei 'AT SELECTION-SCREEN.'

Das System-Feld sy-datar abfragen. Wenn ein 'X' drin steht, wurde was geändert, da kann man dann noch abfragen ob alle Felder gefüllt sind.


IF not Feld1 is initial and not feld2 is initial.
Flag setzen.
ENDIF.

Bei 'START-OF-SELECTION.'

Dieses Flag abfragen, wenn gesetzt die Logik ablaufen lassen, andernfalls Meldung das nicht alles befüllt ist.

Zum schluss die Selectionsfelder einfach mit CLEAR leeren.

Gruß
Markus

Beitrag von LittleT (ForumUser / 48 / 0 / 0 ) »
Hallo Markus,

ich habe beides probiert, aber beides hat leider nicht funktioniert.

Wenn ich at selcetion-screen mache und dort die Variablen auf leer setze dann funktioniert es dass die Felder leer sind.

Aber was ich nicht hinbekommen habe ist die Simulation der Enter taste. Aber das hab ich auch ehrlich gesagt nicht ganz verstanden.
Kannst du mir das bitte nochmal ausführlicher erklären?

Danke

Gruß
Rainer
Es ist nicht schlimm nichts zu wissen, nichts dagegen zu unternehmen ist schlimm.

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

damit ich genau versteh was du eigentlich willst, sind noch ein paar Infos nötig. Mir ist beim 2ten Mal durchlesen aufgefallen das du mit Return weiterkommen willst.

Du hast nen normalen Report? oder ist es ein Modulpool?

Die Returntaste würde ein normales Selektionsbild eines Reports ja eigentlich nicht zur Verarbeitung freigeben, sondern die F8 Taste.
Die Returntaste gibt eigentlich nur das Selektionsbild für AT Selection-screen frei.

So gesehen funkt. mein Ansatz vom ersten Post nicht ganz, da du immer noch auf F8 drücken musst. Muss da nochmal kurz nachschauen...

Gruß
Markus

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Hab jetzt mal rumgedoktort und musste feststellen dass es unmöglich ist ohne mindestens die Return-Taste zu drücken zur Abarbeitung zu kommen.

Darf es kein Modulpool Prog sein? Mit Dynpros?
Da könnte es unter Umständen gehn...aber ich denke ohne irgendeine Taste zu drücken bekommt man das nicht hin.


Solch Programme sind nunmal Dialogprogramme, wenn eingabemöglichkeiten vorhanden sind.

Versuch doch mal ob du mit Batch-Input oder so in der Richtung eher zum erfolg kommst.

Hier mal das Coding wie ichs hab, das nur noch Return gedrückt werden soll. Man kommt danach wieder zu einem leeren Sel.-Bild und hat in der Statusleiste ne Info was passiert ist.

Code: Alles auswählen.

REPORT  z_scanner                                                   .

DATA:
      gf_feld1(10)        TYPE c,
      gf_feld2(20)        TYPE c.

DATA:
      gf_flag             TYPE c.


PARAMETERS: pa_fd1(10)     TYPE c,
            pa_fd2(20)     TYPE c.


AT SELECTION-SCREEN.

  IF NOT sy-datar IS INITIAL.

    IF  NOT pa_fd1 IS INITIAL
    AND NOT pa_fd2 IS INITIAL.
      gf_flag = 'X'.
      gf_feld1 = pa_fd1.
      gf_feld2 = pa_fd2.

      CLEAR: pa_fd1, pa_fd2.

      PERFORM action.


    ENDIF.

  ENDIF.

START-OF-SELECTION.



*&---------------------------------------------------------------------*
*&      Form  action
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM action .
  IF NOT gf_flag IS INITIAL.

    MESSAGE 'Alles gmacht' TYPE 'S'.

    CLEAR: pa_fd1, pa_fd2, gf_flag, gf_feld1, gf_feld2.

  ENDIF.
ENDFORM.                    " action
Gruß
Markus

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
MarkusW hat geschrieben:Darf es kein Modulpool Prog sein?
Sind die nicht von SAP verboten worden? Aus gutem Grund?


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von Krueger ( / / 0 / 3 ) »
Return simulieren: Man kann normalerweise einem Scanner das "Return" programmieren.

Lass einfach nach dem Ereignis "AT Selection screen" das Ereignis "Start-of-Selection" weg!!!

Bei einem Enter/Return wird dann das Programm durchlaufen.... natürlich musst Du Deine Prüfungen in das "at selection screen" komplett einbauen.

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Krueger hat geschrieben:Return simulieren: Man kann normalerweise einem Scanner das "Return" programmieren.

Lass einfach nach dem Ereignis "AT Selection screen" das Ereignis "Start-of-Selection" weg!!!

Bei einem Enter/Return wird dann das Programm durchlaufen.... natürlich musst Du Deine Prüfungen in das "at selection screen" komplett einbauen.
So hab ich das Coding oben schon gemacht...aber wie du schon schreibst, es muss einmal ENTER gedrückt werden.

normalerweise machen das wirklich die Scanner, das Return.

Gruß
Markus

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
ralf.wenzel hat geschrieben:
MarkusW hat geschrieben:Darf es kein Modulpool Prog sein?
Sind die nicht von SAP verboten worden? Aus gutem Grund?


Ralf
Ernsthaft?
Sorry da hab ich gar nix von mitbekommen...aber wieso aus gutem Grund?
Was is so schlimm an den Modulpools?

Gruß
Markus

Beitrag von LittleT (ForumUser / 48 / 0 / 0 ) »
Hallo alle zusammen,

vielen Dank für Eure Antworten. Es funktioniert mit dem Quelltextausschnitt.
Ich wusste dass Ihr die Lösung parat habt.

Vielen Dank nochmal.

PS: Stimmt es geht um einen Scanner. Die erste Eingabe bleibt immer gleich, wird also nur beim start eingegeben. Und der zweite Wert wird über einen Handscanner eingegeben (mit Return). Daraufhin verarbeitet das Programm die Daten und gibt unten entweder "OK" oder "Fehler" aus. Daraufhin kann das nächste gescannt werden, ohne dass eine Eingabe mehr erforderlich ist.
Es ist nicht schlimm nichts zu wissen, nichts dagegen zu unternehmen ist schlimm.

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
LittleT hat geschrieben:Hallo alle zusammen,

vielen Dank für Eure Antworten. Es funktioniert mit dem Quelltextausschnitt.
Ich wusste dass Ihr die Lösung parat habt.

Vielen Dank nochmal.

PS: Stimmt es geht um einen Scanner. Die erste Eingabe bleibt immer gleich, wird also nur beim start eingegeben. Und der zweite Wert wird über einen Handscanner eingegeben (mit Return). Daraufhin verarbeitet das Programm die Daten und gibt unten entweder "OK" oder "Fehler" aus. Daraufhin kann das nächste gescannt werden, ohne dass eine Eingabe mehr erforderlich ist.
Dann war aber deine Problembeschreibung irreführend ;)
Du meintest ja das die ENTER Eingabe simuliert werden soll...aber nachdem der Scanner das macht, muss da nix simuliert werden...somit ist der Quellcode von mir für deine Wünsche passend :o

Viel Spass weiterhin

Gruß
Markus

Beitrag von LittleT (ForumUser / 48 / 0 / 0 ) »
ja das ist richtig, nur ich wusste es nicht dass der Handscanner das Enter schon mitschickt.
Aber ich hatte dennoch ein Problem, denn die Return Taste brachte mir nichts, da der Report nur bei der F8 taste loslief.

Ich weiß zwar nicht wieso man den Report nun mit der Enter Taste starten kann aber es funktioniert.
Liegt das an dem at selection-screen?

Auf alle Fälle funktioniert es jetzt einwandfrei.
Vielen vielen Dank.

Gruß
Rainer
Es ist nicht schlimm nichts zu wissen, nichts dagegen zu unternehmen ist schlimm.

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
LittleT hat geschrieben: Ich weiß zwar nicht wieso man den Report nun mit der Enter Taste starten kann aber es funktioniert.
Liegt das an dem at selection-screen?

Das liegt daran, dass die gesamte Verarbeitung im At Selection-Screen abgearbeitet wird.

im Start-of-selection steht nix drin, der Quellcode darunter ist ja eine Form-Routine.

Start-of-selection muss drin stehen, da der At Selection-Screen Bereich abgeschlossen werden musste, das geht nur mit der Angabe eines weiteren EreignissBlocks 8)


Auf alle Fälle funktioniert es jetzt einwandfrei.
Vielen vielen Dank.

Bitte Bitte ;)


Gruß
Rainer

Beitrag von Bernhard_C (ForumUser / 26 / 0 / 0 ) »
[quote="MarkusW"][quote="ralf.wenzel"][quote="MarkusW"]Darf es kein Modulpool Prog sein?[/quote]
Sind die nicht von SAP verboten worden? Aus gutem Grund?
Ralf[/quote]
Ernsthaft?
Sorry da hab ich gar nix von mitbekommen...aber wieso aus gutem Grund?
Was is so schlimm an den Modulpools?
Gruß
Markus[/quote]

Hallo,
Das interessiert mich jetzt aber auch ...
Gruß
Bernhard

Beitrag von matthes (ForumUser / 64 / 0 / 0 ) »
Hallo,

es gibt vielleicht noch eine weitere Möglichkeit. Zugrunde liegtfolgende Idee:

Schreib einen eigenen Report. Der enthält alle Felder des eigentlichen Reports sowie einen zusätzlichen Parameter für eine Eingabedatei. Sollte es Felder geben, die standartmäßig dazugemischt werden können die hier einfach gepflegt werden (vor enter). Aus der Eingabedatei werden zusätzlichen Daten (per Loop) dazugemischt und der gewünschte Report wird aufgerufen.

Hier der entscheidenden Statements der Reports:


Data: i_seltab type table of rsparams,
w_seltab type rsparams,
g_repid type sy-repid.

g_repid = sy-repid.

call function'RS_Refresh_from_Selectionoptions'
exporting
curr_report = g_repid
importing
selection_table = i_seltab
....
Danach stehen in i_seltab alle Parameter des Selectionscreens.

delete i_seltab where selname = 'P_FILE'. " Der zusätzlichen Parameter muss raus.

Jetzt können wir aus der Eingabedatei unsere Parameter füllen, beispielsweise:

loop über eingabedatei.
w_seltab-selname = 'S_MATNR'.
w_seltab-kind = 'S'.
w_seltab-sign = 'I'.
w_seltab-option = 'EQ''
w_seltab-low = eingabe-matnr.
append w_seltab to i_seltab.
....
submit originalreport with selection-table i_seltab and return.

delete i_seltab where selname = 'S_MATNR'. " Eingefügter Parameter muss raus.
endloop.

Natürlich geht auch ein BI.

Viele Grüße
Matthias Selle

Seite 1 von 1

Vergleichbare Themen

2
Antw.
2044
Views
Enter auf Selektionsbildschirm simulieren
von chatty » 05.04.2006 14:01 • Verfasst in ABAP® Core
3
Antw.
3088
Views
F8 innerhalb PARAMETERS "simulieren"
von Troilus » 14.02.2008 16:06 • Verfasst in Dialogprogrammierung
1
Antw.
2335
Views
Nach F4-On Value Request ein "Enter" simulieren
von Burki » 01.12.2005 15:04 • Verfasst in Dialogprogrammierung
0
Antw.
2108
Views
SOA mit MiniSAP simulieren?!?!?
von gerd-im-netz » 05.09.2006 16:26 • Verfasst in Java & SAP®
11
Antw.
4954
Views
Tastendruck simulieren.
von 5Jacken » 08.01.2013 10:02 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Regex in where
vor 10 Stunden von tar 8 / 263
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1551
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 198
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 440

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 10 Stunden von tar 8 / 263
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1551
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 198
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 440

Unbeantwortete Forenbeiträge

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