September 07, 2010     | Register
  
26

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

Actions: E-mail | RSS comment feed |

Comments

# hebus16
Thursday, October 16, 2008 11:19 PM
Interressant et simple ca permet de lancer les bases sur ce type de développement :D me reste plus qu'a trouver d'autres exercices pour apprendre les petites spécificités de ce langage

Encore merci pour ces tutoriaux
# Datawolf
Tuesday, March 02, 2010 1:27 PM
Je fais appel à des écrans de sélection dans mes écrans spécifiques : ça me permet de filtrer les données très simplement.

Post Comment

Only registered users may post comments.