Aller au contenu

CRTMNU

Créer un menu

En bref

La commande CRTMNU (Créer un menu) permet de créer un objet menu, de type *DSPF (fichier écran) ou *PGM (programme).

CRTMNU se lit CRT (Créer) + MNU. Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.

Syntaxe minimale

CRTMNU MENU(…) TYPE(…)

Paramètres

  • MENU Menu obligatoire
  • TYPE Type de menu obligatoire
  • DSPF Fichier écran
  • MSGF Fichier de messages fichier message
  • CMDLIN Ligne de commande
  • DSPKEY Afficher touches de fonction
  • PGM Programme
  • SRCFILE Fichier source
  • SRCMBR Membre source
  • OPTION Options pour liste source
  • INCFILE Inclure fichier
  • CURLIB Bibliothèque en cours
  • PRDLIB Bibliothèque de logiciel
  • CHRID Identificateur de caractères
  • REPLACE Remplacer le menu
  • TEXT Texte 'descriptif'
  • AUT Droits

Astuce : dans une session 5250, tapez CRTMNU puis F4 pour l'invite de saisie, et F1 sur un paramètre pour son aide.

Aide IBM i de la commande

Texte du F1, IBM i 7.5 en français (bibliothèque QSYS)

Où s'exécute : Tous les environnements (*ALL)
Compatible multitâche : Non

La commande CRTMNU (Créer un menu) permet de créer un objet menu, de type *DSPF (fichier écran) ou *PGM (programme). La commande GO (Aller à un menu) permet d'accéder directement à un menu.

Restrictions :

  • Vous devez disposer des droits *CHANGE, *READ et *ADD sur la bibliothèque où le menu doit être créé.

Paramètres

Mot-clé Description Valeurs possibles Remarques
MENU Menu Nom d'objet qualifié Obligatoire, positionnel 1
Qualificatif 1: Menu Nom
Qualificatif 2: Biblio Nom, *CURLIB
TYPE Type de menu *DSPF, *PGM, *UIM Obligatoire, positionnel 2
DSPF Fichier écran Nom d'objet qualifié Facultatif
Qualificatif 1: Fichier écran Nom, *MENU
Qualificatif 2: Biblio Nom, *LIBL, *CURLIB
MSGF fichier message Nom d'objet qualifié Facultatif
Qualificatif 1: fichier message Nom, *MENU
Qualificatif 2: Biblio Nom, *LIBL, *CURLIB
CMDLIN Ligne de commande *LONG, *SHORT, *NONE Facultatif
DSPKEY Afficher touches de fonction *NO, *YES Facultatif
PGM Programme Nom d'objet qualifié Facultatif
Qualificatif 1: Programme Nom, *MENU
Qualificatif 2: Biblio Nom, *LIBL, *CURLIB
SRCFILE Fichier source Nom d'objet qualifié Facultatif
Qualificatif 1: Fichier source Nom, QMNUSRC
Qualificatif 2: Nom, *LIBL, *CURLIB
SRCMBR Membre source Nom, *MENU Facultatif
OPTION Options pour liste source Values (jusqu'à 3 répétitions): *SOURCE, *NOSOURCE, *SRC, *NOSRC, *NOSECLVL, *SECLVL, *NOEVENTF, *EVENTF Facultatif
INCFILE Inclure fichier Valeurs uniques: *SRCFILE
Autres valeurs: Nom d'objet qualifié
Facultatif
Qualificatif 1: Inclure fichier Nom
Qualificatif 2: Biblio Nom, *LIBL, *CURLIB
CURLIB Bibliothèque en cours Nom, *NOCHG, *MNULIB, *CRTDFT Facultatif
PRDLIB Bibliothèque de logiciel Nom, *NOCHG, *NONE Facultatif
CHRID Identificateur de caractères Entier, *DEVD, *JOBCCSID, *CHRIDCTL Facultatif
REPLACE Remplacer le menu *YES, *NO Facultatif
TEXT Texte 'descriptif' Valeur caractère, *SRCMBRTXT, *BLANK Facultatif
AUT Droits Nom, *LIBCRTAUT, *CHANGE, *ALL, *USE, *EXCLUDE Facultatif

Menu (MENU)

Indique le menu à créer.

Ce paramètre est obligatoire.

Qualificatif 1 : Menu

nom
Indiquez le nom du menu.

Qualificatif 2 : Biblio

*CURLIB
Le nouveau menu est stocké dans la bibliothèque en cours du travail. Si celle-ci n'est pas précisée, QGPL est prise par défaut.
nom
Indiquez le nom de la bibliothèque dans laquelle doit figurer le menu.

Type de menu (TYPE)

Indique le type de menu à créer.

Remarque :*DSPF doit être indiqué avec les valeurs à définir pour les paramètres DSPF (Fichier écran) et MSGF (fichier message). Le paramètre PFM (Programme) est applicable uniquement si *PGM est indiqué.

Ce paramètre est obligatoire.

*DSPF
Le menu créé fait appel à un fichier écran et à un fichier de messages existants.
*PGM
Le menu créé fait appel à un programme.
*UIM
Le menu créé utilise le langage de marques UIM disponible dans le fichier indiqué aux paramètres SRCFILE (Fichier source) et SRCMBR (Membre source).

Fichier écran (DSPF)

Indique le fichier écran à utiliser pour créer l'objet menu. Le fichier écran doit contenir un format d'enregistrement portant son nom : il s'agit du format de menu. Il se peut que le fichier comporte également des formats d'aide.

Les formats d'aide suivent la convention d'appellation #Hxxyy, où xx représente la première option de menu et yy la dernière à laquelle les formats d'aide s'appliquent. Par exemple, #H0306 s'applique aux options de menu 3 à 6. #H0000 désigne l'aide générale relative au menu.

Le fichier écran doit comporter une zone indicateur (mot clé INDARA) distincte et aucune description de sous-fichier.

Ce paramètre n'est applicable que si vous avez indiqué *DSPF pour le paramètre TYPE (Type de menu).

Qualificatif 1 : Fichier écran

*MENU
Le nom du fichier écran est identique à celui du menu indiqué pour le paramètre MENU (Menu).
nom
Indiquez le nom du fichier écran à utiliser.

Qualificatif 2 : Biblio

*LIBL
La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
*CURLIB
Le fichier écran est recherché dans la bibliothèque en cours du travail. Si celle-ci n'est pas précisée, QGPL est prise par défaut.
nom
Désignez la bibliothèque dans laquelle figure le fichier écran.

fichier message (MSGF)

Désigne le fichier de messages contenant les commandes à lancer lorsque des options sont sélectionnées sur le menu. Les MSGID des messages de ce fichier sont au format USRxxxx, où xxxx représente le numéro d'option de menu entré à la ligne de commande.

Remarque :Si le fichier de messages à créer doit être utilisé pour des menus, ajoutez des membres de fichier de messages dans le fichier à l'aide de la commande ADDMSGD (Ajouter description de message).

Qualificatif 1 : fichier message

*MENU
Le nom du fichier de messages contenant les commandes à lancer est identique à celui du menu indiqué pour le paramètre MENU (Menu).
nom
Indique le nom du fichier de messages à utiliser.

Qualificatif 2 : Biblio

*LIBL
La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
*CURLIB
Le fichier de messages est recherché dans la bibliothèque en cours du travail. Si celle-ci n'est pas précisée, QGPL est prise par défaut.
nom
Désignez la bibliothèque dans laquelle figure le fichier de messages.

Ligne de commande (CMDLIN)

Indique si la ligne de commande à afficher est longue, courte ou inexistante (ligne d'option).

*LONG
La longueur de la ligne de commande sera de 153 octets.
*SHORT
La longueur de la ligne de commande sera de 73 octets.
*NONE
L'écran comportera une ligne d'option de 4 octets.

Afficher touches de fonction (DSPKEY)

Indique si le libellé des touches de fonction doit apparaître en bas du menu affiché.

*NO
Le libellé des touches de fonction n'est pas affiché en bas de l'écran.
*YES
Le libellé des touches de fonction est affiché en bas de l'écran.

Programme (PGM)

Désigne le programme auquel le menu fait appel.

Trois paramètres sont fournis au programme :

  • Le premier est le nom de 10 caractères de l'objet Menu qui identifie le programme à appeler.
  • Le second est le nom de 10 caractères de la bibliothèque contenant l'objet Menu.
  • Le troisième est un code retour binaire de deux caractères, déclaré en tant que variable dans le programme appelé. Le programme doit définir l'un des codes retour suivants :

    Code   Valeur
     retour  hexa.   Description
       0    0000    Appelez de nouveau
                    le programme (affichage du menu)
      -1    FFFF    Fonction de sortie demandée
      -2    FFFE    Fonction précédente demandée
      -4    FFFC    Fonction initiale demandée
                    (affichage du menu initial)

Qualificatif 1 : Programme

*MENU
Le nom du programme appelé est identique à celui du menu indiqué pour le paramètre MENU(Menu).
nom
Indiquez le nom du programme à appeler.

Qualificatif 2 : Biblio

*LIBL
La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
*CURLIB
Le programme est recherché dans la bibliothèque en cours du travail. Si celle-ci n'est pas précisée, QGPL est prise par défaut.
nom
Désignez le nom de la bibliothèque dans laquelle figure le programme.

Fichier source (SRCFILE)

Indique le fichier source contenant les instructions source de description du menu.

Qualificatif 1 : Fichier source

QMNUSRC
Le fichier source QMNUSRC contient les instructions source de description du menu.
nom
Indiquez le nom du fichier source contenant les instructions source de description du menu.

Qualificatif 2 : Biblio

*LIBL
La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
*CURLIB
Le fichier source est recherché dans la bibliothèque en cours du travail. Si celle-ci n'est pas précisée, QGPL est prise par défaut.
nom
Indiquez le nom de la bibliothèque contenant le fichier source.

Membre source (SRCMBR)

Indique le nom de membre du fichier source contenant la description du menu.

*MENU
Le nom du membre est identique à celui du menu indiqué pour le paramètre MENU (Menu).
nom
Indiquez le nom du membre du fichier source contenant la description du menu.

Options pour liste source (OPTION)

Indique les options utilisées pour la sortie générée lors de la compilation. Vous pouvez indiquer plusieurs valeurs dans l'ordre de votre choix. Si aucune valeur ou les deux valeurs de chaque groupe sont indiquées, la valeur soulignée est utilisée.

Remarque :Les valeurs soulignées de ce paramètre sont identiques aux valeurs par défaut mais elles ne sont pas réellement les valeurs par défaut. Elles ne peuvent donc pas être modifiées à l'aide de la commande CHGCMDDFT.

Option pour la liste source

*SRC ou *SOURCE
Une liste source est produite.
*NOSRC ou *NOSOURCE
Aucune liste source n'est produite, sauf si des erreurs sont détectées.

Option pour les messages de deuxième niveau

*NOSECLVL
Le message de deuxième niveau n'est pas fourni avec le message de premier niveau lorsque les messages sont imprimés en fin de liste.
*SECLVL
Le message de deuxième niveau est fourni avec le message de premier niveau lorsque les messages sont imprimés en fin de liste.

Option de création d'un fichier événements

*NOEVENTF
Le compilateur ne crée pas de fichier événements pour le produit Environnement développement coopératif (CODE).
*EVENTF
Le compilateur crée un fichier événements qui peut être utilisé par le produit CODE. Le fichier événements est créé comme membre du fichier EVFEVENT dans votre bibliothèque d'objets. Le produit CODE utilise ce fichier pour proposer un suivi d'erreurs intégré à l'éditeur CODE. Cette valeur est généralement indiquée par le produit CODE pour votre compte.

Inclure fichier (INCFILE)

Indique le fichier source contenant les membres à inclure.

Remarque :Si l'ID codé de jeu de caractères (CCSID) du fichier source est différent de celui du fichier source primaire indiqué dans le paramètre SRCFILE (Fichier source), le premier est remplacé par le second. Tous les membres source utilisés pour créer l'objet doivent avoir le même CCSID.

Valeurs uniques

*SRCFILE
Le fichier d'inclusion correspond au fichier indiqué pour le paramètre SRCFILE.

Qualificatif 1 : Inclure fichier

nom
Indiquez le nom du fichier source contenant les membres à inclure.

Qualificatif 2 : Biblio

*LIBL
La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
*CURLIB
Le fichier source est recherché dans la bibliothèque en cours du travail. Si celle-ci n'est pas précisée, QGPL est prise par défaut.
nom
Indiquez le nom de la bibliothèque contenant le fichier source.

Bibliothèque en cours (CURLIB)

Indique la bibliothèque en cours utilisée lors de l'affichage du menu.

*NOCHG
La bibliothèque en cours n'est pas modifiée pour le traitement de ce menu.
*MNULIB
La bibliothèque en cours devient la bibliothèque contenant le menu lors de son affichage.
*CRTDFT
Il n'y a pas de bibliothèque en cours lorsque le menu est affiché.
nom
Indiquez le nom de la bibliothèque à utiliser comme bibliothèque en cours lorsque le menu est affiché.

Bibliothèque de logiciel (PRDLIB)

Indique la bibliothèque de logiciel utilisée lors de l'affichage du menu.

Remarque :La bibliothèque de logiciel relative à une commande ou à un menu reste dans la liste des bibliothèques tant que la commande ou le menu est actif, sauf si cette bibliothèque est modifiée par une autre commande ou un autre menu. Une fois cette modification terminée, la bibliothèque de logiciel reprend à l'état qui lui était associé lors du démarrage de la commande ou de la bibliothèque.

*NOCHG
La bibliothèque de logiciel n'est pas modifiée lors de l'affichage du menu ; elle conserve la même valeur lorsque vous quittez celui-ci.
*NONE
La bibliothèque de logiciel figurant dans la liste des bibliothèques n'est pas utilisée lorsque le menu est affiché.
nom
Indiquez le nom de la bibliothèque de logiciel utilisée lorsque le menu est affiché.

Identificateur de caractères (CHRID)

Indique si l'identificateur de caractères (jeu de caractères graphiques et page de codes) de l'objet menu est remplacé par celui de l'unité lorsque le menu s'affiche.

Remarque :Ce paramètre n'est applicable que si vous avez indiqué *UIM pour le paramètre TYPE (Type de menu).

*DEVD
Aucune modification. Les identificateurs de caractères de l'objet menu et de l'unité sont identiques.
*JOBCCSID
L'identificateur de caractères de l'objet menu passe du CCSID du fichier source indiqué pour le paramètre SRCFILE (Fichier source) à la valeur de l'identificateur de caractères de l'unité.
*CHRIDCTL
Le système vérifie l'attribut de travail CHRIDCTL afin de déterminer la valeur spéciale (*JOBCCSID ou *DEVD) à indiquer au paramètre CHRID de ce menu.

Remplacer le menu (REPLACE)

Indique si un menu existant de même nom doit être remplacé.

Remarque :Le menu ne peut pas être remplacé s'il est en cours d'utilisation par ce travail ou un autre.

*YES
Le menu existant est transféré dans la bibliothèque système QRPLOBJ et remplacé par le nouveau menu.
*NO
Le menu existant n'est pas remplacé.

Texte 'descriptif' (TEXT)

Texte descriptif associé au menu.

*SRCMBRTXT
Le texte du menu est obtenu à partir du texte associé au membre du fichier source. Notez que cette valeur spéciale permet d'extraire le texte du membre du fichier source uniquement si le menu est de type *UIM. Pour les autres types de menu, il n'y a pas de texte descriptif.
*BLANK
Aucun texte descriptif n'est associé au menu.
valeur-alphanumérique
Indiquez, entre apostrophes, un texte de 50 caractères au maximum.

Droits (AUT)

Indique les droits que vous accordez aux utilisateurs qui n'ont pas de droits spécifiques sur l'objet, qui ne figurent pas sur une liste d'autorisation ou dont le profil de groupe ou les profils du groupe supplémentaire ne disposent pas de droits spécifiques sur l'objet.

*LIBCRTAUT
Le système détermine les droits sur l'objet à l'aide de la valeur spécifiée à l'invite Droits pour objets créés (paramètre CRTAUT) dans la commande CRTLIB pour la bibliothèque contenant l'objet à créer. Si la valeur précisée au paramètre CRTAUT est modifiée, la nouvelle valeur n'affecte pas les objets existants.
*CHANGE
L'utilisateur peut effectuer toutes les opérations sur l'objet, à l'exception de celles réservées au propriétaire ou contrôlées par les droits d'existence de l'objet (*OBJEXIST) et de gestion de l'objet (*OBJMGT). L'utilisateur peut réaliser des fonctions de base sur l'objet et le modifier. Le droit *CHANGE fournit le droit d'opération sur l'objet (*OBJOPR) ainsi que les droits sur toutes les données. Si l'objet est une liste d'autorisation, vous pouvez ajouter, modifier ou supprimer des utilisateurs dans cette liste.
*ALL
L'utilisateur peut effectuer toutes les opérations, à l'exception de celles réservées au propriétaire ou soumises au droit de gestion de la liste d'autorisation (*AUTLMGT). L'utilisateur a un droit d'existence sur l'objet Il peut également effectuer des fonctions de base sur ce dernier, le modifier, définir son niveau de protection et en transférer la propriété.
*USE
L'utilisateur peut effectuer des opérations de base sur l'objet, telles que l'exécution d'un programme ou la lecture d'un fichier. Il ne peut pas le modifier. Le droit d'utilisation (*USE) fournit le droit d'opération sur l'objet (*OBJOPR) ainsi que le droit d'exécution (*EXECUTE).
*EXCLUDE
L'utilisateur n'a pas accès à l'objet.
nom
Indiquez le nom d'une liste d'autorisation permettant de déterminer les droits sur l'objet. Les droits sur l'objet précisés dans la liste sont accordés aux utilisateurs qui figurent sur cette liste. La liste d'autorisation doit exister à la création de l'objet.

Exemples

CRTMNU   MENU(ARLIB/ARPERS)  TYPE(*PGM)

Cette commande permet de créer le menu ARPERS dans la bibliothèque ARLIB. Lors de son lancement, le menu appelle un programme (également appelé ARPERS).

Messages d'erreur

Messages *ESCAPE

CPF6AC3
Le menu n'a pas été créé.

© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.