PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Création d'une procédure
  • Sortie d'une procédure
  • Option "A la fin de l'événement contenant l'appel"
  • Renvoi d'un résultat
  • Typage de la valeur de retour
  • Attributs d'extension
  • Procédure zombie (ou obsolète)
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget iOSApple WatchCatalystUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
La déclaration d'une procédure est la même qu'il s'agisse :
Important : Il ne faut pas déclarer deux procédures avec le même nom (notamment une procédure globale et une procédure locale).
Rappel : En WLangage, il n'existe pas de distinction entre les procédures et les fonctions. Les syntaxes de déclaration et d'utilisation décrites pour les procédures sont les mêmes pour les fonctions.
Exemple
PROCÉDURE Trouve(NomFichier, Clé, Valeur)
HLitRecherche(NomFichier, Clé, Valeur)
SI HTrouve() = Vrai ALORS
RENVOYER Vrai
SINON
RENVOYER Faux
FIN
Syntaxe

Déclarer une procédure avec paramètres Masquer les détails

PROCEDURE <Nom de la procédure>(<Paramètres>) [<Attributs d'extension>] [: <Type du retour>]
<Code de la procédure>
<PROCEDURE> :
Début de déclaration de la procédure.
Remarque : Pour des raisons de lisibilité des programmes, le mot-clé PROCEDURE peut être remplacé par le mot-clé FONCTION.
<Nom de la procédure> :
Nom de la procédure à déclarer.
<Paramètres> :
Paramètres passés à la procédure. Chaque paramètre est séparé par une virgule. Pour plus de détails sur les paramètres, consultez Paramètres d'une procédure.
Versions 19 et supérieures
Si votre procédure ou fonction utilise un élément du projet (fenêtre, page, état, ...), il est possible d'obtenir la liste des éléments voulus dans la complétion. Pour cela, il suffit d'ajouter un attribut d'extension dans la déclaration des paramètres de la fonction ou de la procédure.
Nouveauté 19
Si votre procédure ou fonction utilise un élément du projet (fenêtre, page, état, ...), il est possible d'obtenir la liste des éléments voulus dans la complétion. Pour cela, il suffit d'ajouter un attribut d'extension dans la déclaration des paramètres de la fonction ou de la procédure.
Si votre procédure ou fonction utilise un élément du projet (fenêtre, page, état, ...), il est possible d'obtenir la liste des éléments voulus dans la complétion. Pour cela, il suffit d'ajouter un attribut d'extension dans la déclaration des paramètres de la fonction ou de la procédure.
<Attributs d'extension> :
Versions 23 et supérieures
Attributs d'extension permettant de définir des options de gestion de l'éditeur de code. Pour plus de détails sur les attributs d'extension disponibles consultez les remarques.
Nouveauté 23
Attributs d'extension permettant de définir des options de gestion de l'éditeur de code. Pour plus de détails sur les attributs d'extension disponibles consultez les remarques.
Attributs d'extension permettant de définir des options de gestion de l'éditeur de code. Pour plus de détails sur les attributs d'extension disponibles consultez les remarques.
<Type du retour> :
Versions 18 et supérieures
Type de la valeur renvoyée par la procédure. Ce type peut correspondre à un type simple (entier, réel, chaîne, ...) ou structuré (structure, objet, ...).
Cette information permet de s'assurer que la procédure a toujours le même type de valeur en retour. La valeur renvoyée sera toujours convertie dans le type spécifié.
Par exemple, si le type de retour est "Entier", si la valeur renvoyée est une chaîne, la chaîne sera automatiquement convertie en entier.
Nouveauté 18
Type de la valeur renvoyée par la procédure. Ce type peut correspondre à un type simple (entier, réel, chaîne, ...) ou structuré (structure, objet, ...).
Cette information permet de s'assurer que la procédure a toujours le même type de valeur en retour. La valeur renvoyée sera toujours convertie dans le type spécifié.
Par exemple, si le type de retour est "Entier", si la valeur renvoyée est une chaîne, la chaîne sera automatiquement convertie en entier.
Type de la valeur renvoyée par la procédure. Ce type peut correspondre à un type simple (entier, réel, chaîne, ...) ou structuré (structure, objet, ...).
Cette information permet de s'assurer que la procédure a toujours le même type de valeur en retour. La valeur renvoyée sera toujours convertie dans le type spécifié.
Par exemple, si le type de retour est "Entier", si la valeur renvoyée est une chaîne, la chaîne sera automatiquement convertie en entier.
<Code de la procédure> :
Code WLangage de la procédure à déclarer.

Déclarer une procédure sans paramètre Masquer les détails

PROCEDURE <Nom de la procédure>()  [<Attributs d'extension>] [: <Type du retour>]
<Code de la procédure>
<PROCEDURE> :
Début de déclaration de la procédure.
Remarque : Pour des raisons de lisibilité des programmes, le mot-clé PROCEDURE peut être remplacé par le mot-clé FONCTION.
<Nom de la procédure> :
Nom de la procédure à déclarer.
<Attributs d'extension> :
Versions 23 et supérieures
Attributs d'extension permettant de définir des options de gestion de l'éditeur de code. Pour plus de détails sur les attributs d'extension disponibles consultez les remarques.
Nouveauté 23
Attributs d'extension permettant de définir des options de gestion de l'éditeur de code. Pour plus de détails sur les attributs d'extension disponibles consultez les remarques.
Attributs d'extension permettant de définir des options de gestion de l'éditeur de code. Pour plus de détails sur les attributs d'extension disponibles consultez les remarques.
<Type du retour> :
Versions 18 et supérieures
Type de la valeur renvoyée par la procédure. Ce type peut correspondre à un type simple (entier, réel, chaîne, ...) ou structuré (structure, objet, ...).
Cette information permet de s'assurer que la procédure a toujours le même type de valeur en retour. La valeur renvoyée sera toujours convertie dans le type spécifié.
Par exemple, si le type de retour est "Entier", si la valeur renvoyée est une chaîne, la chaîne sera automatiquement convertie en entier.
Nouveauté 18
Type de la valeur renvoyée par la procédure. Ce type peut correspondre à un type simple (entier, réel, chaîne, ...) ou structuré (structure, objet, ...).
Cette information permet de s'assurer que la procédure a toujours le même type de valeur en retour. La valeur renvoyée sera toujours convertie dans le type spécifié.
Par exemple, si le type de retour est "Entier", si la valeur renvoyée est une chaîne, la chaîne sera automatiquement convertie en entier.
Type de la valeur renvoyée par la procédure. Ce type peut correspondre à un type simple (entier, réel, chaîne, ...) ou structuré (structure, objet, ...).
Cette information permet de s'assurer que la procédure a toujours le même type de valeur en retour. La valeur renvoyée sera toujours convertie dans le type spécifié.
Par exemple, si le type de retour est "Entier", si la valeur renvoyée est une chaîne, la chaîne sera automatiquement convertie en entier.
<Code de la procédure> :
Code WLangage de la procédure.

Déclarer une procédure avec paramètres variables Masquer les détails

PROCEDURE <Nom de la procédure>([<Paramètres>, ]*) [<Attributs d'extension>] [: <Type du retour>]
<Code de la procédure>
<PROCEDURE> :
Début de déclaration de la procédure.
Remarque : Pour des raisons de lisibilité des programmes, le mot-clé PROCEDURE peut être remplacé par le mot-clé FONCTION.
<Nom de la procédure> :
Nom de la procédure à déclarer.
<Paramètres> :
Paramètres passés à la procédure. Chaque paramètre est séparé par une virgule.
Si le nombre de paramètres pouvant être passé à la procédure est variable, il suffit d'utiliser le signe "*". Quelques exemples :
  • Procédure pouvant recevoir entre 0 et 255 paramètres : Procédure MaProc(*).
  • Procédure pouvant recevoir entre 1 et 255 paramètres : Procédure MaProc(Param1, *).
Pour plus de détails sur les paramètres, consultez :
<Attributs d'extension> :
Versions 23 et supérieures
Attributs d'extension permettant de définir des options de gestion de l'éditeur de code. Pour plus de détails sur les attributs d'extension disponibles consultez les remarques.
Nouveauté 23
Attributs d'extension permettant de définir des options de gestion de l'éditeur de code. Pour plus de détails sur les attributs d'extension disponibles consultez les remarques.
Attributs d'extension permettant de définir des options de gestion de l'éditeur de code. Pour plus de détails sur les attributs d'extension disponibles consultez les remarques.
<Type du retour> :
Versions 18 et supérieures
Type de la valeur renvoyée par la procédure. Ce type peut correspondre à un type simple (entier, réel, chaîne, ...) ou structuré (structure, objet, ...).
Cette information permet de s'assurer que la procédure a toujours le même type de valeur en retour. La valeur renvoyée sera toujours convertie dans le type spécifié.
Par exemple, si le type de retour est "Entier", si la valeur renvoyée est une chaîne, la chaîne sera automatiquement convertie en entier.
Nouveauté 18
Type de la valeur renvoyée par la procédure. Ce type peut correspondre à un type simple (entier, réel, chaîne, ...) ou structuré (structure, objet, ...).
Cette information permet de s'assurer que la procédure a toujours le même type de valeur en retour. La valeur renvoyée sera toujours convertie dans le type spécifié.
Par exemple, si le type de retour est "Entier", si la valeur renvoyée est une chaîne, la chaîne sera automatiquement convertie en entier.
Type de la valeur renvoyée par la procédure. Ce type peut correspondre à un type simple (entier, réel, chaîne, ...) ou structuré (structure, objet, ...).
Cette information permet de s'assurer que la procédure a toujours le même type de valeur en retour. La valeur renvoyée sera toujours convertie dans le type spécifié.
Par exemple, si le type de retour est "Entier", si la valeur renvoyée est une chaîne, la chaîne sera automatiquement convertie en entier.
<Code de la procédure> :
Code WLangage de la procédure à déclarer.
Remarques

Création d'une procédure

Pour plus de détails sur la création d'une procédure globale, consultez Procédures globales.
Pour plus de détails sur la création d'une procédure locale, consultez Procédures locales.

Sortie d'une procédure

Pour forcer la sortie d'une procédure, utilisez le mot-clé RETOUR. Dans la procédure, tous les traitements suivant le mot-clé RETOUR ne sont pas exécutés.
Par exemple :
PROCÉDURE Calcul(Dividende)
SI Dividende = 0 ALORS
Erreur("Division par 0 impossible")
RETOUR
SINON
...
FIN
Remarques :
  • Si la procédure renvoie un résultat, utilisez le mot-clé RENVOYER.
  • Il n'est pas possible d'utiliser les mot-clés RETOUR et RENVOYER dans le même traitement.

Option "A la fin de l'événement contenant l'appel"

Les procédures avec l'option "A la fin de l'événement contenant l'appel" appelées depuis une procédure de callback (par exemple procédures utilisées par les fonctions fListeFichier, Evénement, ...) sont exécutées à la fin de chaque appel de la callback.
Exemple :
// -----------------
// cas normal
// -----------------
Clic de bouton
// début du code du clic de bouton
Proc1
// début du code de Procédure1
Proc2
// début du code de Procédure2

Appel de Procédure FinEvénément
// fin du code de Proc2
// fin du code de Proc1
// fin du code du clic de bouton
Exécution de Procédure FinEvénément
// -------------------
// cas callback
// -------------------
Clic de bouton
Proc1
Proc2
utilisation de la fonction fListeFichier
Procédure Callback1
// début du code de Procédure Callback1
ProcCallback2
// début du code de Procédure Callback2
Appel de ProcFinEvénément
// fin du code de ProcédureCallback2
// fin du code de ProcédureCallback1
Exécution de ProcFinEvénément
ProcédureCallback1
// début du code de ProcédureCallback1
ProcédureCallback2
// début du code de ProcédureCallback2
Appel de ProcFinEvénément
// fin du code de ProcédureCallback2
// fin du code de ProcédureCallback1
Exécution de ProcFinEvénément

Renvoi d'un résultat

Pour retourner le résultat d'une procédure au traitement appelant, utilisez le mot-clé RENVOYER. Ce mot-clé permet de renvoyer :
  • une valeur,
  • Versions 19 et supérieures
    plusieurs valeurs.
    Nouveauté 19
    plusieurs valeurs.
    plusieurs valeurs.
Par exemple :
// Procédure renvoyant une valeur
PROCÉDURE Trouve(NomFichier, Clé, Valeur)
HLitRecherche(NomFichier, Clé, Valeur)
SI HTrouve() = Vrai ALORS
RENVOYER Vrai
SINON
RENVOYER Faux
FIN
Versions 19 et supérieures
// Procédure renvoyant plusieurs valeurs
PROCÉDURE MaProc()

// Traitement
RENVOYER (1, 2, 3)


// Code d'appel de la procédure
( x, y, z ) = MaProc()
// x vaut 1, y vaut 2, z vaut 3
Nouveauté 19
// Procédure renvoyant plusieurs valeurs
PROCÉDURE MaProc()

// Traitement
RENVOYER (1, 2, 3)


// Code d'appel de la procédure
( x, y, z ) = MaProc()
// x vaut 1, y vaut 2, z vaut 3
// Procédure renvoyant plusieurs valeurs
PROCÉDURE MaProc()

// Traitement
RENVOYER (1, 2, 3)


// Code d'appel de la procédure
( x, y, z ) = MaProc()
// x vaut 1, y vaut 2, z vaut 3
Conseil : Pour les procédures qui retournent un résultat, il est conseillé d'utiliser le mot-clé FONCTION au lieu de PROCEDURE pour faciliter la lecture du code.
Important : Il ne faut pas forcer la sortie d'une procédure qui renvoie un résultat avec le mot-clé RETOUR. En effet, l'appel de la procédure attend un compte-rendu qui ne serait pas retourné en cas de sortie forcée de la procédure.
Versions 18 et supérieures

Typage de la valeur de retour

Pour indiquer le type de la valeur de retour, il suffit de préciser ce type (précédé du caractère ':') lors de la déclaration de la procédure. Par exemple :
PROCÉDURE Calcul() : entier

SI MonExpression = Vrai ALORS
RENVOYER "1"  // La chaîne "1" sera convertie en entier
SINON
RENVOYER 0
FIN
Versions 19 et supérieures
Cas des valeurs de retour multiples
Il est possible de typer les valeurs de retour à une procédure. La syntaxe est la suivante :
PROCEDURE NomProcédure() : ([<Type valeur 1>, [<Type valeur 2>, ... , [<Type valeur N>]]])
Remarque : Il n'est pas obligatoire de typer toutes les valeurs de retour. Pour ne pas typer une des valeurs de retour, il suffit d'omettre le type ou d'utiliser le caractère '?'.
Exemple :
PROCÉDURE Nom_Procédure() : (chaîne,,chaîne)

RENVOYER (1,2,3)

PROCÉDURE Nom_Procédure() : (chaîne,?,chaîne)

RENVOYER (1,2,3)
Le typage des valeurs de retour est disponible à partir de la version 190040.
Nouveauté 19
Cas des valeurs de retour multiples
Il est possible de typer les valeurs de retour à une procédure. La syntaxe est la suivante :
PROCEDURE NomProcédure() : ([<Type valeur 1>, [<Type valeur 2>, ... , [<Type valeur N>]]])
Remarque : Il n'est pas obligatoire de typer toutes les valeurs de retour. Pour ne pas typer une des valeurs de retour, il suffit d'omettre le type ou d'utiliser le caractère '?'.
Exemple :
PROCÉDURE Nom_Procédure() : (chaîne,,chaîne)

RENVOYER (1,2,3)

PROCÉDURE Nom_Procédure() : (chaîne,?,chaîne)

RENVOYER (1,2,3)
Le typage des valeurs de retour est disponible à partir de la version 190040.
Cas des valeurs de retour multiples
Il est possible de typer les valeurs de retour à une procédure. La syntaxe est la suivante :
PROCEDURE NomProcédure() : ([<Type valeur 1>, [<Type valeur 2>, ... , [<Type valeur N>]]])
Remarque : Il n'est pas obligatoire de typer toutes les valeurs de retour. Pour ne pas typer une des valeurs de retour, il suffit d'omettre le type ou d'utiliser le caractère '?'.
Exemple :
PROCÉDURE Nom_Procédure() : (chaîne,,chaîne)

RENVOYER (1,2,3)

PROCÉDURE Nom_Procédure() : (chaîne,?,chaîne)

RENVOYER (1,2,3)
Le typage des valeurs de retour est disponible à partir de la version 190040.
Les types de retour autorisés sont les suivants :
TypesVérifications effectuées lors de la compilationVérifications/Actions réalisées en exécution
booléenConversions automatiques du WLangage
entier sans signeConversions automatiques du WLangage
entier sans signe sur 8 octetsConversions automatiques du WLangage
entierConversions automatiques du WLangage
entier sur 8 octetsConversions automatiques du WLangage
entier systèmeConversions automatiques du WLangage
monétaireConversions automatiques du WLangage
numériqueConversions automatiques du WLangage
réelConversions automatiques du WLangage
réel sur 4 octetsConversions automatiques du WLangage
caractèreConversions automatiques du WLangage
chaîneConversions automatiques du WLangage
chaîne ANSISeules les chaînes sans taille sont autoriséesConversions automatiques du WLangage
chaîne UNICODESeules les chaînes sans taille sont autoriséesConversions automatiques du WLangage
bufferSeules les chaînes sans taille sont autoriséesConversions automatiques du WLangage
dateConversions automatiques du WLangage
heureConversions automatiques du WLangage
dateheureConversions automatiques du WLangage
duréeConversions automatiques du WLangage
procédureSeuls les types Procédure sont autorisésSeuls les types Procédure sont autorisés
policeSeuls les types Police sont autorisésSeuls les types Police sont autorisés
<énumération>
<combinaison>
<classe>
  • "dynamique" n'est pas autorisé
  • Les classes doivent être corrélées
Conversions autorisées uniquement
<structure>
  • "dynamique" n'est pas autorisé
  • les structures doivent être les mêmes.
Les structures doivent être les mêmes.
<type avancé>
  • "dynamique" pas autorisé
  • Les types avancés doivent être les mêmes.
Les types avancés doivent être les mêmes.
<classe .NET>"dynamique" pas autorisé
tableau
  • "dynamique" pas autorisé
  • Vérification du type des éléments
  • Vérification du nombre de dimensions
  • Vérification du type des éléments
  • Vérification du nombre de dimensions si les dimensions sont fournies,
  • Vérification de chaque dimension
tableau associatifVérification du type des élémentsVérification du type des éléments
pileVérification du type des élémentsVérification du type des éléments
fileVérification du type des élémentsVérification du type des éléments
listeVérification du type des élémentsVérification du type des éléments
Nouveauté 18

Typage de la valeur de retour

Pour indiquer le type de la valeur de retour, il suffit de préciser ce type (précédé du caractère ':') lors de la déclaration de la procédure. Par exemple :
PROCÉDURE Calcul() : entier

SI MonExpression = Vrai ALORS
RENVOYER "1"  // La chaîne "1" sera convertie en entier
SINON
RENVOYER 0
FIN
Versions 19 et supérieures
Cas des valeurs de retour multiples
Il est possible de typer les valeurs de retour à une procédure. La syntaxe est la suivante :
PROCEDURE NomProcédure() : ([<Type valeur 1>, [<Type valeur 2>, ... , [<Type valeur N>]]])
Remarque : Il n'est pas obligatoire de typer toutes les valeurs de retour. Pour ne pas typer une des valeurs de retour, il suffit d'omettre le type ou d'utiliser le caractère '?'.
Exemple :
PROCÉDURE Nom_Procédure() : (chaîne,,chaîne)

RENVOYER (1,2,3)

PROCÉDURE Nom_Procédure() : (chaîne,?,chaîne)

RENVOYER (1,2,3)
Le typage des valeurs de retour est disponible à partir de la version 190040.
Nouveauté 19
Cas des valeurs de retour multiples
Il est possible de typer les valeurs de retour à une procédure. La syntaxe est la suivante :
PROCEDURE NomProcédure() : ([<Type valeur 1>, [<Type valeur 2>, ... , [<Type valeur N>]]])
Remarque : Il n'est pas obligatoire de typer toutes les valeurs de retour. Pour ne pas typer une des valeurs de retour, il suffit d'omettre le type ou d'utiliser le caractère '?'.
Exemple :
PROCÉDURE Nom_Procédure() : (chaîne,,chaîne)

RENVOYER (1,2,3)

PROCÉDURE Nom_Procédure() : (chaîne,?,chaîne)

RENVOYER (1,2,3)
Le typage des valeurs de retour est disponible à partir de la version 190040.
Cas des valeurs de retour multiples
Il est possible de typer les valeurs de retour à une procédure. La syntaxe est la suivante :
PROCEDURE NomProcédure() : ([<Type valeur 1>, [<Type valeur 2>, ... , [<Type valeur N>]]])
Remarque : Il n'est pas obligatoire de typer toutes les valeurs de retour. Pour ne pas typer une des valeurs de retour, il suffit d'omettre le type ou d'utiliser le caractère '?'.
Exemple :
PROCÉDURE Nom_Procédure() : (chaîne,,chaîne)

RENVOYER (1,2,3)

PROCÉDURE Nom_Procédure() : (chaîne,?,chaîne)

RENVOYER (1,2,3)
Le typage des valeurs de retour est disponible à partir de la version 190040.
Les types de retour autorisés sont les suivants :
TypesVérifications effectuées lors de la compilationVérifications/Actions réalisées en exécution
booléenConversions automatiques du WLangage
entier sans signeConversions automatiques du WLangage
entier sans signe sur 8 octetsConversions automatiques du WLangage
entierConversions automatiques du WLangage
entier sur 8 octetsConversions automatiques du WLangage
entier systèmeConversions automatiques du WLangage
monétaireConversions automatiques du WLangage
numériqueConversions automatiques du WLangage
réelConversions automatiques du WLangage
réel sur 4 octetsConversions automatiques du WLangage
caractèreConversions automatiques du WLangage
chaîneConversions automatiques du WLangage
chaîne ANSISeules les chaînes sans taille sont autoriséesConversions automatiques du WLangage
chaîne UNICODESeules les chaînes sans taille sont autoriséesConversions automatiques du WLangage
bufferSeules les chaînes sans taille sont autoriséesConversions automatiques du WLangage
dateConversions automatiques du WLangage
heureConversions automatiques du WLangage
dateheureConversions automatiques du WLangage
duréeConversions automatiques du WLangage
procédureSeuls les types Procédure sont autorisésSeuls les types Procédure sont autorisés
policeSeuls les types Police sont autorisésSeuls les types Police sont autorisés
<énumération>
<combinaison>
<classe>
  • "dynamique" n'est pas autorisé
  • Les classes doivent être corrélées
Conversions autorisées uniquement
<structure>
  • "dynamique" n'est pas autorisé
  • les structures doivent être les mêmes.
Les structures doivent être les mêmes.
<type avancé>
  • "dynamique" pas autorisé
  • Les types avancés doivent être les mêmes.
Les types avancés doivent être les mêmes.
<classe .NET>"dynamique" pas autorisé
tableau
  • "dynamique" pas autorisé
  • Vérification du type des éléments
  • Vérification du nombre de dimensions
  • Vérification du type des éléments
  • Vérification du nombre de dimensions si les dimensions sont fournies,
  • Vérification de chaque dimension
tableau associatifVérification du type des élémentsVérification du type des éléments
pileVérification du type des élémentsVérification du type des éléments
fileVérification du type des élémentsVérification du type des éléments
listeVérification du type des élémentsVérification du type des éléments

Typage de la valeur de retour

Pour indiquer le type de la valeur de retour, il suffit de préciser ce type (précédé du caractère ':') lors de la déclaration de la procédure. Par exemple :
PROCÉDURE Calcul() : entier

SI MonExpression = Vrai ALORS
RENVOYER "1"  // La chaîne "1" sera convertie en entier
SINON
RENVOYER 0
FIN
Versions 19 et supérieures
Cas des valeurs de retour multiples
Il est possible de typer les valeurs de retour à une procédure. La syntaxe est la suivante :
PROCEDURE NomProcédure() : ([<Type valeur 1>, [<Type valeur 2>, ... , [<Type valeur N>]]])
Remarque : Il n'est pas obligatoire de typer toutes les valeurs de retour. Pour ne pas typer une des valeurs de retour, il suffit d'omettre le type ou d'utiliser le caractère '?'.
Exemple :
PROCÉDURE Nom_Procédure() : (chaîne,,chaîne)

RENVOYER (1,2,3)

PROCÉDURE Nom_Procédure() : (chaîne,?,chaîne)

RENVOYER (1,2,3)
Le typage des valeurs de retour est disponible à partir de la version 190040.
Nouveauté 19
Cas des valeurs de retour multiples
Il est possible de typer les valeurs de retour à une procédure. La syntaxe est la suivante :
PROCEDURE NomProcédure() : ([<Type valeur 1>, [<Type valeur 2>, ... , [<Type valeur N>]]])
Remarque : Il n'est pas obligatoire de typer toutes les valeurs de retour. Pour ne pas typer une des valeurs de retour, il suffit d'omettre le type ou d'utiliser le caractère '?'.
Exemple :
PROCÉDURE Nom_Procédure() : (chaîne,,chaîne)

RENVOYER (1,2,3)

PROCÉDURE Nom_Procédure() : (chaîne,?,chaîne)

RENVOYER (1,2,3)
Le typage des valeurs de retour est disponible à partir de la version 190040.
Cas des valeurs de retour multiples
Il est possible de typer les valeurs de retour à une procédure. La syntaxe est la suivante :
PROCEDURE NomProcédure() : ([<Type valeur 1>, [<Type valeur 2>, ... , [<Type valeur N>]]])
Remarque : Il n'est pas obligatoire de typer toutes les valeurs de retour. Pour ne pas typer une des valeurs de retour, il suffit d'omettre le type ou d'utiliser le caractère '?'.
Exemple :
PROCÉDURE Nom_Procédure() : (chaîne,,chaîne)

RENVOYER (1,2,3)

PROCÉDURE Nom_Procédure() : (chaîne,?,chaîne)

RENVOYER (1,2,3)
Le typage des valeurs de retour est disponible à partir de la version 190040.
Les types de retour autorisés sont les suivants :
TypesVérifications effectuées lors de la compilationVérifications/Actions réalisées en exécution
booléenConversions automatiques du WLangage
entier sans signeConversions automatiques du WLangage
entier sans signe sur 8 octetsConversions automatiques du WLangage
entierConversions automatiques du WLangage
entier sur 8 octetsConversions automatiques du WLangage
entier systèmeConversions automatiques du WLangage
monétaireConversions automatiques du WLangage
numériqueConversions automatiques du WLangage
réelConversions automatiques du WLangage
réel sur 4 octetsConversions automatiques du WLangage
caractèreConversions automatiques du WLangage
chaîneConversions automatiques du WLangage
chaîne ANSISeules les chaînes sans taille sont autoriséesConversions automatiques du WLangage
chaîne UNICODESeules les chaînes sans taille sont autoriséesConversions automatiques du WLangage
bufferSeules les chaînes sans taille sont autoriséesConversions automatiques du WLangage
dateConversions automatiques du WLangage
heureConversions automatiques du WLangage
dateheureConversions automatiques du WLangage
duréeConversions automatiques du WLangage
procédureSeuls les types Procédure sont autorisésSeuls les types Procédure sont autorisés
policeSeuls les types Police sont autorisésSeuls les types Police sont autorisés
<énumération>
<combinaison>
<classe>
  • "dynamique" n'est pas autorisé
  • Les classes doivent être corrélées
Conversions autorisées uniquement
<structure>
  • "dynamique" n'est pas autorisé
  • les structures doivent être les mêmes.
Les structures doivent être les mêmes.
<type avancé>
  • "dynamique" pas autorisé
  • Les types avancés doivent être les mêmes.
Les types avancés doivent être les mêmes.
<classe .NET>"dynamique" pas autorisé
tableau
  • "dynamique" pas autorisé
  • Vérification du type des éléments
  • Vérification du nombre de dimensions
  • Vérification du type des éléments
  • Vérification du nombre de dimensions si les dimensions sont fournies,
  • Vérification de chaque dimension
tableau associatifVérification du type des élémentsVérification du type des éléments
pileVérification du type des élémentsVérification du type des éléments
fileVérification du type des élémentsVérification du type des éléments
listeVérification du type des élémentsVérification du type des éléments
Versions 23 et supérieures

Attributs d'extension

Les attributs d'extension disponibles sont :
  • attribut d'extension de gestion des procédures zombies :
    <zombie [commentaire = "texte"]>Permet de définir une procédure obsolète (également appelée procédure zombie). Le mot-clé optionnel commentaire permet d'indiquer le texte qui sera affiché dans l'erreur de compilation associée à la procédure obsolète. Pour plus de détails, consultez Procédures zombies.
  • attribut d'extension de gestion du débogueur :
    <sans pas à pas>Permet d'indiquer que la procédure sera ignorée par le débogueur lors d'un débogage en mode "Pas à pas".
  • Versions 24 et supérieures
    attributs d'extension spécifiques aux procédures locales, globales ou internes :
    <automatique>Permet d'indiquer que cette procédure sera exécutée automatiquement après le code d'initialisation (de la fenêtre, de la page ou du projet).

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.

    Attention, cet attribut d'extension ne peut pas être appliqué à une procédure interne.
    <fin traitement>Permet d'indiquer que cette procédure sera exécutée lorsque le traitement contenant l'appel de la procédure sera fini.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <fin évènement>Permet d'indiquer que cette procédure sera exécutée lorsque le traitement contenant l'appel de la procédure sera fini. Pour plus de détails, consultez le paragraphe Option "A la fin de l'événement contenant l'appel".

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    Nouveauté 24
    attributs d'extension spécifiques aux procédures locales, globales ou internes :
    <automatique>Permet d'indiquer que cette procédure sera exécutée automatiquement après le code d'initialisation (de la fenêtre, de la page ou du projet).

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.

    Attention, cet attribut d'extension ne peut pas être appliqué à une procédure interne.
    <fin traitement>Permet d'indiquer que cette procédure sera exécutée lorsque le traitement contenant l'appel de la procédure sera fini.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <fin évènement>Permet d'indiquer que cette procédure sera exécutée lorsque le traitement contenant l'appel de la procédure sera fini. Pour plus de détails, consultez le paragraphe Option "A la fin de l'événement contenant l'appel".

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    attributs d'extension spécifiques aux procédures locales, globales ou internes :
    <automatique>Permet d'indiquer que cette procédure sera exécutée automatiquement après le code d'initialisation (de la fenêtre, de la page ou du projet).

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.

    Attention, cet attribut d'extension ne peut pas être appliqué à une procédure interne.
    <fin traitement>Permet d'indiquer que cette procédure sera exécutée lorsque le traitement contenant l'appel de la procédure sera fini.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <fin évènement>Permet d'indiquer que cette procédure sera exécutée lorsque le traitement contenant l'appel de la procédure sera fini. Pour plus de détails, consultez le paragraphe Option "A la fin de l'événement contenant l'appel".

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
  • Versions 24 et supérieures
    attribut d'extension de gestion des timers :
    <timer [=intervalle en centièmes de secondes]>Permet d'indiquer que la procédure sera exécutée dans un Timer.
    Cet attribut d'extension est équivalent à la fonction TimerSys. La répétition est automatique. La valeur optionnelle intervalle en centièmes de secondes permet d'indiquer l'intervalle de temps entre 2 répétitions :
    • Si cette valeur n'est pas précisée, il est nécessaire d'indiquer l'intervalle de temps entre 2 répétitions via l'attribut d'extension <intervalle>.
    • Si cette valeur est précisée, les valeurs des attributs d'extension <délai> et <intervalle> sont initialisées avec la valeur de l'intervalle précisée.
    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <répétition [=nombre de répétitions]>Permet d'indiquer que la procédure est appelée plusieurs fois d'affilée (répétitions). La valeur optionnelle nombre de répétitions permet d'indiquer le nombre d'appels de la procédure.
    • Si cette valeur n'est pas précisée, la répétition sera réalisée jusqu'à:
      • l'appel de la fonction FinAutomatismeProcédure.
      • la fermeture de l'élément auquel appartient la procédure (fenêtre, page, état).
      • la destruction de l'instance à laquelle appartient la procédure (pour plus de détails sur la notion d'instance, consultez l'aide sur l'Instanciation d'un objet).
      • la fin de l'application (fermeture de l'application par l'utilisateur ou utilisation de la fonction Finprogramme).
    • Si cette valeur est précisée, la procédure sera appelée autant de fois que le nombre indiqué.
    En complément, consultez l'aide sur les Procédures automatiques.
    <intervalle=durée en centième de secondes>Permet d'indiquer la durée (intervalle de temps) entre 2 appels de la procédure.
    Cet attribut d'extension doit être utilisé avec les attributs d'extension <timer> ou <répétition>. La valeur optionnelle intervalle en centièmes de secondes permet d'indiquer cet intervalle de temps.
    Si cette valeur n'est pas précisée, il est nécessaire d'indiquer cette valeur avec l'attribut d'extension <timer>.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <rappel[=type de rappel]>Permet d'indiquer, dans une procédure appelée dans un Timer, le mode de fonctionnement des appels ultérieurs. Cet attribut d'extension doit être utilisé avec l'attribut d'extension <timer>. La valeur optionnelle de cet attribut d'extension peut être:
    ignorer
    (Valeur par défaut)
    La procédure est appelée immédiatement. Il n'y a pas de délai d'attente pour l'appel de la procédure. La procédure est appelée une seule fois sans répétition.
    nouveauUn nouveau Timer est déclenché. La procédure est appelée dans ce nouveau Timer.
    Attention, le Timer précédent n'est pas arrêté. Les Timers vont donc s'accumuler en mémoire.
    relancerPermet de relancer le Timer automatiquement à la fin de la procédure. L'attribut d'extension <intervalle> permet de définir l'intervalle de temps entre chaque appel de la procédure.
    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <délai=durée en centièmes de secondes>Permet d'indiquer dans un Timer (lors du premier appel) le délai d'attente avant le démarrage de la procédure. Cet attribut d'extension doit être utilisé avec l'attribut d'extension <timer>. La valeur optionnelle délai en centièmes de secondes permet d'indiquer ce temps d'attente.
    Si cette valeur n'est pas précisée, il est nécessaire d'indiquer cette valeur lors de l'utilisation de l'attribut d'extension <timer>.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    Nouveauté 24
    attribut d'extension de gestion des timers :
    <timer [=intervalle en centièmes de secondes]>Permet d'indiquer que la procédure sera exécutée dans un Timer.
    Cet attribut d'extension est équivalent à la fonction TimerSys. La répétition est automatique. La valeur optionnelle intervalle en centièmes de secondes permet d'indiquer l'intervalle de temps entre 2 répétitions :
    • Si cette valeur n'est pas précisée, il est nécessaire d'indiquer l'intervalle de temps entre 2 répétitions via l'attribut d'extension <intervalle>.
    • Si cette valeur est précisée, les valeurs des attributs d'extension <délai> et <intervalle> sont initialisées avec la valeur de l'intervalle précisée.
    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <répétition [=nombre de répétitions]>Permet d'indiquer que la procédure est appelée plusieurs fois d'affilée (répétitions). La valeur optionnelle nombre de répétitions permet d'indiquer le nombre d'appels de la procédure.
    • Si cette valeur n'est pas précisée, la répétition sera réalisée jusqu'à:
      • l'appel de la fonction FinAutomatismeProcédure.
      • la fermeture de l'élément auquel appartient la procédure (fenêtre, page, état).
      • la destruction de l'instance à laquelle appartient la procédure (pour plus de détails sur la notion d'instance, consultez l'aide sur l'Instanciation d'un objet).
      • la fin de l'application (fermeture de l'application par l'utilisateur ou utilisation de la fonction Finprogramme).
    • Si cette valeur est précisée, la procédure sera appelée autant de fois que le nombre indiqué.
    En complément, consultez l'aide sur les Procédures automatiques.
    <intervalle=durée en centième de secondes>Permet d'indiquer la durée (intervalle de temps) entre 2 appels de la procédure.
    Cet attribut d'extension doit être utilisé avec les attributs d'extension <timer> ou <répétition>. La valeur optionnelle intervalle en centièmes de secondes permet d'indiquer cet intervalle de temps.
    Si cette valeur n'est pas précisée, il est nécessaire d'indiquer cette valeur avec l'attribut d'extension <timer>.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <rappel[=type de rappel]>Permet d'indiquer, dans une procédure appelée dans un Timer, le mode de fonctionnement des appels ultérieurs. Cet attribut d'extension doit être utilisé avec l'attribut d'extension <timer>. La valeur optionnelle de cet attribut d'extension peut être:
    ignorer
    (Valeur par défaut)
    La procédure est appelée immédiatement. Il n'y a pas de délai d'attente pour l'appel de la procédure. La procédure est appelée une seule fois sans répétition.
    nouveauUn nouveau Timer est déclenché. La procédure est appelée dans ce nouveau Timer.
    Attention, le Timer précédent n'est pas arrêté. Les Timers vont donc s'accumuler en mémoire.
    relancerPermet de relancer le Timer automatiquement à la fin de la procédure. L'attribut d'extension <intervalle> permet de définir l'intervalle de temps entre chaque appel de la procédure.
    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <délai=durée en centièmes de secondes>Permet d'indiquer dans un Timer (lors du premier appel) le délai d'attente avant le démarrage de la procédure. Cet attribut d'extension doit être utilisé avec l'attribut d'extension <timer>. La valeur optionnelle délai en centièmes de secondes permet d'indiquer ce temps d'attente.
    Si cette valeur n'est pas précisée, il est nécessaire d'indiquer cette valeur lors de l'utilisation de l'attribut d'extension <timer>.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    attribut d'extension de gestion des timers :
    <timer [=intervalle en centièmes de secondes]>Permet d'indiquer que la procédure sera exécutée dans un Timer.
    Cet attribut d'extension est équivalent à la fonction TimerSys. La répétition est automatique. La valeur optionnelle intervalle en centièmes de secondes permet d'indiquer l'intervalle de temps entre 2 répétitions :
    • Si cette valeur n'est pas précisée, il est nécessaire d'indiquer l'intervalle de temps entre 2 répétitions via l'attribut d'extension <intervalle>.
    • Si cette valeur est précisée, les valeurs des attributs d'extension <délai> et <intervalle> sont initialisées avec la valeur de l'intervalle précisée.
    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <répétition [=nombre de répétitions]>Permet d'indiquer que la procédure est appelée plusieurs fois d'affilée (répétitions). La valeur optionnelle nombre de répétitions permet d'indiquer le nombre d'appels de la procédure.
    • Si cette valeur n'est pas précisée, la répétition sera réalisée jusqu'à:
      • l'appel de la fonction FinAutomatismeProcédure.
      • la fermeture de l'élément auquel appartient la procédure (fenêtre, page, état).
      • la destruction de l'instance à laquelle appartient la procédure (pour plus de détails sur la notion d'instance, consultez l'aide sur l'Instanciation d'un objet).
      • la fin de l'application (fermeture de l'application par l'utilisateur ou utilisation de la fonction Finprogramme).
    • Si cette valeur est précisée, la procédure sera appelée autant de fois que le nombre indiqué.
    En complément, consultez l'aide sur les Procédures automatiques.
    <intervalle=durée en centième de secondes>Permet d'indiquer la durée (intervalle de temps) entre 2 appels de la procédure.
    Cet attribut d'extension doit être utilisé avec les attributs d'extension <timer> ou <répétition>. La valeur optionnelle intervalle en centièmes de secondes permet d'indiquer cet intervalle de temps.
    Si cette valeur n'est pas précisée, il est nécessaire d'indiquer cette valeur avec l'attribut d'extension <timer>.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <rappel[=type de rappel]>Permet d'indiquer, dans une procédure appelée dans un Timer, le mode de fonctionnement des appels ultérieurs. Cet attribut d'extension doit être utilisé avec l'attribut d'extension <timer>. La valeur optionnelle de cet attribut d'extension peut être:
    ignorer
    (Valeur par défaut)
    La procédure est appelée immédiatement. Il n'y a pas de délai d'attente pour l'appel de la procédure. La procédure est appelée une seule fois sans répétition.
    nouveauUn nouveau Timer est déclenché. La procédure est appelée dans ce nouveau Timer.
    Attention, le Timer précédent n'est pas arrêté. Les Timers vont donc s'accumuler en mémoire.
    relancerPermet de relancer le Timer automatiquement à la fin de la procédure. L'attribut d'extension <intervalle> permet de définir l'intervalle de temps entre chaque appel de la procédure.
    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <délai=durée en centièmes de secondes>Permet d'indiquer dans un Timer (lors du premier appel) le délai d'attente avant le démarrage de la procédure. Cet attribut d'extension doit être utilisé avec l'attribut d'extension <timer>. La valeur optionnelle délai en centièmes de secondes permet d'indiquer ce temps d'attente.
    Si cette valeur n'est pas précisée, il est nécessaire d'indiquer cette valeur lors de l'utilisation de l'attribut d'extension <timer>.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
  • Versions 24 et supérieures
    attribut d'extension de gestion des threads :
    <thread>Permet d'indiquer que la procédure sera exécutée dans un thread secondaire. Pour plus de détails sur les threads, consultez Gestion des threads.

    Cet attribut d'extension est incompatible avec les attributs d'extension <timer> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <thread principal>Permet d'indiquer que la procédure sera exécutée dans un thread secondaire. Pour plus de détails sur les threads, consultez Gestion des threads.

    Cet attribut d'extension est incompatible avec les attributs d'extension <timer> et <thread>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <contexte HFSQL léger>Provoque la copie immédiate d'une partie du contexte HFSQL courant.
    Seuls les répertoires où se trouvent les fichiers de données en HFSQL Classic et/ou les connexions en HFSQL Client/Serveur sont mémorisés.

    Cet attribut d'extension doit être utilisé avec l'attribut d'extension <thread>. Pour plus de détails sur la gestion des threads, consultez l'aide sur la fonction ThreadExécute.
    En complément, consultez l'aide sur les Procédures automatiques.
    <contexte HFSQL complet>Provoque la copie immédiate du contexte HFSQL courant.
    Conseillé par exemple si le thread doit tenir compte des positions en cours dans les fichiers et requêtes du contexte de l'appelant.

    Cet attribut d'extension doit être utilisé avec l'attribut d'extension <thread>. Pour plus de détails sur la gestion des threads, consultez l'aide sur la fonction ThreadExécute.

    En complément, consultez l'aide sur les Procédures automatiques.
    Nouveauté 24
    attribut d'extension de gestion des threads :
    <thread>Permet d'indiquer que la procédure sera exécutée dans un thread secondaire. Pour plus de détails sur les threads, consultez Gestion des threads.

    Cet attribut d'extension est incompatible avec les attributs d'extension <timer> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <thread principal>Permet d'indiquer que la procédure sera exécutée dans un thread secondaire. Pour plus de détails sur les threads, consultez Gestion des threads.

    Cet attribut d'extension est incompatible avec les attributs d'extension <timer> et <thread>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <contexte HFSQL léger>Provoque la copie immédiate d'une partie du contexte HFSQL courant.
    Seuls les répertoires où se trouvent les fichiers de données en HFSQL Classic et/ou les connexions en HFSQL Client/Serveur sont mémorisés.

    Cet attribut d'extension doit être utilisé avec l'attribut d'extension <thread>. Pour plus de détails sur la gestion des threads, consultez l'aide sur la fonction ThreadExécute.
    En complément, consultez l'aide sur les Procédures automatiques.
    <contexte HFSQL complet>Provoque la copie immédiate du contexte HFSQL courant.
    Conseillé par exemple si le thread doit tenir compte des positions en cours dans les fichiers et requêtes du contexte de l'appelant.

    Cet attribut d'extension doit être utilisé avec l'attribut d'extension <thread>. Pour plus de détails sur la gestion des threads, consultez l'aide sur la fonction ThreadExécute.

    En complément, consultez l'aide sur les Procédures automatiques.
    attribut d'extension de gestion des threads :
    <thread>Permet d'indiquer que la procédure sera exécutée dans un thread secondaire. Pour plus de détails sur les threads, consultez Gestion des threads.

    Cet attribut d'extension est incompatible avec les attributs d'extension <timer> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <thread principal>Permet d'indiquer que la procédure sera exécutée dans un thread secondaire. Pour plus de détails sur les threads, consultez Gestion des threads.

    Cet attribut d'extension est incompatible avec les attributs d'extension <timer> et <thread>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <contexte HFSQL léger>Provoque la copie immédiate d'une partie du contexte HFSQL courant.
    Seuls les répertoires où se trouvent les fichiers de données en HFSQL Classic et/ou les connexions en HFSQL Client/Serveur sont mémorisés.

    Cet attribut d'extension doit être utilisé avec l'attribut d'extension <thread>. Pour plus de détails sur la gestion des threads, consultez l'aide sur la fonction ThreadExécute.
    En complément, consultez l'aide sur les Procédures automatiques.
    <contexte HFSQL complet>Provoque la copie immédiate du contexte HFSQL courant.
    Conseillé par exemple si le thread doit tenir compte des positions en cours dans les fichiers et requêtes du contexte de l'appelant.

    Cet attribut d'extension doit être utilisé avec l'attribut d'extension <thread>. Pour plus de détails sur la gestion des threads, consultez l'aide sur la fonction ThreadExécute.

    En complément, consultez l'aide sur les Procédures automatiques.
Nouveauté 23

Attributs d'extension

Les attributs d'extension disponibles sont :
  • attribut d'extension de gestion des procédures zombies :
    <zombie [commentaire = "texte"]>Permet de définir une procédure obsolète (également appelée procédure zombie). Le mot-clé optionnel commentaire permet d'indiquer le texte qui sera affiché dans l'erreur de compilation associée à la procédure obsolète. Pour plus de détails, consultez Procédures zombies.
  • attribut d'extension de gestion du débogueur :
    <sans pas à pas>Permet d'indiquer que la procédure sera ignorée par le débogueur lors d'un débogage en mode "Pas à pas".
  • Versions 24 et supérieures
    attributs d'extension spécifiques aux procédures locales, globales ou internes :
    <automatique>Permet d'indiquer que cette procédure sera exécutée automatiquement après le code d'initialisation (de la fenêtre, de la page ou du projet).

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.

    Attention, cet attribut d'extension ne peut pas être appliqué à une procédure interne.
    <fin traitement>Permet d'indiquer que cette procédure sera exécutée lorsque le traitement contenant l'appel de la procédure sera fini.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <fin évènement>Permet d'indiquer que cette procédure sera exécutée lorsque le traitement contenant l'appel de la procédure sera fini. Pour plus de détails, consultez le paragraphe Option "A la fin de l'événement contenant l'appel".

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    Nouveauté 24
    attributs d'extension spécifiques aux procédures locales, globales ou internes :
    <automatique>Permet d'indiquer que cette procédure sera exécutée automatiquement après le code d'initialisation (de la fenêtre, de la page ou du projet).

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.

    Attention, cet attribut d'extension ne peut pas être appliqué à une procédure interne.
    <fin traitement>Permet d'indiquer que cette procédure sera exécutée lorsque le traitement contenant l'appel de la procédure sera fini.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <fin évènement>Permet d'indiquer que cette procédure sera exécutée lorsque le traitement contenant l'appel de la procédure sera fini. Pour plus de détails, consultez le paragraphe Option "A la fin de l'événement contenant l'appel".

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    attributs d'extension spécifiques aux procédures locales, globales ou internes :
    <automatique>Permet d'indiquer que cette procédure sera exécutée automatiquement après le code d'initialisation (de la fenêtre, de la page ou du projet).

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.

    Attention, cet attribut d'extension ne peut pas être appliqué à une procédure interne.
    <fin traitement>Permet d'indiquer que cette procédure sera exécutée lorsque le traitement contenant l'appel de la procédure sera fini.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <fin évènement>Permet d'indiquer que cette procédure sera exécutée lorsque le traitement contenant l'appel de la procédure sera fini. Pour plus de détails, consultez le paragraphe Option "A la fin de l'événement contenant l'appel".

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
  • Versions 24 et supérieures
    attribut d'extension de gestion des timers :
    <timer [=intervalle en centièmes de secondes]>Permet d'indiquer que la procédure sera exécutée dans un Timer.
    Cet attribut d'extension est équivalent à la fonction TimerSys. La répétition est automatique. La valeur optionnelle intervalle en centièmes de secondes permet d'indiquer l'intervalle de temps entre 2 répétitions :
    • Si cette valeur n'est pas précisée, il est nécessaire d'indiquer l'intervalle de temps entre 2 répétitions via l'attribut d'extension <intervalle>.
    • Si cette valeur est précisée, les valeurs des attributs d'extension <délai> et <intervalle> sont initialisées avec la valeur de l'intervalle précisée.
    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <répétition [=nombre de répétitions]>Permet d'indiquer que la procédure est appelée plusieurs fois d'affilée (répétitions). La valeur optionnelle nombre de répétitions permet d'indiquer le nombre d'appels de la procédure.
    • Si cette valeur n'est pas précisée, la répétition sera réalisée jusqu'à:
      • l'appel de la fonction FinAutomatismeProcédure.
      • la fermeture de l'élément auquel appartient la procédure (fenêtre, page, état).
      • la destruction de l'instance à laquelle appartient la procédure (pour plus de détails sur la notion d'instance, consultez l'aide sur l'Instanciation d'un objet).
      • la fin de l'application (fermeture de l'application par l'utilisateur ou utilisation de la fonction Finprogramme).
    • Si cette valeur est précisée, la procédure sera appelée autant de fois que le nombre indiqué.
    En complément, consultez l'aide sur les Procédures automatiques.
    <intervalle=durée en centième de secondes>Permet d'indiquer la durée (intervalle de temps) entre 2 appels de la procédure.
    Cet attribut d'extension doit être utilisé avec les attributs d'extension <timer> ou <répétition>. La valeur optionnelle intervalle en centièmes de secondes permet d'indiquer cet intervalle de temps.
    Si cette valeur n'est pas précisée, il est nécessaire d'indiquer cette valeur avec l'attribut d'extension <timer>.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <rappel[=type de rappel]>Permet d'indiquer, dans une procédure appelée dans un Timer, le mode de fonctionnement des appels ultérieurs. Cet attribut d'extension doit être utilisé avec l'attribut d'extension <timer>. La valeur optionnelle de cet attribut d'extension peut être:
    ignorer
    (Valeur par défaut)
    La procédure est appelée immédiatement. Il n'y a pas de délai d'attente pour l'appel de la procédure. La procédure est appelée une seule fois sans répétition.
    nouveauUn nouveau Timer est déclenché. La procédure est appelée dans ce nouveau Timer.
    Attention, le Timer précédent n'est pas arrêté. Les Timers vont donc s'accumuler en mémoire.
    relancerPermet de relancer le Timer automatiquement à la fin de la procédure. L'attribut d'extension <intervalle> permet de définir l'intervalle de temps entre chaque appel de la procédure.
    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <délai=durée en centièmes de secondes>Permet d'indiquer dans un Timer (lors du premier appel) le délai d'attente avant le démarrage de la procédure. Cet attribut d'extension doit être utilisé avec l'attribut d'extension <timer>. La valeur optionnelle délai en centièmes de secondes permet d'indiquer ce temps d'attente.
    Si cette valeur n'est pas précisée, il est nécessaire d'indiquer cette valeur lors de l'utilisation de l'attribut d'extension <timer>.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    Nouveauté 24
    attribut d'extension de gestion des timers :
    <timer [=intervalle en centièmes de secondes]>Permet d'indiquer que la procédure sera exécutée dans un Timer.
    Cet attribut d'extension est équivalent à la fonction TimerSys. La répétition est automatique. La valeur optionnelle intervalle en centièmes de secondes permet d'indiquer l'intervalle de temps entre 2 répétitions :
    • Si cette valeur n'est pas précisée, il est nécessaire d'indiquer l'intervalle de temps entre 2 répétitions via l'attribut d'extension <intervalle>.
    • Si cette valeur est précisée, les valeurs des attributs d'extension <délai> et <intervalle> sont initialisées avec la valeur de l'intervalle précisée.
    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <répétition [=nombre de répétitions]>Permet d'indiquer que la procédure est appelée plusieurs fois d'affilée (répétitions). La valeur optionnelle nombre de répétitions permet d'indiquer le nombre d'appels de la procédure.
    • Si cette valeur n'est pas précisée, la répétition sera réalisée jusqu'à:
      • l'appel de la fonction FinAutomatismeProcédure.
      • la fermeture de l'élément auquel appartient la procédure (fenêtre, page, état).
      • la destruction de l'instance à laquelle appartient la procédure (pour plus de détails sur la notion d'instance, consultez l'aide sur l'Instanciation d'un objet).
      • la fin de l'application (fermeture de l'application par l'utilisateur ou utilisation de la fonction Finprogramme).
    • Si cette valeur est précisée, la procédure sera appelée autant de fois que le nombre indiqué.
    En complément, consultez l'aide sur les Procédures automatiques.
    <intervalle=durée en centième de secondes>Permet d'indiquer la durée (intervalle de temps) entre 2 appels de la procédure.
    Cet attribut d'extension doit être utilisé avec les attributs d'extension <timer> ou <répétition>. La valeur optionnelle intervalle en centièmes de secondes permet d'indiquer cet intervalle de temps.
    Si cette valeur n'est pas précisée, il est nécessaire d'indiquer cette valeur avec l'attribut d'extension <timer>.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <rappel[=type de rappel]>Permet d'indiquer, dans une procédure appelée dans un Timer, le mode de fonctionnement des appels ultérieurs. Cet attribut d'extension doit être utilisé avec l'attribut d'extension <timer>. La valeur optionnelle de cet attribut d'extension peut être:
    ignorer
    (Valeur par défaut)
    La procédure est appelée immédiatement. Il n'y a pas de délai d'attente pour l'appel de la procédure. La procédure est appelée une seule fois sans répétition.
    nouveauUn nouveau Timer est déclenché. La procédure est appelée dans ce nouveau Timer.
    Attention, le Timer précédent n'est pas arrêté. Les Timers vont donc s'accumuler en mémoire.
    relancerPermet de relancer le Timer automatiquement à la fin de la procédure. L'attribut d'extension <intervalle> permet de définir l'intervalle de temps entre chaque appel de la procédure.
    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <délai=durée en centièmes de secondes>Permet d'indiquer dans un Timer (lors du premier appel) le délai d'attente avant le démarrage de la procédure. Cet attribut d'extension doit être utilisé avec l'attribut d'extension <timer>. La valeur optionnelle délai en centièmes de secondes permet d'indiquer ce temps d'attente.
    Si cette valeur n'est pas précisée, il est nécessaire d'indiquer cette valeur lors de l'utilisation de l'attribut d'extension <timer>.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    attribut d'extension de gestion des timers :
    <timer [=intervalle en centièmes de secondes]>Permet d'indiquer que la procédure sera exécutée dans un Timer.
    Cet attribut d'extension est équivalent à la fonction TimerSys. La répétition est automatique. La valeur optionnelle intervalle en centièmes de secondes permet d'indiquer l'intervalle de temps entre 2 répétitions :
    • Si cette valeur n'est pas précisée, il est nécessaire d'indiquer l'intervalle de temps entre 2 répétitions via l'attribut d'extension <intervalle>.
    • Si cette valeur est précisée, les valeurs des attributs d'extension <délai> et <intervalle> sont initialisées avec la valeur de l'intervalle précisée.
    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <répétition [=nombre de répétitions]>Permet d'indiquer que la procédure est appelée plusieurs fois d'affilée (répétitions). La valeur optionnelle nombre de répétitions permet d'indiquer le nombre d'appels de la procédure.
    • Si cette valeur n'est pas précisée, la répétition sera réalisée jusqu'à:
      • l'appel de la fonction FinAutomatismeProcédure.
      • la fermeture de l'élément auquel appartient la procédure (fenêtre, page, état).
      • la destruction de l'instance à laquelle appartient la procédure (pour plus de détails sur la notion d'instance, consultez l'aide sur l'Instanciation d'un objet).
      • la fin de l'application (fermeture de l'application par l'utilisateur ou utilisation de la fonction Finprogramme).
    • Si cette valeur est précisée, la procédure sera appelée autant de fois que le nombre indiqué.
    En complément, consultez l'aide sur les Procédures automatiques.
    <intervalle=durée en centième de secondes>Permet d'indiquer la durée (intervalle de temps) entre 2 appels de la procédure.
    Cet attribut d'extension doit être utilisé avec les attributs d'extension <timer> ou <répétition>. La valeur optionnelle intervalle en centièmes de secondes permet d'indiquer cet intervalle de temps.
    Si cette valeur n'est pas précisée, il est nécessaire d'indiquer cette valeur avec l'attribut d'extension <timer>.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <rappel[=type de rappel]>Permet d'indiquer, dans une procédure appelée dans un Timer, le mode de fonctionnement des appels ultérieurs. Cet attribut d'extension doit être utilisé avec l'attribut d'extension <timer>. La valeur optionnelle de cet attribut d'extension peut être:
    ignorer
    (Valeur par défaut)
    La procédure est appelée immédiatement. Il n'y a pas de délai d'attente pour l'appel de la procédure. La procédure est appelée une seule fois sans répétition.
    nouveauUn nouveau Timer est déclenché. La procédure est appelée dans ce nouveau Timer.
    Attention, le Timer précédent n'est pas arrêté. Les Timers vont donc s'accumuler en mémoire.
    relancerPermet de relancer le Timer automatiquement à la fin de la procédure. L'attribut d'extension <intervalle> permet de définir l'intervalle de temps entre chaque appel de la procédure.
    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <délai=durée en centièmes de secondes>Permet d'indiquer dans un Timer (lors du premier appel) le délai d'attente avant le démarrage de la procédure. Cet attribut d'extension doit être utilisé avec l'attribut d'extension <timer>. La valeur optionnelle délai en centièmes de secondes permet d'indiquer ce temps d'attente.
    Si cette valeur n'est pas précisée, il est nécessaire d'indiquer cette valeur lors de l'utilisation de l'attribut d'extension <timer>.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
  • Versions 24 et supérieures
    attribut d'extension de gestion des threads :
    <thread>Permet d'indiquer que la procédure sera exécutée dans un thread secondaire. Pour plus de détails sur les threads, consultez Gestion des threads.

    Cet attribut d'extension est incompatible avec les attributs d'extension <timer> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <thread principal>Permet d'indiquer que la procédure sera exécutée dans un thread secondaire. Pour plus de détails sur les threads, consultez Gestion des threads.

    Cet attribut d'extension est incompatible avec les attributs d'extension <timer> et <thread>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <contexte HFSQL léger>Provoque la copie immédiate d'une partie du contexte HFSQL courant.
    Seuls les répertoires où se trouvent les fichiers de données en HFSQL Classic et/ou les connexions en HFSQL Client/Serveur sont mémorisés.

    Cet attribut d'extension doit être utilisé avec l'attribut d'extension <thread>. Pour plus de détails sur la gestion des threads, consultez l'aide sur la fonction ThreadExécute.
    En complément, consultez l'aide sur les Procédures automatiques.
    <contexte HFSQL complet>Provoque la copie immédiate du contexte HFSQL courant.
    Conseillé par exemple si le thread doit tenir compte des positions en cours dans les fichiers et requêtes du contexte de l'appelant.

    Cet attribut d'extension doit être utilisé avec l'attribut d'extension <thread>. Pour plus de détails sur la gestion des threads, consultez l'aide sur la fonction ThreadExécute.

    En complément, consultez l'aide sur les Procédures automatiques.
    Nouveauté 24
    attribut d'extension de gestion des threads :
    <thread>Permet d'indiquer que la procédure sera exécutée dans un thread secondaire. Pour plus de détails sur les threads, consultez Gestion des threads.

    Cet attribut d'extension est incompatible avec les attributs d'extension <timer> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <thread principal>Permet d'indiquer que la procédure sera exécutée dans un thread secondaire. Pour plus de détails sur les threads, consultez Gestion des threads.

    Cet attribut d'extension est incompatible avec les attributs d'extension <timer> et <thread>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <contexte HFSQL léger>Provoque la copie immédiate d'une partie du contexte HFSQL courant.
    Seuls les répertoires où se trouvent les fichiers de données en HFSQL Classic et/ou les connexions en HFSQL Client/Serveur sont mémorisés.

    Cet attribut d'extension doit être utilisé avec l'attribut d'extension <thread>. Pour plus de détails sur la gestion des threads, consultez l'aide sur la fonction ThreadExécute.
    En complément, consultez l'aide sur les Procédures automatiques.
    <contexte HFSQL complet>Provoque la copie immédiate du contexte HFSQL courant.
    Conseillé par exemple si le thread doit tenir compte des positions en cours dans les fichiers et requêtes du contexte de l'appelant.

    Cet attribut d'extension doit être utilisé avec l'attribut d'extension <thread>. Pour plus de détails sur la gestion des threads, consultez l'aide sur la fonction ThreadExécute.

    En complément, consultez l'aide sur les Procédures automatiques.
    attribut d'extension de gestion des threads :
    <thread>Permet d'indiquer que la procédure sera exécutée dans un thread secondaire. Pour plus de détails sur les threads, consultez Gestion des threads.

    Cet attribut d'extension est incompatible avec les attributs d'extension <timer> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <thread principal>Permet d'indiquer que la procédure sera exécutée dans un thread secondaire. Pour plus de détails sur les threads, consultez Gestion des threads.

    Cet attribut d'extension est incompatible avec les attributs d'extension <timer> et <thread>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <contexte HFSQL léger>Provoque la copie immédiate d'une partie du contexte HFSQL courant.
    Seuls les répertoires où se trouvent les fichiers de données en HFSQL Classic et/ou les connexions en HFSQL Client/Serveur sont mémorisés.

    Cet attribut d'extension doit être utilisé avec l'attribut d'extension <thread>. Pour plus de détails sur la gestion des threads, consultez l'aide sur la fonction ThreadExécute.
    En complément, consultez l'aide sur les Procédures automatiques.
    <contexte HFSQL complet>Provoque la copie immédiate du contexte HFSQL courant.
    Conseillé par exemple si le thread doit tenir compte des positions en cours dans les fichiers et requêtes du contexte de l'appelant.

    Cet attribut d'extension doit être utilisé avec l'attribut d'extension <thread>. Pour plus de détails sur la gestion des threads, consultez l'aide sur la fonction ThreadExécute.

    En complément, consultez l'aide sur les Procédures automatiques.

Attributs d'extension

Les attributs d'extension disponibles sont :
  • attribut d'extension de gestion des procédures zombies :
    <zombie [commentaire = "texte"]>Permet de définir une procédure obsolète (également appelée procédure zombie). Le mot-clé optionnel commentaire permet d'indiquer le texte qui sera affiché dans l'erreur de compilation associée à la procédure obsolète. Pour plus de détails, consultez Procédures zombies.
  • attribut d'extension de gestion du débogueur :
    <sans pas à pas>Permet d'indiquer que la procédure sera ignorée par le débogueur lors d'un débogage en mode "Pas à pas".
  • Versions 24 et supérieures
    attributs d'extension spécifiques aux procédures locales, globales ou internes :
    <automatique>Permet d'indiquer que cette procédure sera exécutée automatiquement après le code d'initialisation (de la fenêtre, de la page ou du projet).

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.

    Attention, cet attribut d'extension ne peut pas être appliqué à une procédure interne.
    <fin traitement>Permet d'indiquer que cette procédure sera exécutée lorsque le traitement contenant l'appel de la procédure sera fini.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <fin évènement>Permet d'indiquer que cette procédure sera exécutée lorsque le traitement contenant l'appel de la procédure sera fini. Pour plus de détails, consultez le paragraphe Option "A la fin de l'événement contenant l'appel".

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    Nouveauté 24
    attributs d'extension spécifiques aux procédures locales, globales ou internes :
    <automatique>Permet d'indiquer que cette procédure sera exécutée automatiquement après le code d'initialisation (de la fenêtre, de la page ou du projet).

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.

    Attention, cet attribut d'extension ne peut pas être appliqué à une procédure interne.
    <fin traitement>Permet d'indiquer que cette procédure sera exécutée lorsque le traitement contenant l'appel de la procédure sera fini.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <fin évènement>Permet d'indiquer que cette procédure sera exécutée lorsque le traitement contenant l'appel de la procédure sera fini. Pour plus de détails, consultez le paragraphe Option "A la fin de l'événement contenant l'appel".

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    attributs d'extension spécifiques aux procédures locales, globales ou internes :
    <automatique>Permet d'indiquer que cette procédure sera exécutée automatiquement après le code d'initialisation (de la fenêtre, de la page ou du projet).

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.

    Attention, cet attribut d'extension ne peut pas être appliqué à une procédure interne.
    <fin traitement>Permet d'indiquer que cette procédure sera exécutée lorsque le traitement contenant l'appel de la procédure sera fini.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <fin évènement>Permet d'indiquer que cette procédure sera exécutée lorsque le traitement contenant l'appel de la procédure sera fini. Pour plus de détails, consultez le paragraphe Option "A la fin de l'événement contenant l'appel".

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
  • Versions 24 et supérieures
    attribut d'extension de gestion des timers :
    <timer [=intervalle en centièmes de secondes]>Permet d'indiquer que la procédure sera exécutée dans un Timer.
    Cet attribut d'extension est équivalent à la fonction TimerSys. La répétition est automatique. La valeur optionnelle intervalle en centièmes de secondes permet d'indiquer l'intervalle de temps entre 2 répétitions :
    • Si cette valeur n'est pas précisée, il est nécessaire d'indiquer l'intervalle de temps entre 2 répétitions via l'attribut d'extension <intervalle>.
    • Si cette valeur est précisée, les valeurs des attributs d'extension <délai> et <intervalle> sont initialisées avec la valeur de l'intervalle précisée.
    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <répétition [=nombre de répétitions]>Permet d'indiquer que la procédure est appelée plusieurs fois d'affilée (répétitions). La valeur optionnelle nombre de répétitions permet d'indiquer le nombre d'appels de la procédure.
    • Si cette valeur n'est pas précisée, la répétition sera réalisée jusqu'à:
      • l'appel de la fonction FinAutomatismeProcédure.
      • la fermeture de l'élément auquel appartient la procédure (fenêtre, page, état).
      • la destruction de l'instance à laquelle appartient la procédure (pour plus de détails sur la notion d'instance, consultez l'aide sur l'Instanciation d'un objet).
      • la fin de l'application (fermeture de l'application par l'utilisateur ou utilisation de la fonction Finprogramme).
    • Si cette valeur est précisée, la procédure sera appelée autant de fois que le nombre indiqué.
    En complément, consultez l'aide sur les Procédures automatiques.
    <intervalle=durée en centième de secondes>Permet d'indiquer la durée (intervalle de temps) entre 2 appels de la procédure.
    Cet attribut d'extension doit être utilisé avec les attributs d'extension <timer> ou <répétition>. La valeur optionnelle intervalle en centièmes de secondes permet d'indiquer cet intervalle de temps.
    Si cette valeur n'est pas précisée, il est nécessaire d'indiquer cette valeur avec l'attribut d'extension <timer>.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <rappel[=type de rappel]>Permet d'indiquer, dans une procédure appelée dans un Timer, le mode de fonctionnement des appels ultérieurs. Cet attribut d'extension doit être utilisé avec l'attribut d'extension <timer>. La valeur optionnelle de cet attribut d'extension peut être:
    ignorer
    (Valeur par défaut)
    La procédure est appelée immédiatement. Il n'y a pas de délai d'attente pour l'appel de la procédure. La procédure est appelée une seule fois sans répétition.
    nouveauUn nouveau Timer est déclenché. La procédure est appelée dans ce nouveau Timer.
    Attention, le Timer précédent n'est pas arrêté. Les Timers vont donc s'accumuler en mémoire.
    relancerPermet de relancer le Timer automatiquement à la fin de la procédure. L'attribut d'extension <intervalle> permet de définir l'intervalle de temps entre chaque appel de la procédure.
    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <délai=durée en centièmes de secondes>Permet d'indiquer dans un Timer (lors du premier appel) le délai d'attente avant le démarrage de la procédure. Cet attribut d'extension doit être utilisé avec l'attribut d'extension <timer>. La valeur optionnelle délai en centièmes de secondes permet d'indiquer ce temps d'attente.
    Si cette valeur n'est pas précisée, il est nécessaire d'indiquer cette valeur lors de l'utilisation de l'attribut d'extension <timer>.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    Nouveauté 24
    attribut d'extension de gestion des timers :
    <timer [=intervalle en centièmes de secondes]>Permet d'indiquer que la procédure sera exécutée dans un Timer.
    Cet attribut d'extension est équivalent à la fonction TimerSys. La répétition est automatique. La valeur optionnelle intervalle en centièmes de secondes permet d'indiquer l'intervalle de temps entre 2 répétitions :
    • Si cette valeur n'est pas précisée, il est nécessaire d'indiquer l'intervalle de temps entre 2 répétitions via l'attribut d'extension <intervalle>.
    • Si cette valeur est précisée, les valeurs des attributs d'extension <délai> et <intervalle> sont initialisées avec la valeur de l'intervalle précisée.
    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <répétition [=nombre de répétitions]>Permet d'indiquer que la procédure est appelée plusieurs fois d'affilée (répétitions). La valeur optionnelle nombre de répétitions permet d'indiquer le nombre d'appels de la procédure.
    • Si cette valeur n'est pas précisée, la répétition sera réalisée jusqu'à:
      • l'appel de la fonction FinAutomatismeProcédure.
      • la fermeture de l'élément auquel appartient la procédure (fenêtre, page, état).
      • la destruction de l'instance à laquelle appartient la procédure (pour plus de détails sur la notion d'instance, consultez l'aide sur l'Instanciation d'un objet).
      • la fin de l'application (fermeture de l'application par l'utilisateur ou utilisation de la fonction Finprogramme).
    • Si cette valeur est précisée, la procédure sera appelée autant de fois que le nombre indiqué.
    En complément, consultez l'aide sur les Procédures automatiques.
    <intervalle=durée en centième de secondes>Permet d'indiquer la durée (intervalle de temps) entre 2 appels de la procédure.
    Cet attribut d'extension doit être utilisé avec les attributs d'extension <timer> ou <répétition>. La valeur optionnelle intervalle en centièmes de secondes permet d'indiquer cet intervalle de temps.
    Si cette valeur n'est pas précisée, il est nécessaire d'indiquer cette valeur avec l'attribut d'extension <timer>.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <rappel[=type de rappel]>Permet d'indiquer, dans une procédure appelée dans un Timer, le mode de fonctionnement des appels ultérieurs. Cet attribut d'extension doit être utilisé avec l'attribut d'extension <timer>. La valeur optionnelle de cet attribut d'extension peut être:
    ignorer
    (Valeur par défaut)
    La procédure est appelée immédiatement. Il n'y a pas de délai d'attente pour l'appel de la procédure. La procédure est appelée une seule fois sans répétition.
    nouveauUn nouveau Timer est déclenché. La procédure est appelée dans ce nouveau Timer.
    Attention, le Timer précédent n'est pas arrêté. Les Timers vont donc s'accumuler en mémoire.
    relancerPermet de relancer le Timer automatiquement à la fin de la procédure. L'attribut d'extension <intervalle> permet de définir l'intervalle de temps entre chaque appel de la procédure.
    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <délai=durée en centièmes de secondes>Permet d'indiquer dans un Timer (lors du premier appel) le délai d'attente avant le démarrage de la procédure. Cet attribut d'extension doit être utilisé avec l'attribut d'extension <timer>. La valeur optionnelle délai en centièmes de secondes permet d'indiquer ce temps d'attente.
    Si cette valeur n'est pas précisée, il est nécessaire d'indiquer cette valeur lors de l'utilisation de l'attribut d'extension <timer>.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    attribut d'extension de gestion des timers :
    <timer [=intervalle en centièmes de secondes]>Permet d'indiquer que la procédure sera exécutée dans un Timer.
    Cet attribut d'extension est équivalent à la fonction TimerSys. La répétition est automatique. La valeur optionnelle intervalle en centièmes de secondes permet d'indiquer l'intervalle de temps entre 2 répétitions :
    • Si cette valeur n'est pas précisée, il est nécessaire d'indiquer l'intervalle de temps entre 2 répétitions via l'attribut d'extension <intervalle>.
    • Si cette valeur est précisée, les valeurs des attributs d'extension <délai> et <intervalle> sont initialisées avec la valeur de l'intervalle précisée.
    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <répétition [=nombre de répétitions]>Permet d'indiquer que la procédure est appelée plusieurs fois d'affilée (répétitions). La valeur optionnelle nombre de répétitions permet d'indiquer le nombre d'appels de la procédure.
    • Si cette valeur n'est pas précisée, la répétition sera réalisée jusqu'à:
      • l'appel de la fonction FinAutomatismeProcédure.
      • la fermeture de l'élément auquel appartient la procédure (fenêtre, page, état).
      • la destruction de l'instance à laquelle appartient la procédure (pour plus de détails sur la notion d'instance, consultez l'aide sur l'Instanciation d'un objet).
      • la fin de l'application (fermeture de l'application par l'utilisateur ou utilisation de la fonction Finprogramme).
    • Si cette valeur est précisée, la procédure sera appelée autant de fois que le nombre indiqué.
    En complément, consultez l'aide sur les Procédures automatiques.
    <intervalle=durée en centième de secondes>Permet d'indiquer la durée (intervalle de temps) entre 2 appels de la procédure.
    Cet attribut d'extension doit être utilisé avec les attributs d'extension <timer> ou <répétition>. La valeur optionnelle intervalle en centièmes de secondes permet d'indiquer cet intervalle de temps.
    Si cette valeur n'est pas précisée, il est nécessaire d'indiquer cette valeur avec l'attribut d'extension <timer>.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <rappel[=type de rappel]>Permet d'indiquer, dans une procédure appelée dans un Timer, le mode de fonctionnement des appels ultérieurs. Cet attribut d'extension doit être utilisé avec l'attribut d'extension <timer>. La valeur optionnelle de cet attribut d'extension peut être:
    ignorer
    (Valeur par défaut)
    La procédure est appelée immédiatement. Il n'y a pas de délai d'attente pour l'appel de la procédure. La procédure est appelée une seule fois sans répétition.
    nouveauUn nouveau Timer est déclenché. La procédure est appelée dans ce nouveau Timer.
    Attention, le Timer précédent n'est pas arrêté. Les Timers vont donc s'accumuler en mémoire.
    relancerPermet de relancer le Timer automatiquement à la fin de la procédure. L'attribut d'extension <intervalle> permet de définir l'intervalle de temps entre chaque appel de la procédure.
    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <délai=durée en centièmes de secondes>Permet d'indiquer dans un Timer (lors du premier appel) le délai d'attente avant le démarrage de la procédure. Cet attribut d'extension doit être utilisé avec l'attribut d'extension <timer>. La valeur optionnelle délai en centièmes de secondes permet d'indiquer ce temps d'attente.
    Si cette valeur n'est pas précisée, il est nécessaire d'indiquer cette valeur lors de l'utilisation de l'attribut d'extension <timer>.

    Cet attribut d'extension est incompatible avec les attributs d'extension <thread> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
  • Versions 24 et supérieures
    attribut d'extension de gestion des threads :
    <thread>Permet d'indiquer que la procédure sera exécutée dans un thread secondaire. Pour plus de détails sur les threads, consultez Gestion des threads.

    Cet attribut d'extension est incompatible avec les attributs d'extension <timer> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <thread principal>Permet d'indiquer que la procédure sera exécutée dans un thread secondaire. Pour plus de détails sur les threads, consultez Gestion des threads.

    Cet attribut d'extension est incompatible avec les attributs d'extension <timer> et <thread>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <contexte HFSQL léger>Provoque la copie immédiate d'une partie du contexte HFSQL courant.
    Seuls les répertoires où se trouvent les fichiers de données en HFSQL Classic et/ou les connexions en HFSQL Client/Serveur sont mémorisés.

    Cet attribut d'extension doit être utilisé avec l'attribut d'extension <thread>. Pour plus de détails sur la gestion des threads, consultez l'aide sur la fonction ThreadExécute.
    En complément, consultez l'aide sur les Procédures automatiques.
    <contexte HFSQL complet>Provoque la copie immédiate du contexte HFSQL courant.
    Conseillé par exemple si le thread doit tenir compte des positions en cours dans les fichiers et requêtes du contexte de l'appelant.

    Cet attribut d'extension doit être utilisé avec l'attribut d'extension <thread>. Pour plus de détails sur la gestion des threads, consultez l'aide sur la fonction ThreadExécute.

    En complément, consultez l'aide sur les Procédures automatiques.
    Nouveauté 24
    attribut d'extension de gestion des threads :
    <thread>Permet d'indiquer que la procédure sera exécutée dans un thread secondaire. Pour plus de détails sur les threads, consultez Gestion des threads.

    Cet attribut d'extension est incompatible avec les attributs d'extension <timer> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <thread principal>Permet d'indiquer que la procédure sera exécutée dans un thread secondaire. Pour plus de détails sur les threads, consultez Gestion des threads.

    Cet attribut d'extension est incompatible avec les attributs d'extension <timer> et <thread>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <contexte HFSQL léger>Provoque la copie immédiate d'une partie du contexte HFSQL courant.
    Seuls les répertoires où se trouvent les fichiers de données en HFSQL Classic et/ou les connexions en HFSQL Client/Serveur sont mémorisés.

    Cet attribut d'extension doit être utilisé avec l'attribut d'extension <thread>. Pour plus de détails sur la gestion des threads, consultez l'aide sur la fonction ThreadExécute.
    En complément, consultez l'aide sur les Procédures automatiques.
    <contexte HFSQL complet>Provoque la copie immédiate du contexte HFSQL courant.
    Conseillé par exemple si le thread doit tenir compte des positions en cours dans les fichiers et requêtes du contexte de l'appelant.

    Cet attribut d'extension doit être utilisé avec l'attribut d'extension <thread>. Pour plus de détails sur la gestion des threads, consultez l'aide sur la fonction ThreadExécute.

    En complément, consultez l'aide sur les Procédures automatiques.
    attribut d'extension de gestion des threads :
    <thread>Permet d'indiquer que la procédure sera exécutée dans un thread secondaire. Pour plus de détails sur les threads, consultez Gestion des threads.

    Cet attribut d'extension est incompatible avec les attributs d'extension <timer> et <thread principal>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <thread principal>Permet d'indiquer que la procédure sera exécutée dans un thread secondaire. Pour plus de détails sur les threads, consultez Gestion des threads.

    Cet attribut d'extension est incompatible avec les attributs d'extension <timer> et <thread>.

    En complément, consultez l'aide sur les Procédures automatiques.
    <contexte HFSQL léger>Provoque la copie immédiate d'une partie du contexte HFSQL courant.
    Seuls les répertoires où se trouvent les fichiers de données en HFSQL Classic et/ou les connexions en HFSQL Client/Serveur sont mémorisés.

    Cet attribut d'extension doit être utilisé avec l'attribut d'extension <thread>. Pour plus de détails sur la gestion des threads, consultez l'aide sur la fonction ThreadExécute.
    En complément, consultez l'aide sur les Procédures automatiques.
    <contexte HFSQL complet>Provoque la copie immédiate du contexte HFSQL courant.
    Conseillé par exemple si le thread doit tenir compte des positions en cours dans les fichiers et requêtes du contexte de l'appelant.

    Cet attribut d'extension doit être utilisé avec l'attribut d'extension <thread>. Pour plus de détails sur la gestion des threads, consultez l'aide sur la fonction ThreadExécute.

    En complément, consultez l'aide sur les Procédures automatiques.
Versions 23 et supérieures

Procédure zombie (ou obsolète)

Lorsqu'un code a beaucoup vécu, il contient souvent des procédures qui sont utilisées, mais qui ne répondent plus aux normes de qualité actuelles.
Dans ce cas, une nouvelle version de la procédure est créée, mais avec des paramètres différents.
Tous les appels existants ne pouvant être modifiés immédiatement, il est possible d'indiquer que l'ancienne version devient une procédure zombie.
Dans ce cas :
  • Lors de la recompilation du projet, un warning permet d'indiquer tous les appels à la procédure zombie.
  • A chaque nouvelle utilisation de la procédure zombie, un logo spécifique est affiché à côté de l'appel pendant 10 s et un warning de compilation est généré.
  • La procédure zombie apparaît grisée et barrée dans l'explorateur de projet.
Comment le faire ?
Pour indiquer qu'une procédure est une procédure zombie, il suffit de faire suivre la déclaration de la procédure par l'attribut d'extension <Zombie>.

La syntaxe est la suivante :
PROCEDURE <Nom procédure>(<Paramètres>) <zombie [commentaire = "texte"]> [: <Type du retour>]
PROCEDURE <Nom procédure>() <zombie [commentaire = "texte"]> [: <Type du retour>]
Dans ces syntaxes, le mot-clé optionnel commentaire permet d'indiquer le texte qui sera affiché dans l'erreur de compilation associée à la procédure obsolète.
Exemple
  • Code de la procédure :
    PROCÉDURE AjouteArbre(sNoeud, sMois, sImageDate, sImage)<zombie commentaire = "utiliser AjComplet">
     
    // Vérification pour savoir si l'année existe
    SI ArbreEtat(ArbreCommande, sNoeud) = aErreur ALORS
    // elle n'existe pas, on la crée avec tous les mois
    ArbreAjoute(ArbreCommande, sNoeud, sImageDate, sImageDate, "", aDernier)
    AjouteMois(sNoeud)
    FIN
  • La procédure zombie apparaît grisée et barrée dans l'explorateur de projet (dès que l'élément est recompilé).
  • Lors de la saisie de l'appel à la fonction, une icône spécifique sera affichée pendant 10 secondes  :
    et une erreur de compilation contenant le commentaire sera affichée :
Nouveauté 23

Procédure zombie (ou obsolète)

Lorsqu'un code a beaucoup vécu, il contient souvent des procédures qui sont utilisées, mais qui ne répondent plus aux normes de qualité actuelles.
Dans ce cas, une nouvelle version de la procédure est créée, mais avec des paramètres différents.
Tous les appels existants ne pouvant être modifiés immédiatement, il est possible d'indiquer que l'ancienne version devient une procédure zombie.
Dans ce cas :
  • Lors de la recompilation du projet, un warning permet d'indiquer tous les appels à la procédure zombie.
  • A chaque nouvelle utilisation de la procédure zombie, un logo spécifique est affiché à côté de l'appel pendant 10 s et un warning de compilation est généré.
  • La procédure zombie apparaît grisée et barrée dans l'explorateur de projet.
Comment le faire ?
Pour indiquer qu'une procédure est une procédure zombie, il suffit de faire suivre la déclaration de la procédure par l'attribut d'extension <Zombie>.

La syntaxe est la suivante :
PROCEDURE <Nom procédure>(<Paramètres>) <zombie [commentaire = "texte"]> [: <Type du retour>]
PROCEDURE <Nom procédure>() <zombie [commentaire = "texte"]> [: <Type du retour>]
Dans ces syntaxes, le mot-clé optionnel commentaire permet d'indiquer le texte qui sera affiché dans l'erreur de compilation associée à la procédure obsolète.
Exemple
  • Code de la procédure :
    PROCÉDURE AjouteArbre(sNoeud, sMois, sImageDate, sImage)<zombie commentaire = "utiliser AjComplet">
     
    // Vérification pour savoir si l'année existe
    SI ArbreEtat(ArbreCommande, sNoeud) = aErreur ALORS
    // elle n'existe pas, on la crée avec tous les mois
    ArbreAjoute(ArbreCommande, sNoeud, sImageDate, sImageDate, "", aDernier)
    AjouteMois(sNoeud)
    FIN
  • La procédure zombie apparaît grisée et barrée dans l'explorateur de projet (dès que l'élément est recompilé).
  • Lors de la saisie de l'appel à la fonction, une icône spécifique sera affichée pendant 10 secondes  :
    et une erreur de compilation contenant le commentaire sera affichée :

Procédure zombie (ou obsolète)

Lorsqu'un code a beaucoup vécu, il contient souvent des procédures qui sont utilisées, mais qui ne répondent plus aux normes de qualité actuelles.
Dans ce cas, une nouvelle version de la procédure est créée, mais avec des paramètres différents.
Tous les appels existants ne pouvant être modifiés immédiatement, il est possible d'indiquer que l'ancienne version devient une procédure zombie.
Dans ce cas :
  • Lors de la recompilation du projet, un warning permet d'indiquer tous les appels à la procédure zombie.
  • A chaque nouvelle utilisation de la procédure zombie, un logo spécifique est affiché à côté de l'appel pendant 10 s et un warning de compilation est généré.
  • La procédure zombie apparaît grisée et barrée dans l'explorateur de projet.
Comment le faire ?
Pour indiquer qu'une procédure est une procédure zombie, il suffit de faire suivre la déclaration de la procédure par l'attribut d'extension <Zombie>.

La syntaxe est la suivante :
PROCEDURE <Nom procédure>(<Paramètres>) <zombie [commentaire = "texte"]> [: <Type du retour>]
PROCEDURE <Nom procédure>() <zombie [commentaire = "texte"]> [: <Type du retour>]
Dans ces syntaxes, le mot-clé optionnel commentaire permet d'indiquer le texte qui sera affiché dans l'erreur de compilation associée à la procédure obsolète.
Exemple
  • Code de la procédure :
    PROCÉDURE AjouteArbre(sNoeud, sMois, sImageDate, sImage)<zombie commentaire = "utiliser AjComplet">
     
    // Vérification pour savoir si l'année existe
    SI ArbreEtat(ArbreCommande, sNoeud) = aErreur ALORS
    // elle n'existe pas, on la crée avec tous les mois
    ArbreAjoute(ArbreCommande, sNoeud, sImageDate, sImageDate, "", aDernier)
    AjouteMois(sNoeud)
    FIN
  • La procédure zombie apparaît grisée et barrée dans l'explorateur de projet (dès que l'élément est recompilé).
  • Lors de la saisie de l'appel à la fonction, une icône spécifique sera affichée pendant 10 secondes  :
    et une erreur de compilation contenant le commentaire sera affichée :
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire