2
votes

Comment puis-je écrire le résultat d'une fonction sur un écran?

J'ai une fonction qui est juste un simple SELECT d'une table. J'ai un écran avec un bouton. Je veux appeler la fonction et écrire le tableau des résultats à l'écran lorsque le bouton est activé. Je n'obtiens aucune erreur, rien ne se passe, qu'est-ce qui ne va pas?

CASE ok_code.
    WHEN 'SELECTALL'.
      CALL FUNCTION 'ZRL_ZH12FU_MONUMENTALL'
        TABLES
          MONUMENTLIST       =   monumentresult.
      LOOP AT monumentresult INTO monumentresultline.
        WRITE: / monumentresultline-monumentid,
                 monumentresultline-monumenttitle,
                 monumentresultline-theatre,
                 monumentresultline-year,
                 monumentresultline-part,
                 monumentresultline-picture.
      ENDLOOP.
    WHEN 'SELECT'.
      ...


0 commentaires

3 Réponses :


0
votes

L'instruction d'écriture ne fonctionne que pour l'écran de sortie, pas pour l'écran de sélection.

Vous devrez probablement définir certains éléments de texte sur votre écran de sélection et utiliser la construction

LOOP AT SCREEN

pour mettre à jour les valeurs desdits éléments de texte.


1 commentaires

Ce n'est pas un écran de sélection, j'ai édité la question. C'est juste un simple écran. Donc je ne peux pas écrire sur l'écran sans un élément à l'intérieur de l'écran, où je pourrais écrire?



3
votes

WRITE renvoie uniquement les données vers un "tampon de liste", qui sera automatiquement affiché lorsqu'un écran système nommé "écran de liste" est affiché.

Pour passer d'un écran classique à la liste écran, utilisez cette instruction dans le PAI de l'écran classique:

LEAVE TO LIST-PROCESSING.

À la fin du PAI, l'écran de liste est alors affiché et montre toutes les données du tampon de liste.

Lorsque vous appuyez sur le bouton Quitter de l'écran de liste, cela fait un LEAVE LIST-PROCESSING implicite (sans TO), et le dernier écran classique s'affiche.


0 commentaires

0
votes

Les instructions d'écriture écrivent normalement sur l'écran de liste. Une partie du programme exécutable. Je vois que vous essayez d'écrire sur l'écran normal du pool de modules.

Pour ce faire, écrivez des instructions dans un programme exécutable et utilisez le programme submit pour appeler, de sorte que vos instructions d'écriture fonctionnent.


0 commentaires