Publiée le September 26, 2008 11:07

| nombre de lecture : 8975
|
En ABAP il est possible de créer trés rapidement un écran de sélection pour exécuter un programme, lancer un job ou chager encore un ALVGRID par exemple. Cette solution, même si elle fait une rupture sur l'interface graphique est trés productive. Je vous propose donc un tutorial consacré à cela
Mots clés : ABAP, création, écran, sélection, selection-screen.
|
|
Préambule :
Pour réaliser ce tuto je vous invite avant tout à suivre les autres tutos consacrés à ABAP. http://www.sap-integration.net/Default.aspx?tabid=433&articleType=ArticleView&articleId=354
Exercice 1 : Un premier selection-screen.
Histoire de comprendre le principe de base je vous propose un exemple minimaliste pour débuter. Pour cela créer un programme ZSELECT01 avec la transaction SE38.
Dans ce cas nous allons saisir deux valeurs (Hello et World tradition oblige) et les afficher concaténé.
Code
*&---------------------------------------------------------------------*
*& Report ZSELECT01 *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZSELECT01.
SELECTION-SCREEN BEGIN OF BLOCK BLOCK1.
PARAMETERS : CHAMP1(10), CHAMP2(10).
SELECTION-SCREEN END OF BLOCK BLOCK1.
DATA: MACHAINE(20).
CONCATENATE CHAMP1 CHAMP2 INTO MACHAINE.
WRITE MACHAINE.
On a ainsi

on rentre les valeurs par exemple Hello World puis F8 pour éxécuter le programme
et on a

Vous comprenez maintenant le principe de base. Le sélection screen permet juste de créer rapidement une fenetre de sélection qui bascule sur votre code sans devoir designer un écran. Pratique !
Nous allons maintenant donner un titre à notre écran de sélection. Pour cela nous modifions la ligne begin

Puis cliquez sur CTRL+F3 ou
pour activer votre modification
puis double cliquez sur TEXT-001
Une popup apparait

Cliquez sur YES (ou OUI)
L'écran suivant apparait... Saisissez le texte comme suit.

Puis cliquez sur CTRL+F3 ou
pour activer votre modification
puis revenez à l'écran précédent 
Puis cliquez sur CTRL+F3 ou
pour activer votre programme et exécutez le...

On a donc notre bloc isolé et maintenant avec un titre...
Exercice 2 : Des valeurs par défaut
Nous allons maintenant donner des valeurs par défaut à nos deux champs
SELECTION-SCREEN BEGIN OF BLOCK BLOCK1 WITH FRAME TITLE TEXT-001.
PARAMETERS : CHAMP1(10) DEFAULT 'Hello', CHAMP2(10) DEFAULT 'World'.
SELECTION-SCREEN END OF BLOCK BLOCK1.
DATA: MACHAINE(20).
CONCATENATE CHAMP1 CHAMP2 INTO MACHAINE.
WRITE MACHAINE.
En exécutant le programme on a maintenant

Renommez le nom des champs
Nous allons maintenant voir comment renommer les champs. Dans le cas précédent nous avions CHAMP1 et CHAMP2. Nous allons maintenant leur donner une valeur différente plus lisible.
Dans ce cas on va séparter chaque ligne avec SELECTION-SCREEN BEGIN OF LINE. et on la finit SELECTION-SCREEN END OF LINE. Il suffit alors d'ajouter un comment en ajoutant un SELECTION-SCREEN COMMENT qu'on affecte à chaque champs.
Tapez le code suivant.
REPORT ZSELECT .
SELECTION-SCREEN BEGIN OF BLOCK BLOCK1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(31) TEXT-S01 FOR FIELD CHAMP1.
PARAMETERS : CHAMP1(10) DEFAULT 'Hello'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(31) TEXT-S02 FOR FIELD CHAMP1.
PARAMETERS: CHAMP2(10) DEFAULT 'World'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK BLOCK1.
DATA: MACHAINE(20).
CONCATENATE CHAMP1 CHAMP2 INTO MACHAINE.
WRITE MACHAINE.
Faites un CTRL+S pour sauver le programme. Puis double-cliquez sur TEXT-S01 et TEXT-S02 et entrez les valeurs de vos étiquettes. Puis activez les textes et la page pui exécutez le programme.
et vous devez avoir cet écran.

Ajoutez des boutons RADIO
Il est assez simple d'ajouter des boutons RADIO, pour essayer copier ce code...
REPORT ZSELECT .
SELECTION-SCREEN BEGIN OF BLOCK BLOCK1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(31) TEXT-S01 FOR FIELD CHAMP1.
PARAMETERS : CHAMP1(10) DEFAULT 'Hello'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(31) TEXT-S02 FOR FIELD CHAMP1.
PARAMETERS: CHAMP2(10) DEFAULT 'World'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK BLOCK1.
SELECTION-SCREEN BEGIN OF BLOCK BLOCK2 WITH FRAME.
PARAMETERS : CHOIX1 RADIOBUTTON GROUP g,
CHOIX2 RADIOBUTTON GROUP g.
SELECTION-SCREEN END OF BLOCK BLOCK2.
DATA: MACHAINE(20).
CONCATENATE CHAMP1 CHAMP2 INTO MACHAINE.
WRITE MACHAINE.
IF CHOIX1 = 'X'.
WRITE 'Choix 1 est validé'.
ELSE.
WRITE 'Choix 2 est validé'.
ENDIF.
Activez le code et exécutez le et vous devez avoir ce résultat...

Voilou pour le B.A BA des écrans de sélection...
Jerome.Fortias