2017-08-21 1 views

Répondre

0

Cela peut être fait! Télécharger cette source: http://www.code400.com/ffd.php

Vous pouvez commenter la section GETKEY de FFDRPG car vous n'en aurez pas besoin et il est probable qu'il tombera de toute façon. De plus, souvenez-vous lorsque vous utilisez la commande, pour mettre le nom du format d'enregistrement ainsi que le nom de votre fichier d'affichage - ne laissez pas simplement * FIRST là-dedans ou vous obtiendrez simplement les champs du premier format d'enregistrement dans le fichier d'affichage.

EDIT: Vous aurez besoin d'ajouter un champ supplémentaire à la structure des données LISTDS:

D ListDs   DS     
D SfFld     1  10 
D SfType    11  11 
D SfUse     12  12 
D BufferOut    13  16B 0 
D FieldLen    21  24B 0 
D Digits    25  28B 0 
D Decimals    29  32B 0 
D FieldDesc    33  82 

Si vous ajoutez le 3ème champ SfUse, vous pouvez vérifier si elle contient « I » de sorte que vous ne compter que les champs à capacité d'entrée.

Consultez l'API QUSLFLD https://www.ibm.com/support/knowledgecenter/en/ssw_i5_54/apis/quslfld.htm si vous voulez voir exactement quelles informations peuvent être récupérées par cette API. L'exemple dans le téléchargement utilise le format le plus basique FLDL0100 mais plus d'informations peuvent être récupérées si vous demandez le format FLDL0200 ou FLDL0300 mais elles prendront plus de temps à s'exécuter et vous ne devriez pas avoir besoin des informations supplémentaires pour réaliser ce que vous ' re après.

0

Je ne sais pas si cela est possible, mais vous pouvez trouver un peu de joie avec les API DSM. QsnQry5250 a un nombre maximum de paramètres de retour de champs d'entrée, mais il peut juste vous montrer le maximum autorisé sur l'affichage plutôt que le nombre que vous avez sur votre écran.

Il y a un exemple ici https://www.ibm.com/support/knowledgecenter/en/ssw_i5_54/apis/dsm1g.htm

Et la documentation API ici https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_72/apis/QsnQry5250.htm

Désolé, je ne peux pas être plus utile - je ne l'ai jamais utilisé ces API et ne peut pas penser à une autre façon d'atteindre ce que vous êtes après.

Si vous nous dites la raison pour laquelle vous avez besoin de connaître le nombre de champs de saisie à l'écran, nous pouvons vous proposer un autre moyen d'atteindre ce que vous voulez atteindre.

Damian

+0

Merci pour la relecture, j'écris des macros pour mon travail. J'ai besoin d'obtenir le nombre de champs d'entrée, j'utilise IF, sinon dans ma macro. Ce champ est différent sur chaque page d'inventaire. Par exemple si les entrées sont 5, je veux [TAB] 5 fois. –