====== Table Controls ======
===== Définition =====
* Définir le table screen.CONTROLS: wgtc_plop TYPE TABLEVIEW USING SCREEN 0152.
* Définir la table interne correspondante.
* Dessiner le table control dans le screen painter :
* Soit passer par l'assistant
* Soit Déposer le widget table control puis des champs dans le corps du tableau et des labels dans l'entête.
===== F4 =====
Cf. [[abap:F4_help]]
===== Table control éditable =====
L'assistant gère de base ces problématiques (à vérifier).
L'alternative sans boutons :
==== PBO ====
Pour permettre à l'utilisateur de rentrer directement les valeurs en ajoutant toujours une ligne libre à la fin du tableau :
DESCRIBE TABLE wgt_plop LINES wlv_lines.
wgtc_plop-lines = wlv_lines + 1.
Alimentation du table control :
LOOP AT wgt_entrepots
WITH CONTROL wgtc_entrepots
CURSOR wgtc_entrepots-current_line.
MODULE tbctl_pbo. "Le module peut ne pas être défini, la LOOP suffit
ENDLOOP.
==== PAI ====
LOOP AT wgt_entrepots.
CHAIN.
FIELD wgt_plop-field1.
FIELD wgt_plop-field2.
MODULE tbctl_pai ON CHAIN-REQUEST.
ENDCHAIN.
ENDLOOP.
Dans le module, il faut vérifier que la ligne est présente dans notre table interne. Si ce n'est pas le cas, ajouter la ligne. Une façon de gérer la suppression de ligne, c'est de considérer qu'à partir du moment où un champ particulier est vidé, c'est que la ligne doit être supprimée. Dans ce cas, dans le module PAI, supprimer la ligne ''wgtc_plop-current_line''.