Annonce commerciale :

  
 English (United States) Français (France)
Inscription  
 
samedi 19 mai 2012

Annonce commerciale

Articles
01

je vous propose ici une manière rapide de faire un ALVGRID rapidement en utilisant la RFC REUSE_ALV_GRID_DISPLAY. Pour cela on a les étapes suivantes :

 

  1. On déclare les objets (types) spécifiques à la RFC REUSE_ALV_GRID_DISPLAY.
  2. On charge notre table interne.
  3. On créée le catalogue de nos colonnes et champs correspondants à notre table interne.
  4. On définit notre layout.
  5. On appelle la RFC REUSE_ALV_GRID_DISPLAY pour afficher l'ALV

 

Voici le code



REPORT  zjfoeasyalv3.

*Déclaration obligatoie pour notre démo.
DATA: mygrid TYPE REF TO cl_gui_alv_grid.
DATA: it_cat TYPE lvc_t_fcat.
DATA:
  itab_user_addrp_cat   TYPE   slis_t_fieldcat_alv,
  wa_user_addr_cat     TYPE   LINE OF slis_t_fieldcat_alv,
  gs_layout    TYPE   slis_layout_alv
  .

* on remplit notre table interne
DATA: itab_user_addrp LIKE user_addrp OCCURS 100 WITH HEADER LINE.
SELECT * INTO CORRESPONDING FIELDS OF TABLE itab_user_addrp
  FROM user_addrp .


* Puis on ajoute un a un chaque champs
* cela permet de mapper le nom du champs avec un text....
CLEAR wa_user_addr_cat.
wa_user_addr_cat-fieldname  = 'BNAME'.
wa_user_addr_cat-seltext_s  = 'NAME'.
APPEND wa_user_addr_cat TO itab_user_addrp_cat.

CLEAR wa_user_addr_cat.
wa_user_addr_cat-fieldname  = 'PERSNUMBER'.
wa_user_addr_cat-seltext_s  = 'Num'.
APPEND wa_user_addr_cat TO itab_user_addrp_cat.

CLEAR wa_user_addr_cat.
wa_user_addr_cat-fieldname  = 'DATE_FROM'.
wa_user_addr_cat-seltext_s  = 'Date from'.
APPEND wa_user_addr_cat TO itab_user_addrp_cat.

CLEAR wa_user_addr_cat.
wa_user_addr_cat-fieldname  = 'NAME_FIRST'.
wa_user_addr_cat-seltext_s  = 'First name'.
APPEND wa_user_addr_cat TO itab_user_addrp_cat.

CLEAR wa_user_addr_cat.
wa_user_addr_cat-fieldname  = 'NAME_LAST'.
wa_user_addr_cat-seltext_s  = 'Last Name'.
APPEND wa_user_addr_cat TO itab_user_addrp_cat.

CLEAR wa_user_addr_cat.
wa_user_addr_cat-fieldname  = 'NAME_TEXT'.
wa_user_addr_cat-seltext_s  = 'Displayed name.'.
APPEND wa_user_addr_cat TO itab_user_addrp_cat.

* et enfin on initialise un layout
gs_layout-zebra  = 'X'.
gs_layout-colwidth_optimize = 'X'.


*  Et on a plus qu'à appeler la RFC
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
 EXPORTING
*   i_callback_program = g_repid
   i_save = 'U'
   it_fieldcat = itab_user_addrp_cat
   is_layout = gs_layout
 TABLES
   t_outtab = itab_user_addrp
       .

Actions: E-mail | RSS comment feed |

Comments

# sebastien.ferry
mercredi 3 février 2010 10:53
Que dirais-tu de remplacer les
CLEAR wa_user_addr_cat.
wa_user_addr_cat-fieldname = 'DATE_FROM'.
wa_user_addr_cat-seltext_s = 'Date from'.
APPEND wa_user_addr_cat TO itab_user_addrp_cat.

par l'utilisation de la fonction REUSE_ALV_FIELDCATALOG_MERGE:

data : l_repid like sy-repid.
l_repid = sy-repid.


call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
i_program_name = l_repid
i_internal_tabname = 'ITAB_USER_ADDRP'
i_inclname = l_repid
changing
ct_fieldcat = itab_user_addrp.
# sebastien.ferry
mercredi 3 février 2010 11:00
Et pour les paresseux, il y a le "Code Generator for reuse_alv_grid_display":
http://www.alv-grid-display.de/alv_grid_en.html
# jfo
jeudi 4 février 2010 18:48
je connais ce dernier lien... Mais je te propose d'écrire toi même un ABAP TIPS
# Nicolas
mardi 9 mars 2010 22:02
Jérôme, pourquoi ne pas utiliser la version objet? Je vois en plus que tu as déclaré un objet de type cl_gui_alv_grid...
mercredi 10 mars 2010 10:37
Bonjour,

Je suis comme nicolas, je passerai pas une classe, et cela ne me demanderait que 7 lignes de codes.

Pour des questions de maintenance, je proscrirai l'utilisation de REUSE_ALV_FIELDCATALOG_MERGE

SAUF besoin très particulier.

Toujours réutiliser le DDIC
# finjisse
vendredi 2 juillet 2010 16:32
Moi aussi, je me bats pour que mes "vieux" développeurs n'utilise plus les REUSE_ mais de l'ABAP OO !

Sinon un autre robot : http://www.alvrobot.com.ar/home.php

Post Comment

Only registered users may post comments.
  
 Imprimer   


Les maques SAP, ABAP, BSP, Microsoft, .net, sont des marques déposées par leurs ayant-droiits.

Le site www.sap-integration.net est un site indépendant de SAP et de Microsoft et de tout autre éditeurs de logiciels ou fabricants de matériels.