[55387] in SAPr3-news

home help back first fref pref prev next nref lref last post

Re: Leeren eines Parameters nach Programmende

daemon@ATHENA.MIT.EDU (=?iso-8859-1?Q?Arend_Schl=F6sser?=)
Tue Sep 6 15:38:10 2005

To: sapr3-news@mit.edu
Date: Tue, 6 Sep 2005 21:34:08 +0200
From: =?iso-8859-1?Q?Arend_Schl=F6sser?= <1963@nurfuerspam.de>
Message-ID: <dfkr45$q4m$1@newsreader3.netcologne.de>

> Es wird ein Report mit einem Parameters p_code angelegt. Dem Scanner ist 
> beigebracht worden, dass er nach dem Scannen immer F8 auslöst. Das funzt 
> auch. Der Parameter erhält auch den ersten Scanncaode, setzt die 
> Mahnsperre und steht wieder im Selektiosnbild bereit.
> Mein Problem:
> Der Parameter beinhaltet immer noch den ersten Wert, nach dem Scannen des 
> nächsten Briefes sind nun beide Scanncode im Parameter.
> Meine Frage:
> Wie kann bei Programmende der Parameters-Wert gelöscht werden, so dass 
> wieder ein sauberes Selektionsbild erscheint.


Hallo Matze Sonstwie,

nach F8 und Rückkehr ins Selektionsbild verhält sich SAP etwas 
"gewöhnungsbedürftig".
Alle Variablen werden zurückgesetzt, Selektion und Parameter bleiben 
erhalten; dies ist meistens aber auch gewünscht.

Mach dir das doch folgendermaßen zu Nutze:

REPORT  zarend.

DATA kz_loeschen TYPE c VALUE 'X'.

PARAMETERS p_code LIKE sy-repid OBLIGATORY.

**************************************************************
AT SELECTION-SCREEN OUTPUT.
**************************************************************
  IF NOT kz_loeschen IS INITIAL.   " Parameter löschen
    CLEAR kz_loeschen.
    CLEAR p_code.                  " nach Neustart/Buchung
  ENDIF.

**************************************************************
START-OF-SELECTION.
**************************************************************
* hier alle deine Aktionen....
  MESSAGE i001(00) WITH 'Fertig mit P_CODE=' p_code.

=============================================
Wenn du gar keine Ausgabeliste brauchst, ist es aber einfacher statt nach 
F8, auf Enter zu reagieren.
Das spart das obige Konstrukt und ist bei Scannern meist viel einfacher 
einzustellen.
Dann sieht's so aus:

REPORT  zarend.

PARAMETERS p_code LIKE sy-repid OBLIGATORY.

**************************************************************
AT SELECTION-SCREEN ON p_code.
**************************************************************
  IF NOT p_code IS INITIAL.
*   hier alle deine Aktionen....
    MESSAGE i001(00) WITH 'Fertig mit P_CODE=' p_code.
    CLEAR p_code.
  ENDIF.

Einfach, oder?
(Der Parameter sollte natürlich nicht mit einer Memory-ID verknüpft sein)

Gruß
    Arend 


home help back first fref pref prev next nref lref last post