2017-07-01 2 views
-1


Je travaille actuellement sur un rapport dynamique pour lequel je dois écrire quelques requêtes dynamiques et je suis coincé à un endroit. S'il vous plaît, ce serait génial si quelqu'un peut me suggérer s sortie. Bellow j'ai essayé d'expliquer ce que je fais et où je suis coincé. Merci.
Définition 2 symbole champl'accès au champ de champ qui est défini runtime ABAP

<o_fs> TYPE table, 
<owa_fs> type any. 

créer dynamiquement une table interne pour o_fs

CALL METHOD cl_alv_table_create=>create_dynamic_table 
EXPORTING 
it_fieldcatalog = it_cat 
IMPORTING 
ep_table = d_ref2. 
ASSIGN d_ref2->* TO <o_fs>. 

alors je remplis des données dans les o_fs
Après que je veux ajouter une valeur à l'un des champs de o_fs LOOP AT

<O_FS> ASSIGNING <OWA_FS>. 
*<owa_fs>-columnname = 'value to be added'. 
IF SY-TABIX = INDEX. 
MODIFY (p_vtab) From <OWA_FS>. 
COMMIT WORK. 
ENDIF. 

la ligne qui est marqué * est giv Une erreur de compilation m'a alors été signalée: "L'objet de données" "n'a pas de structure et donc pas de composant appelé" COLUMNNAME ". appelé « Columnname » »

Répondre

3

Lorsque la syntaxe vérification, le système ne sait pas si le champ symbole est structuré ou non. Vous devez attribuer le composant de la structure à un autre symbole de champ. Voir commande ASSIGN COMPONENT ... pour cela.

la commande mettre dans votre exemple:

ASSIGN COMPONENT 'COLUMNMAME' OF STRUCTURE <owa_fs> TO <another_fs>. 
IF sy-subrc = 0. 
    <another_fs> = 'value to be added'. 
ENDIF. 

<another_fs> peut être de type ANY

+0

Merci homme, il a travaillé !!. –