wiki:partenaires:dev:devextax

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
wiki:partenaires:dev:devextax [2026/07/10 21:42] – [Code d'initialisation du projet (de la wdl)] eneuvillewiki:partenaires:dev:devextax [2026/08/09 11:56] (Version actuelle) – [Version de compilation] eneuville
Ligne 46: Ligne 46:
  
  
-===== Conventions de nommage =====+===== Code d'initialisation du projet (de la wdl) =====
  
 +Allez dans le code d'initialisation de projet de la WDL, faites un copier-coller du code ci dessous et apportez-y les adaptations nécessaires pour votre projet.
  
-Il doit y avoir une collection de procédures nommées PG_[nom wdl], par exemple PG_PROSTEP (pour éviter les conflits de liés à l’utilisation par plusieurs WDL du même nom « Procédures Globales » standard Windev. 
  
-Cette collection doit comporter trois procédures globales normalisées :  +<button collapse="devextax1">Code d'initialisation de la wdl</button>
-  * Charger_Fenêtre +
-  * [nom wdl]_Init +
-  * [nom wdl]_Terminer+
  
-Les procédures globales copiées de Gestan doivent être stockées dans une collection PG_MAP_[nom wdl], par exemple PG_MAP_PROSTEP (MAP pour "Mise au point")+<collapse id="devextax1collapsed="true"> 
 +<code> 
 +SI EnModeTest(ALORS
  
-Les autres procédures globales doivent être stockées dans une autre collection de procédurenommée PG_SPEC_[nomwdl] (SPEC pour Spécifique).+ // Déclarez en externe les fichiers de Gestan que vous allez utiliser (si vous n'avez pas copié l'analyse) 
 + EXTERNE PRODUIT, MACHINE, JOURNALAPP, LIBTRADUIT, CONTACT, PARAMLIB, CNX, PROJET, CONSO, FACTURE, TACHE, ADRESSEPOST, gf_Renvoyer_AuthKey 
 + 
 + // Déclarez en externe les fonctions de Gestan que vous allez appeler dans votre code 
 + EXTERNE gf_USER_AlimenterListe 
 +  
 +  
 + // Les variables qui servent à Gestan, et qui sont utilisées aussi dans l'extension 
 + gCdUser est une chaîne // Code de l'utilisateur connecté 
 + gbAdmin est un entier // 0 = user simple 1= admin gestan 
 + gIniFile est une chaîne // Nom complet du fichier de paramétrage 
 + gOptFile est une chaîne // Nom complet du fichier des options de paramétrage pour la base 
 + // Fichier de paramétrage spécifique à Gestan Cloud 
 + gCloudFile est une chaîne = ComplèteRep(SysRep(srAppDataCommun))+"GESTAN\gestan_cloud.ini"  
 + gRepGestan est une chaîne // Chemin du répertoire Gestan 
 + gDHConnect est une chaîne = DateHeureSys() // Date Heure de connexion 
 + gNumVersion est un entier // Numéro de version de Gestan (2=Standard ou 3=Pro) 
 + // N° de version de l'exécutable (x.15.0A.00) 
 + gVersionExe est une chaîne = EnModeTest() ? "x.15.08" SINON ExeInfo(exeVersion)[[À 7]]  
 + gNumRev est un entier = EnModeTest() ? "MT" SINON ExtraitChaîne(ExeInfo(exeVersion),4,".")  
 + gbPatch est un booléen 
 + gSupport est un entier // 0=rien, 1=ICS, 2=Partenaires 
 + gNbDecEcr est un entier 
 + gNbDecQteProd, gnbDecTVA, gNbDecPrxProd sont des entiers 
 + gNbHeuresParJournee est un réel 
 + gLST_Fichiers_Externes est une chaîne  
 + gCléRegistre est une chaîne 
 + gbBibChargée_COMPTA est un booléen 
 + gNBUnitésBib est un entier = 20 // Nombre d'unités de bibliothèques 
 + gVersionWindev est une chaîne = "29.0" // A changer si la version de Windev change (29 = Windev 2024) 
 + gDestinationPDF est un entier  
 + gNumDatabase est un entier sur 8 // Numéro de la database connectée 
 + xxNumPostit est un entier sur 8 // Pour le dragndrop des postit vers l'agenda 
 + gPriv est un tableau associatif d'entiers 
 + gbJournalConnexion est un booléen 
 + gbEffacerSaint est un booléen 
 + gbNoTimeStamp est un booléen // Pour bypasser la mise à jour de USMOD & DHMOD 
 + gModeConnect est un entier  
 + gbEnCloud est un booléen // Vrai si on est en cloud 
 + gCouleurAppli est un tableau de 3 entiers 
 + tablo_LICENCE est un tableau associatif d'entiers 
 + gCodeAdminCloud est une chaîne 
 + gRefExt est une chaîne // Pour utilisation de wdl externes 
 + gDescToolBar est une chaîne // Pour l'utilisation de toolbars en provenance de wdl externes 
 + gSysRepMesDocs est une chaîne // Répertoire MesDocuments (U en Cloud) 
 + gbNoDéconnect est un booléen // pour ne pas déconnecter l'instance qui a demandé une déconnexion générale 
 + gCodeExtension est une chaîne 
 + gbRuban est un booléen 
 + gNbBoutonsMétier est un entier  
 +  
 + DateHeureParDéfaut("19000101","0000" 
 +  
 + // Constantes diverses 
 + CONSTANTE 
 + COUL_Bleu = 14249279 
 + COUL_BleuClair = 16250347 
 + COUL_BleuCredit = 14526242 // rvb(34 167 221) 
 + Coul_BleuLigne = 16438176 
 + COUL_Brun = 5014704 // RVB(176,132,76) 
 + COUL_GrisClair = 16314090 
 + COUL_GrisMoyen = 12632256 
 + COUL_Jaune = 10092543 
 + COUL_Kaki = 10070188 
 + COUL_OrangeClair = 9884415 
 + COUL_OrangeFoncé = 37119 
 + COUL_Rouge = 7643 
 + COUL_RougeClair = 7434721 
 + COUL_Vert = 905472 
 + COUL_VertClair = 4122527 // RVB(159,231,62) anc :1687808 
 + COUL_VertFoncé = 1344030 // 1994280 
 + COUL_Rose = 16764159 
 + COUL_OrangeLeger = 13434879 
 + COUL_LivingCoral = 7368191 
 +  
 + COUL_VertFerie = 11337689 
 + COUL_BleuWeekEnd = 16314087 
 +  
 + // Couleurs de Windows 8 (utilisées dans les widgets, notamment) 
 + COUL8_bleuClair = 14852379 // rvb(27,161,226) 
 + COUL8_bleuMoyen = 15697965 // 45,136,239 
 + COUL8_bleu = 12473610 // 10,85,190 
 + COUL8_vert = 40960 // 0,160,0  
 + COUL8_violine = 11141283 // 163,0,170  
 + COUL8_violet = 11810905 // 89 56 180 
 + COUL8_orange = 2574803 // 211,73,39 
 +  
 + COUL_ToastOK = VertClair 
 + COUL_ToastKO = RougeClair 
 +  
 + COUL_OK = 65280 
 + COUL_KO = 255 
 +  
 + MSG_RIEN_IMPRIMER = 1 
 + MSG_SUPPRIMER = 2 
 + MSG_ERRINATTENDUE = 3 
 + MSG_FICHIERVIDE = 4 
 + MSG_PARAMKO = 5 
 + MSG_DUPLIQUER = 6 
 + MSG_APPELINCORRECT = 7 
 + MSG_OPSIMPOSSIBLE = 8 
 + MSG_OPERATIONADMIN = 9 
 + MSG_SUPPRIMER_SELECTION = 10 
 + MSG_PBHFSQL = 11 
 + MSG_DROITSWINDOWS = 12 
 + MSG_PRIVILINSUFF = 13  
 + MSG_RIENAAFF = 14 
 + MSG_VERSIONENTREPRISE = 15 
 +  
 + MODE_CLASSIC = 0 
 + MODE_CS_LAN = 1 
 + MODE_CS_WAN = 2 
 +  
 + GPSSWD = "************" 
 + FIN 
 +  
 + // Déclaration éventuelle de fichiers présents dans l'analyse de Gestan mais pas dans celle de l'extension  
 + LOCAL 
 + NomAna est une chaîne="E:\Mes Projets\GESTAN_15\Gestan.ana\Gestan.wdd" 
 +  
 + HDéclare("PAYS",NomAna)  
 + HDéclare("PARAMLIB",NomAna)  
 + HDéclare("CONTACT",NomAna)  
 + HDéclare("ADRESSEPOST",NomAna)  
 + 
 + // Déclaration mots de passe des fichiers utilisés par l'extension 
 + HPasse("*",GPSSWD) 
 + HPasse(PARAMAPPLI,GPSSWD) 
 + HPasse(USER,GPSSWD) 
 + HPasse(PARAMPLUS,GPSSWD) 
 + HPasse(CIVILITE,GPSSWD) 
 + HPasse("PAYS",GPSSWD) 
 + HPasse("PARAMLIB",GPSSWD) 
 + HPasse("CONTACT",GPSSWD) 
 + HPasse("ADRESSEPOST",GPSSWD) 
 + 
 + // Si on a besoin de CNX 
 + HDéclareExterne(gf_Renvoyer_Répertoire("ADD")+"CNX.fic","CNX",GPSSWD) 
 + 
 +  
 + // Initialisation du répertoire et du code user, pour l'usage en mode test  
 + gRepGestan="C:\GESTAN_15\TEST\" 
 + gCdUser ="EN" 
 + HFerme("*")  
 + HSubstRep("?",gRepGestan+"DATABASE"
 +  
 + // Déclaration des triggers sur les fichiers de l'extension et les fichiers externes 
 + HDécritTrigger(Z43_PROSPECT,"HAJOUTE,HMODIFIE,HSUPPRIME","Horodate",hTriggerAvant) 
 + HDécritTrigger(EMPLACEMENT,"HAJOUTE,HMODIFIE,HSUPPRIME","Horodate",hTriggerAvant) 
 + HDécritTrigger(CONTACT,"HAJOUTE,HMODIFIE,HSUPPRIME","Horodate",hTriggerAvant) 
 + //[etc...]  
 + 
 +FIN 
 + 
 + 
 +  
 +</code> 
 +</collapse>
  
-{{:wiki:partenaires:dev:devwdl_01.png?nolink|}} 
  
  
Ligne 68: Ligne 222:
 ===== Procédures globales (obligatoires) ===== ===== Procédures globales (obligatoires) =====
  
-Elles sont au nombre de trois : +Dans le projet, créez tout d'abord une collection PG_[nom wdl], contentant trois procédures globales. 
-  * une procédure pour charger les fenêtres + 
-  * une procédure d'initialisation de l'extension +  * Charger_Fenêtre : pour charger les fenêtres 
-  * une procédure de terminaison de l'extension+  * [nom wdl]_Init : procédure d'initialisation de l'extension 
 +  * [nom wdl]_Terminer : procédure de terminaison de l'extension 
 + 
 +Nous allons voir le contenu de ces fonctions ci-dessous. 
 + 
 +{{:wiki:partenaires:dev:devwdl_01.png?nolink|}} 
 + 
 +Dans cet exemple, PG_DEV contient Charger_Fenêtre, GESTAN_DEV_Init, et GESTAN_DEV_Terminer 
 + 
 +Vous pouvez aussi mettre dans cette collection les autres procédures globales qui seraient propres à cette extension. Nommez-les [nom wdl]_[nom procédure], comme par exemple GESTAN_DEV_EnvoyerMail ou GESTAN_DEV_RenvoyerRepDev (cela évite les conflits de noms de procédure avec d'éventuelles autres extensions Gestan). 
 + 
 +Si vous souhaitez copier-coller des fonctions globales de Gestan, mettez-les dans une collection de procédure PG_MAP_[nom wdl], par exemple PG_MAP_PROSTEP (MAP pour "Mise au point"). 
  
  
Ligne 512: Ligne 678:
 Si A1 n'est pas précisé, Gestan refusera de charger la bibliothèque. Si A1 n'est pas précisé, Gestan refusera de charger la bibliothèque.
  
 +\\ \\ 
 ----------------- -----------------
-{{:wiki:tags:voir_aussi.gif?nolink |}}**Autres articles "Développement"**+ℹ️ **Autres articles "Développement"**
  
 <nspages wiki:partenaires:dev -nbCol=2 -textPages="" -h1 -r -simpleLineBreak > <nspages wiki:partenaires:dev -nbCol=2 -textPages="" -h1 -r -simpleLineBreak >
  • wiki/partenaires/dev/devextax.1783712545.txt.gz
  • Dernière modification : 2026/07/10 21:42
  • de eneuville