Archive for January, 2012

Afficher un ALV objet sans créer d’écran (screen painter)

Je vous conseille d’aller lire cet article à sa nouvelle adresse : Afficher un ALV objet sans créer d’écran (screen painter)

Lassé de créer un écran ne contenant qu’un custom control, avec PBO et PAI rachitiques uniquement pour afficher votre grid ALV objet ? La classe cl_gui_container contient nativement des attributs qui permettent de s’en passer ! Encore faut-il le savoir, ce qui est maintenant votre cas ;-)
En effet, au lieu de créer tout d’abord un objet container puis d’indiquer cet objet en parent de l’objet alv, utilisez directement cl_gui_container=>screen0 comme parent pour votre ALV !

PROGRAM test.
DATA : o_alv      TYPE REF TO cl_gui_alv_grid,
       t_sflight  TYPE TABLE OF sflight.

* Definition d'un écran de sélection vide
SELECTION-SCREEN : BEGIN OF SCREEN 1001,
                   END OF SCREEN 1001.

* Remplissage de la table de données pour l'ALV
SELECT * FROM sflight INTO TABLE t_sflight.

* Creation de l'objet alv directement rattaché au premier screen
CREATE OBJECT o_alv
  EXPORTING
    i_parent = cl_gui_container=>screen0.

* Passage des données a l'ALV
CALL METHOD o_alv->set_table_for_first_display
  EXPORTING
    i_structure_name = 'SFLIGHT'
  CHANGING
    it_outtab        = t_sflight.

* Affichage de l'écran, l'ALV apparait !
CALL SELECTION-SCREEN 1001.

Cette astuce améliore au passage la portabilité de votre code (pas de screen/status/title à gérer).

Tags: , , , ,

Astuce Search-help standard SAP

Je vous conseille d’aller lire cet article à sa nouvelle adresse : Astuce Search-help standard SAP

Pour accéder rapidement à une liste de valeur pour une aide à la recherche, il est possible d’utiliser une syntaxe particulière directement dans le champ.
Par exemple sur l’écran d’accueil de SU01, dans le champs User, saisir =…seb puis entrée affichera la liste de tous les utilisateurs dont le prénom commence par “seb”.

La syntaxe est la suivante :

  • Commencer par =
  • Ajouter autant de points que la position du champ de recherche a remplir dans le match code
  • Saisir le texte recherché
  • Appuyer sur entrée

Dans l’exemple “=…seb”, les 3 points indiquent d’utiliser le 3e champ, donc le prénom

Cette astuce fonctionne avec la plupart des champs standards SAP. Il est également possible de faire une recherche sur plusieurs champs en les enchainant. =…seb.dir pour rechercher tous les “seb*” du département “dir*”

Tags: ,