Nombre de parametres

4D - Documentation   Français   English   German   Español   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant

version 5


Nombre de parametres Numérique

ParamètreTypeDescription
Cette commande ne requiert pas de paramètre
RésultatNumériqueNombre de paramètres effectivement passés

Description

Nombre de parametres retourne le nombre de paramètres passés à une méthode projet.

ATTENTION : Nombre de parametres n'a d'intérêt que dans une méthode projet appelée par une autre méthode (projet ou non). Si la méthode projet qui appelle Nombre de parametres est associée à une commande de menu, la fonction retourne 0.

Exemples

(1) Les méthodes projet de 4D acceptent que des paramètres soient optionnels, à partir de la droite. Par exemple, la méthode maMéthode(a;b;c;d) peut accepter les syntaxes suivantes :

   maMéthode ( a ; b ; c ; d )  ` Tous les paramètres sont passés
   maMéthode ( a ; b ; c )  ` Le dernier paramètre n'est pas passé
   maMéthode ( a ; b )  ` Les deux derniers paramètres ne sont pas passés
   maMéthode ( a )  ` Seul le premier paramètre est passé
   maMéthode  ` Aucun paramètre n'est passé

Si vous utilisez Nombre de parametres dans maMéthode, vous pouvez détecter le nombre de paramètres passés et effectuer des opérations différentes selon ce nombre. L'exemple suivant affiche un texte et peut soit l'insérer dans une zone de 4D Write, soit l'écrire dans un document sur disque :

      ` Méthode AJOUTER TEXTE
      ` AJOUTER TEXTE ( Texte { ; Entier long { ; Heure } } )
      ` AJOUTER TEXTE ( Texte { ; zone 4D Write { ; RéfDoc } } )

   C_TEXTE ($1)
   C_HEURE ($2)
   C_ENTIER LONG ($3)

   MESSAGE ($1)
   Si (Nombre de parametres>=3)
      ENVOYER PAQUET ($3;$1)
   Sinon
      Si (Nombre de parametres>=2)
         wr_INSERER TEXTE ($2;$1)
      Fin de si
   Fin de si

Vous pouvez ensuite appeler cette méthode de ces trois façons différentes :

   AJOUTER TEXTE (vtTexte)  ` Afficher seulement le message texte
   AJOUTER TEXTE (vtTexte;$wrZone)  ` Afficher le message texte et ajouter le texte à $wrZone
   AJOUTER TEXTE (vtTexte;0;$vhRéfDoc)  ` Afficher le message texte et l'écrire dans $vhRéfDoc

(2) Les méthodes projet de 4D acceptent un nombre variable de paramètres du même type à partir de la droite. Pour déclarer ces paramètres, vous devez utiliser des directives de compilation auxquelles vous passez ${N} en tant que variable, où N spécifie le premier des paramètres. A l'aide de Nombre de parametres, vous pouvez référencer ces paramètres dans une boucle avec la syntaxe d'indirection de paramètre. L'exemple suivant est une fonction qui retourne la valeur maximale reçue en tant que paramètre :

      ` Méthode projet Max de
      ` Max de ( Réel { ; Réel2... ; RéelN } ) -> Réel
      ` Max de ( Valeur { ; Valeur2... ; ValeurN } ) -> Valeur maximale
   
   C_REEL ($0;${1})  ` Tous les paramètres sont de type REEL ainsi que le résultat de la fonction
   $0:=${1}
   Boucle ($vlParam;2;Nombre de parametres)
      Si (${$vlParam}>$0)
         $0:=${$vlParam}
      Fin de si
   Fin de boucle

Vous pouvez alors appeler cette méthode d'une des deux manières suivantes :

   vrRésultat:=Max de (Enregistrements dans ensemble("Opération A");Enregistrements dans ensemble("Opération B"))

ou :

   vrRésultat:=Max de (r1;r2;r3;r4;r5;r6)

Référence

Commandes du thème Compilateur.


4D - Documentation   Français   English   German   Español   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant