DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Syntaxe WLangage / Procédures WLangage
  • Présentation
  • Surcharger une fonction WLangage
  • Présentation
  • Comment surcharger une fonction WLangage ?
  • Différencier la fonction WLangage et la fonction personnalisée
  • Utiliser des fonctions WLangage dans des requêtes SQL pour HFSQL
  • Présentation
  • Comment le faire ?
  • Remarques
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
Le WLangage propose le mot-clé "WL." pour :
Surcharger une fonction WLangage
WINDEVWEBDEV - Code ServeurEtats et RequêtesUniversal Windows 10 AppAndroidWidget AndroidiPhone/iPadApple WatchJavaCode Utilisateur (MCU)

Présentation

La surcharge d'une fonction WLangage permet d'utiliser une fonction personnelle du même nom que la fonction WLangage.
Par exemple, au lieu d'utiliser la fonction standard du WLangage Info, il est possible d'utiliser une procédure personnelle nommée Info. A chaque fois que la fonction Info sera utilisée, ce sera la procédure personnelle qui sera exécutée.
WINDEVWEBDEV - Code ServeurEtats et RequêtesUniversal Windows 10 AppAndroidWidget AndroidiPhone/iPadApple WatchJavaCode Utilisateur (MCU)

Comment surcharger une fonction WLangage ?

Pour surcharger une fonction WLangage :
  1. Créez une nouvelle procédure dans votre projet (procédure locale ou globale). Cette procédure doit avoir les caractéristiques suivantes :
    • Le même nom que la fonction WLangage à surcharger.
    • Le même nombre de paramètres que la fonction WLangage à surcharger. Ces paramètres doivent également être du même type que ceux de la fonction WLangage.
  2. Lorsque le nom de la fonction / procédure sera utilisée dans le projet (ou dans la fenêtre si la procédure créée est locale), la procédure personnalisée sera utilisée à la place de la fonction WLangage.
Remarques :
  • La surcharge des fonctions du WLangage n'est pas prise en compte lors de la compilation dynamique. Par exemple, si vous avez surchargé la fonction Trace, l'appel de cette fonction dans un code compilé dynamiquement appellera la fonction WLangage et non la fonction surchargée.
  • La surcharge des fonctions du WLangage n'est pas prise en compte dans les traitements d'une fenêtre interne, si la surcharge se trouve dans la fenêtre qui contient le champ Fenêtre interne.
  • Lorsque la fonction WLangage surchargée a plusieurs syntaxes (par exemple, fonction ToastAffiche), toutes les syntaxes appelées de cette fonction exécuteront la surcharge. Si la fonction WLangage surchargée a plusieurs syntaxes avec des paramètres de types différents, la nouvelle procédure devra donc avoir plusieurs syntaxes si elle doit correspondre à toutes les possibilités d'appel.
  • Il est possible de surcharger des fonctions manipulant des fenêtres, des pages ou des états. Il suffit d'utiliser la notation suivante pour définir le paramètre correspondant à l'élément voulu dans la procédure surchargeant la fonction :
    • WINDEVWINDEV Mobile Pour les fenêtres, le paramètre doit être défini avec la notation "NomFenêtre est une chaîne <nom de fenêtre>". Par exemple, pour surcharger la fonction Ouvre, le code de la procédure sera :
      PROCÉDURE Ouvre(NomFenêtre est une chaîne <nom de fenêtre>, *)
    • WEBDEV - Code Serveur Pour les pages, le paramètre doit être défini avec la notation "NomPage est une chaîne <nom de page>". Par exemple, pour surcharger la fonction PageAffiche, le code de la procédure sera :
      PROCÉDURE PageAffiche(NomPage est une chaîne <nom de page>, *)
    • Pour les états, le paramètre doit être défini avec la notation "NomEtat est une chaîne <nom de l'état>". Par exemple, pour surcharger la fonction iImprimeEtat, le code de la procédure sera :
      PROCÉDURE iImprimeEtat(NomEtat est une chaîne <nom d'état>, *)
    Pour plus de détails, consultez Paramètres d'une procédure.
WINDEVWEBDEV - Code ServeurEtats et RequêtesUniversal Windows 10 AppAndroidWidget AndroidiPhone/iPadApple WatchJavaCode Utilisateur (MCU)

Différencier la fonction WLangage et la fonction personnalisée

Si vous avez surchargé une fonction WLangage, pour utiliser la fonction originale, il suffit de préfixer le nom de la fonction par les lettres WL. La syntaxe à utiliser est la suivante :
WL.<Nom de la fonction>
Par exemple, pour surcharger la fonction Trace du WLangage, il est possible d'utiliser le code suivant :
PROCÉDURE Trace(Information1)
Message("Lancement d'une trace")
WL.Trace(Information1)
Utiliser des fonctions WLangage dans des requêtes SQL pour HFSQL

Présentation

Une fonction WLangage peut être utilisée dans une requête SQL. Cette requête SQL pourra être exécutée sur des fichiers HFSQL. Il est ainsi possible par exemple d'utiliser des fonctions WLangage pour créer des conditions de sélection avancées.
Il est possible d'utiliser des fonctions WLangage :
  • directement dans le code SQL d'une requête,
  • dans l'éditeur de requêtes (par exemple lors de la création d'une rubrique de calcul utilisant une formule mathématique),
  • avec les requêtes définies par le type Requête SQL.
Android Sous Android, l'utilisation de fonctions WLangage dans les requêtes SQL est possible uniquement :
  • avec les bases de données au format HFSQL Client/Serveur.
  • avec les requêtes créées sous l'éditeur de requêtes.
L'utilisation de fonctions WLangage dans une requête de type Requête SQL n'est pas autorisée.

Comment le faire ?

Pour utiliser des fonctions WLangage dans des requêtes pour HFSQL :
  1. Créez une requête sous l'éditeur de requêtes.
  2. Pour utiliser les fonctions WLangage dans la requête, utilisez la notation : WL.<Nom de la fonction>
    Les fonctions WLangage peuvent être utilisées par exemple :
    • Dans le code SQL de la requête. Exemple :
      -- Sélection des tâches de plus de 5 jours
      SELECT Tâche.Libellé FROM Tâche WHERE
      WL.DateDifférence(Tâche.HeureDébut, Tâche.DateFin) > 5
    • Dans une formule mathématique manipulée par une rubrique calculée.
  3. La requête peut être :

Remarques

  • Seules les fonctions WLangage sont utilisables dans les requêtes. Les propriétés ne peuvent pas être utilisées.
  • Il est possible d'imbriquer plusieurs fonctions WLangage dans une requête.
  • Si la fonction WLangage est utilisée dans le SELECT, le type de la valeur renvoyée est un mémo texte.
  • Cette syntaxe peut être utilisée uniquement avec HFSQL Classic, Mobile et Client/Serveur.
  • Les limites de la fonction WLangage sont identiques si elle est utilisée dans une requête.
  • Les fonctions actuellement disponibles dans les requêtes sont les suivantes :
  • Pour utiliser les fonctions Ouvre, OuvreFille et OuvrePopup dans les requêtes, il faut passer le nom des fenêtres sous la forme de chaînes de caractères (entre guillemets).
  • Pour utiliser une constante WLangage dans les requêtes contenant des fonctions WLangage, utilisez la notation :
    WL.<Nom de la constante>

    Par exemple, code SQL de la requête :
    SELECT
    WL.ExtraitChaîne('A|B|C',1,'|'),
    WL.ExtraitChaîne('A|B|C',1,'|', WL.DepuisFin)
    FROM
    DUAL
Liste des exemples associés :
Surcharge de fonctions WLangage Exemples unitaires (WINDEV) : Surcharge de fonctions WLangage
[ + ] Surcharge de fonctions du WLangage.
Cet exemple surcharge la fonction Trace et permet de :
- Afficher une trace "normale"
- Afficher une trace et enregistrer les données dans un fichier
- Effectuer une trace fichier (Les informations sont seulement enregistrées dans un fichier)
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 03/07/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale