Home > SAP > SAP ABAP : SELECT-OPTIONS et PARAMETERS dans dynpro – (SE80 / SE51)

SAP ABAP : SELECT-OPTIONS et PARAMETERS dans dynpro – (SE80 / SE51)

February 10th, 2010 admin Leave a comment Go to comments

Je vous propose une solution pour ne plus hésiter entre la création de dynpro et un programme classique (écran de sélection généré).

Bien souvent on utilise un programme  classique pour pouvoir bénéficier des SELECT-OPTIONS et autres PARAMETERS très utiles pour la sélection des données, mais on oublie, à tort,  que l’on peut avoir exactement la même chose dans les dynpro. On peut allier facilement : Sélection de données des programmes et liberté graphique et fonctionnelle des dynpro.

Il suffit de gérer un sous-écran dans le dynpro et de déclarer le SELECTION-SCREEN comme SUBSCREEN.

Exemple :

REPORT zsdspe89                                                    .

INCLUDE zsdspe89d.
INCLUDE zsdspe89f.
*– Définition de l’écran de sélection –*
SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-b01.
SELECT-OPTIONS : s_spbup  FOR s800-spbup OBLIGATORY.
SELECTION-SCREEN END OF BLOCK bl1.
SELECTION-SCREEN END OF SCREEN 300.

*– Fin de la définition –*
CLASS lcl_app DEFINITION DEFERRED.

DATA : wo_app TYPE REF TO lcl_app.

*———————————————————————-*
*       CLASS lcl_app DEFINITION
*———————————————————————-*
*
*———————————————————————-*
CLASS lcl_app DEFINITION.
PUBLIC SECTION.
PRIVATE SECTION.
ENDCLASS.                    “lcl_app DEFINITION

*———————————————————————-*
*       CLASS lcl_app IMPLEMENTATION
*———————————————————————-*
*
*———————————————————————-*
CLASS lcl_app IMPLEMENTATION.
ENDCLASS.                    “lcl_app IMPLEMENTATION

INCLUDE zsdspe89_pbo.
INCLUDE zsdspe89_pai.

START-OF-SELECTION.

CALL SCREEN ’200′.

***************************************************

Dans le dynpro 200 on déclare le sous-ecran 300 :

PROCESS BEFORE OUTPUT.
MODULE STATUS_0200.
CALL SUBSCREEN sub1 INCLUDING SY-REPID ’0300′.
*
PROCESS AFTER INPUT.
CALL SUBSCREEN sub1.
MODULE USER_COMMAND_0200.

Categories: SAP Tags:
  1. Andre
    April 30th, 2010 at 23:12 | #1

    Merci pour l’exemple mais comment gérer dans ce cas la loop of screen pour la gestion des radiobutton par exemple. Dans ma screen je voudrais utiliser un radio button pour l’apparition ou non de certains élements de la subscreen. Mais quand je debug je vois que la loop at screen ne prend en considération que les éléments de screen principal et la subscreen apparait systématiquement (j’essaie de le faire sur un module pool). En outre je m’attendais à voir ma dynpro 300 dans la liste des dynpro, ce qui n’est pas le cas… Merci de bien vouloir m’illuminer…

  2. admin
    May 10th, 2010 at 01:28 | #2

    Bonjour,

    Dans l’exemple, le “loop at screen” ne doit pas être fait dans le PBO de l’écran 0200 mais juste avant le start-of-selection dans un “AT SELECTION-SCREEN OUTPUT”.
    J’espère avoir répondu à ta question.

    Merci

    Julien

  1. No trackbacks yet.