DOCUMENTATION TECHNIQUE DU PROJET Omika_S_Comm_DEV 12/08/2026 Partie 1 › Projet Partie 1 Projet | 12/08/2026 | Omika_S_Comm_DEV | 2 | | ---------- | ---------------- | --- | Partie 1 › Projet Projet Informations générales Omika_S_Comm_DEV Répertoire D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV Thème 190 Gensteel Projet Liste des éléments du projet Nom Libellé FEN_Connexion FEN_Menu COL_GestionDuLog LIB_DEBUG LIB_Globales LIB_InterfaceComposant LIB_ParametrageMobiles LIB_Service WS_COM_MOBILE Statistiques Nombre de fenêtres : 2 Nombre de collections de procédures : 6 Projet Code Initialisation de Omika_S_Comm_DEV 12/08/2026 Omika_S_Comm_DEV 3 Partie 1 › Projet › Code constant cNomService ="Omika_Comm" cNomComposant ="COM_Omika_Comm" cNomRepData ="Omika\" cNomFicIni ="Omika.ini" cSocSLAMM ="SLAMM" 12/08/2026 Omika_S_Comm_DEV 4 Exécution du service de Omika_S_Comm_DEV (appelé en boucle) BoucleService() ServiceTemporise(10s) Fermeture de Omika_S_Comm_DEV //ExécuteTraitement("FermetureDuService",trtProcédure) Arrêt du service de Omika_S_Comm_DEV //ExécuteTraitement("ArretDuService",trtProcédure) Projet Erreurs, warnings et informations Détail de l'erreur Localisation engiL ennoloC La variable locale 'saRep' n'est pas utilisée. LIB_Service.TH_TraiteDocRecu 7 2 Procédure locale Partie 1 › Projet › Statistiques sur le code Projet Statistiques sur le code ¹ .tiart/.giL ¹ .mmoc % ¹ sengiL | COL_GestionDuLog | | 87 0 | 12 | | ---------------------- | --- | ------- | --- | | LIB_DEBUG | | 66 8 | 16 | | LIB_Globales | | 48 0 | 48 | | LIB_InterfaceComposant | | 2 0 | 2 | | LIB_ParametrageMobiles | | 12 8 | 12 | | LIB_Service | | 3159 17 | 45 | | FEN_Connexion | | 65 0 | 21 | | FEN_Menu | | 571 8 | 13 | | Omika_S_Comm_DEV | | 180 9 | 45 | | | | 4076 15 | 30 | ¹ Lignes : Nombre total de lignes de code. % comm. : Pourcentage de commentaires dans le code. Lig./trait. : Nombre de lignes de code par traitement. Projet Composants créés depuis le projet COM_Batik_Comm elbisiV Nom Libellé Omika_S_Comm_DEV WS_COM_MOBILE COL_GestionDuLog LIB_Globales LIB_InterfaceComposant LIB_ParametrageMobiles LIB_Service | 12/08/2026 | Omika_S_Comm_DEV | | 7 | | ---------- | ---------------- | --- | --- | Partie 1 › Projet › Composants inclus dans le projet Projet Composants inclus dans le projet COM_Batik_Comm D:\Projets Windev\Batik\Nouvelle COM_Batik_Comm Version\Service\Batik_S_Comm_DEV\COM_Omika_Comm.wdi Emplacement d'origine D:\Projets Windev\Batik\Nouvelle Propriétaire Applilogik Version 1.00Eo Copyright Applilogik 2022 Les entrées/sorties du composant : Liste des procédures Le composant Service Comm propose les collections de procédures suivantes : Collection de procédures 'LIB_InterfaceComposant' BoucleService Fonction appelée à chaque boucle du service 1 - Collections de procédures accessibles 1.1 - Collection de procédures 'LIB_InterfaceComposant' 1.1.1 - Procédure 'BoucleService' Résumé : Syntaxe : BoucleService () Paramètres : Aucun Valeur de retour : Aucune Exemple : Indiquez ici un exemple d'utilisation. 1 - Collections de procédures navigateur accessibles 2 - Classes accessibles 3 - Pages accessibles 12/08/2026 Omika_S_Comm_DEV 8 Partie 1 › Projet › Composants inclus dans le projet 3 - Fenêtres accessibles 4 - Etats accessibles 5 - Manipulation des éléments accessibles Pour manipuler un élément du composant (fenêtre, etc.) par programmation, il suffit de manipuler l'élément comme s'il s'agissait d'un élément créé dans le projet : - pour appeler une procédure : utilisez la syntaxe habituelle : ProcédureDuComposant(Param1,Param2) - pour utiliser une classe : déclarer une variable du type de la classe : MaVariable est un objet ClasseDuComposant La variable s'utilise par la suite comme une variable objet normale. - pour ouvrir une fenêtre : utilisez par exemple la fonction Ouvre en passant si nécessaire les paramètres attendus par cette fenêtre. Ouvre(FenêtreDuComposant [, Param1, Param2]) - pour imprimer un état : utilisez la fonction iImprimeEtat en passant si nécessaire les paramètres attendus par cet état. iImprimeEtat(EtatComposant [, Param1, Param2]) Nom LIB_InterfaceComposant 12/08/2026 Omika_S_Comm_DEV 9 Partie 2 › Fenêtre WINDEV Partie 2 Fenêtre WINDEV | 12/08/2026 | Omika_S_Comm_DEV | 10 | | ---------- | ---------------- | --- | Partie 2 › Fenêtre WINDEV FEN_Connexion Image FEN_Connexion Informations générales FEN_Connexion Fichier physique D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\FEN_Connexion.wdw Créé par susana@applilogik.fr Date de création 21/01/2026 08:39:47 Dernière modification par susana@applilogik.fr Date dernière modification 20/02/2026 09:38:38 Titre FR: Connexion Type fenêtre Fenêtre libre Mode ouverture (Desktop) Centrée par rapport à la mère 12/08/2026 Omika_S_Comm_DEV 11 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations générales | Position X | 0 Position Y | | 0 Largeur | 628 Hauteur | 513 | | --------------------- | ------------ | -------------------- | --------- | --------------- | --- | | Visible | | Barre de titre | | Menu système | | | Icône réduction | | Icône agrandissement | | Icône aide ctx. | | | Barre de message | | Détourer le fond | | Mode 9 images | | | Redimensionnable | | Avec grip | | Grip dans image | | | Déplace/fond | | Sauve position | | Ascenseur auto. | | | Gestion grande police | | Thème XP | | | | Ctx. HFSQL indép. | Etat initial | | Actif | | | | | ------------------------------- | --- | ---------------------------- | ---------------- | --- | --- | | Curseur survol | | 0 | | | | | Copie d'écran | | Oui | | | | | Unité des tailles | | Compatible desktop ET mobile | | | | | Ancrage au contenu | | | | | | | Opacité | | 100 | | | | | Titre personnalisé | | Oui | | | | | Titre perso. : hauteur | | 30 | | | | | Titre perso. : Affiche le titre | | Oui | | | | | Pos. Menu Perso | | Non | | | | | Icône de fermeture | | Oui | | | | | Type cadre | | Double | | | | | Transparence Vista | | Non | | | | | Transparence gérée par Vista | | Non | | | | | Appliquer le thème du projet | | | | | | | Grisé : Utiliser couleur perso. | | Non | | | | | Grisé : Algo pour images | | | | | | | Style du menu | | Office XP | | | | | Mode bulle d'aide | | Non | | | | | Mode Bulle : Point chaud | | Haut gauche | | | | | Mode Bulle : Décalage X | | 0 | | | | | Mode Bulle : Décalage Y | | 0 | | | | | Optimisations | | Comme le projet | | | | | Valide auto. | | 0 | | | | | Lib. + tps restant | | Oui | | | | | Pos. X Menu | | 6 | | | | | Pos. Y Menu | | 28 | | | | | Texte Markdown | | Non | | | | | Mode menu ctx. | | | | | | | M.C.U. | | Oui | | | | | Anim. Ouverture | | 0 | | | | | Anim. Fermeture | | 0 | | | | | Durée Anim. Ouverture | | 100 | | | | | Durée Anim. Fermeture | | 50 | | | | | Adapte Taille contenu | | Non | | | | | Assombri quand inactif | | Oui | | | | | Déplace souris sur bouton par | | Non | | | | | Compact. barres outils | | Non | | | | | 12/08/2026 | | | Omika_S_Comm_DEV | | 12 | Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations générales Statistiques de la fenêtre | | Champ de saisie | | 16 | Libellé | | 3 | | --- | --------------- | --- | --- | ------- | --- | --- | | | Bouton | | 1 | | | | Nombre d'éléments dans la fenêtre : 20 FEN_Connexion Informations sur les champs Fenêtre : FEN_Connexion Champ de saisie euqitamotua tnemecaffE euqitamotua eisias niF reihcif eétsissa eisiaS | | | | | eriotagilbo eisiaS | .zroH tnemeliféD .trev tnemeliféD | | | --- | --- | --- | --- | ------------------ | --------------------------------- | --- | latnoziroh .csA essap ed toM | | | | BAT ehcuoT | | cnalb à esiM ediv is LLUN | lacitrev .csA | | --- | --- | --- | ------------------------ | --------------------- | ------------------------- | ------------- | | | | | laitini tatE eisias epyT | engilitluM FTR tamroF | | | X noitisoP Y noitisoP ruegraL ruetuaH elbisiV nalP | SAI_BaseLicence | 8 51 182 | 49 0 | Actif Texte | Non | | | | -------------------- | ----------- | ---- | ---------------- | --- | --- | --- | | SAI_BaseService | 9 329 179 | 49 0 | Actif Texte | Non | | | | SAI_BaseWSCom | 8 190 179 | 49 0 | Actif Texte | Non | | | | SAI_MPLicence | 196 102 206 | 49 0 | Actif Texte | Non | | | | SAI_MPLicenceFichier | 413 102 206 | 49 0 | Actif Texte | Non | | | | SAI_MPService | 322 384 298 | 49 0 | Actif Texte | Non | | | | SAI_MPWSCom | 321 241 298 | 49 0 | Actif Texte | Non | | | | SAI_NomBaseLicence | 319 51 300 | 49 0 | Actif Texte | Non | | | | SAI_NomBaseService | 320 329 300 | 49 0 | Actif Texte | Non | | | | SAI_NomBaseWSCom | 319 190 300 | 49 0 | Actif Texte | Non | | | | SAI_PortLicence | 196 51 117 | 49 0 | Actif Texte | Non | | | | SAI_PortService | 194 329 117 | 49 0 | Actif Texte | Non | | | | SAI_PortWSCom | 193 190 117 | 49 0 | Actif Texte | Non | | | | SAI_UserLicence | 8 102 182 | 49 0 | Actif Texte | Non | | | | SAI_UserService | 9 380 305 | 49 0 | Actif Texte | Non | | | | SAI_UserWSCom | 8 241 305 | 49 0 | Actif Texte | Non | | | | 12/08/2026 | | | Omika_S_Comm_DEV | | | 13 | Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Libellé tuaféd rap eéminA .zroh egardaC .trev egardaC FTR tamroF | | X noitisoP Y noitisoP | | | laitini tatE | | | | --- | --------------------- | --- | --- | ------------ | --- | --- | ruetuaH | | | ruegraL | elbisiV | | | | | --- | --- | ------- | ------- | --- | --- | --- | nalP | LIB_Libellé | 8 19 | 203 26 | 0 | Actif | Gauche Haut | | | ------------ | ----- | ------ | --- | ----- | ----------- | --- | | LIB_Libellé1 | 8 158 | 242 26 | 0 | Actif | Gauche Haut | | | LIB_Libellé2 | 7 296 | 242 26 | 0 | Actif | Gauche Haut | | Bouton BAT ehcuoT notuob epyT | | X noitisoP | Y noitisoP | | | laitini tatE | | | --- | ---------- | ---------- | --- | --- | ------------ | --- | ruetuaH ruegraL elbisiV nalP | BTN_Valider | 505 | 443 115 | 24 | 0 | Actif | Normal | | ----------- | --- | ------- | --- | --- | ----- | ------ | Fenêtre : FEN_Connexion Bouton : BTN_Valider | Libellé | FR: Se Connecter | | | | | | | -------------------------------- | ----------------------------------- | ---------------- | --- | --- | --- | --- | | Ordre navigation | 17 | | | | | | | Curseur survol | 0 | | | | | | | UI par l'utilisateur | Selon fenêtre | | | | | | | On/Off | Non | | | | | | | Recopie Option menu flèche | Non | | | | | | | Taux Paral. hauteur | 0 | | | | | | | Taux Paral. Y | 0 | | | | | | | Épinglé | Non | | | | | | | Masquer lors du scrolling | Non | | | | | | | Ancrage au contenu | | | | | | | | Retrait gauche | 0 | | | | | | | Réduction Ruban | Ne pas réduire le bouton | | | | | | | Cadrage fonctions gXXX | Cadrage ignoré (pour compatibilité) | | | | | | | Numéro aide | 0 | | | | | | | Opacité | 100 | | | | | | | Autorise ChangeGabarit | Oui | | | | | | | Animer si trop long | Non | | | | | | | Animée par défaut | Oui | | | | | | | Mode ellipse | | | | | | | | Alignement sur l'axe secondaire | défini par le champ flexbox (auto) | | | | | | | Facteur de rétrécissement | 0 | | | | | | | Facteur d'agrandissement | 0 | | | | | | | Type flèche | | | | | | | | Texte Markdown | Non | | | | | | | 12/08/2026 | | Omika_S_Comm_DEV | | | | 14 | Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Mode menu ctx. Nb. états image 1 Nb. états fond 5 Etirement de l'image de fond Mode 9 images personnalisé Nb. étapes animation 1 Largeur Halo 0 Hauteur Halo 0 Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Libellé : LIB_Libellé Libellé FR: Serveur Licence Curseur survol 0 UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Taille police min 0 Autorise ChangeGabarit Oui Animer si trop long Non Type saisie Texte Masque saisie FR: 0 Mode ellipse Unicode Non Transforme le & Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Mise à blanc Oui Texte Markdown Non Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 15 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Libellé : LIB_Libellé1 Libellé FR: Serveur WS Com Mobile Curseur survol 0 UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Taille police min 0 Autorise ChangeGabarit Oui Animer si trop long Non Type saisie Texte Masque saisie FR: 0 Mode ellipse Unicode Non Transforme le & Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Mise à blanc Oui Texte Markdown Non Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Libellé : LIB_Libellé2 Libellé FR: Serveur Service Curseur survol 0 UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Taille police min 0 Autorise ChangeGabarit Oui Animer si trop long Non 12/08/2026 Omika_S_Comm_DEV 16 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Type saisie Texte Masque saisie FR: 0 Mode ellipse Unicode Non Transforme le & Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Mise à blanc Oui Texte Markdown Non Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Champ de saisie : SAI_BaseLicence Libellé FR: Base de données serveur Ordre navigation 1 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 10 Largeur interne 180 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non 12/08/2026 Omika_S_Comm_DEV 17 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Oui Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Oui Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 18 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Champ de saisie : SAI_BaseService Libellé FR: Base de données serveur Ordre navigation 12 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 11 Largeur interne 177 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui 12/08/2026 Omika_S_Comm_DEV 19 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Avec focus Oui Historique des saisies Oui Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Oui Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Champ de saisie : SAI_BaseWSCom Libellé FR: Base de données serveur Ordre navigation 7 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 10 Largeur interne 177 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non 12/08/2026 Omika_S_Comm_DEV 20 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Oui Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Oui Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 21 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Champ de saisie : SAI_MPLicence Libellé FR: Mot de passe Ordre navigation 5 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 196 Largeur interne 206 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui 12/08/2026 Omika_S_Comm_DEV 22 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Champ de saisie : SAI_MPLicenceFichiers Libellé FR: Mot de passe (Fichiers) Ordre navigation 6 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 413 Largeur interne 206 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non 12/08/2026 Omika_S_Comm_DEV 23 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 24 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Champ de saisie : SAI_MPService Libellé FR: Mot de passe Ordre navigation 16 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 322 Largeur interne 298 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui 12/08/2026 Omika_S_Comm_DEV 25 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Champ de saisie : SAI_MPWSCom Libellé FR: Mot de passe Ordre navigation 11 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 321 Largeur interne 298 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non 12/08/2026 Omika_S_Comm_DEV 26 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 27 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Champ de saisie : SAI_NomBaseLicence Libellé FR: Nom de la base de données Ordre navigation 3 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 321 Largeur interne 298 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui 12/08/2026 Omika_S_Comm_DEV 28 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Avec focus Oui Historique des saisies Oui Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Oui Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Champ de saisie : SAI_NomBaseService Libellé FR: Nom de la base de données Ordre navigation 14 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 322 Largeur interne 298 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non 12/08/2026 Omika_S_Comm_DEV 29 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Oui Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Oui Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 30 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Champ de saisie : SAI_NomBaseWSCom Libellé FR: Nom de la base de données Ordre navigation 9 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 321 Largeur interne 298 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui 12/08/2026 Omika_S_Comm_DEV 31 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Avec focus Oui Historique des saisies Oui Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Oui Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Champ de saisie : SAI_PortLicence Libellé FR: Port Ordre navigation 2 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 196 Largeur interne 117 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non 12/08/2026 Omika_S_Comm_DEV 32 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Oui Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Oui Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 33 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Champ de saisie : SAI_PortService Libellé FR: Port Ordre navigation 13 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 194 Largeur interne 117 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui 12/08/2026 Omika_S_Comm_DEV 34 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Avec focus Oui Historique des saisies Oui Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Oui Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Champ de saisie : SAI_PortWSCom Libellé FR: Port Ordre navigation 8 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 193 Largeur interne 117 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non 12/08/2026 Omika_S_Comm_DEV 35 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Oui Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Oui Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 36 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Champ de saisie : SAI_UserLicence Libellé FR: Utilisateur Ordre navigation 4 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 10 Largeur interne 180 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui 12/08/2026 Omika_S_Comm_DEV 37 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Avec focus Oui Historique des saisies Oui Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Oui Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Champ de saisie : SAI_UserService Libellé FR: Utilisateur Ordre navigation 15 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 11 Largeur interne 303 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non 12/08/2026 Omika_S_Comm_DEV 38 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Oui Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Oui Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 39 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Champ de saisie : SAI_UserWSCom Libellé FR: Utilisateur Ordre navigation 10 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 10 Largeur interne 303 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui 12/08/2026 Omika_S_Comm_DEV 40 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Informations sur les champs Avec focus Oui Historique des saisies Oui Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Oui Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 FEN_Connexion Code Déclarations globales de FEN_Connexion procédure FEN_Connexion() FEN_Connexion Code des champs Initialisation de BTN_Valider // Version 1 // Description // Bouton simple Clic sur BTN_Valider 12/08/2026 Omika_S_Comm_DEV 41 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Code des champs Connexion() Initialisation de LIB_Libellé // Version 1 // Description // Libellé pour écrire un titre Initialisation de LIB_Libellé1 // Version 1 // Description // Libellé pour écrire un titre Initialisation de LIB_Libellé2 // Version 1 // Description // Libellé pour écrire un titre Initialisation de SAI_BaseLicence // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de SAI_BaseService // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de SAI_BaseWSCom // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de SAI_MPLicence // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de SAI_MPLicenceFichiers // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de SAI_MPService // Version 1 12/08/2026 Omika_S_Comm_DEV 42 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Code des champs // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de SAI_MPWSCom // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de SAI_NomBaseLicence // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de SAI_NomBaseService // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de SAI_NomBaseWSCom // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de SAI_PortLicence // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de SAI_PortService // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de SAI_PortWSCom // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de SAI_UserLicence // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de SAI_UserService 12/08/2026 Omika_S_Comm_DEV 43 Partie 2 › Fenêtre WINDEV › FEN_Connexion › Code des champs // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de SAI_UserWSCom // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne FEN_Connexion Procédures Procédure locale Connexion procédure Connexion() LIB_DEBUG.gcnxD_ServeurLicence..Provider = hAccèsHFClientServeur LIB_DEBUG.gcnxD_ServeurLicence..BaseDeDonnées = SAI_NomBaseLicence | LIB_DEBUG.gcnxD_ServeurLicence..MotDePasse | = SAI_MPLicence | | | ------------------------------------------ | --------------- | --- | LIB_DEBUG.gcnxD_ServeurLicence..Serveur = SAI_BaseLicence+":"+SAI_PortLicence | LIB_DEBUG.gcnxD_ServeurLicence..Utilisateur | = SAI_UserLicence | | | ------------------------------------------- | ----------------- | --- | | LIB_DEBUG.gsaPortWSCOM | = SAI_PortWSCom | | | LIB_DEBUG.gsaServeurWSCOM | = SAI_BaseWSCom | | LIB_DEBUG.gcnxD_ServeurWSCom..Provider = hAccèsHFClientServeur | LIB_DEBUG.gcnxD_ServeurWSCom..BaseDeDonnées | = SAI_NomBaseWSCom | | | ------------------------------------------- | ------------------ | --- | | LIB_DEBUG.gcnxD_ServeurWSCom..MotDePasse | = SAI_MPWSCom | | LIB_DEBUG.gcnxD_ServeurWSCom..Serveur = SAI_BaseWSCom+":"+SAI_PortWSCom | LIB_DEBUG.gcnxD_ServeurWSCom..Utilisateur | = SAI_UserWSCom | | | ----------------------------------------- | ----------------------- | --- | | LIB_DEBUG.gcnxD_Service..Provider | = hAccèsHFClientServeur | | | LIB_DEBUG.gcnxD_Service..BaseDeDonnées | = SAI_NomBaseService | | | LIB_DEBUG.gcnxD_Service..MotDePasse | = SAI_MPService | | LIB_DEBUG.gcnxD_Service..Serveur = SAI_BaseService+":"+SAI_PortService | LIB_DEBUG.gcnxD_Service..Utilisateur | = SAI_UserService | | | ------------------------------------ | ----------------- | --- | | LIB_Service.gsaSW_Cle | = SAI_MPService | | D_OuvreConnexionHFSQLLicence(SAI_MPLicenceFichiers) D_RecupIdentiteLicence() si D_OuvreConnexionHFSQL() alors InitialisationParametres() Ouvre(FEN_Menu) fin | 12/08/2026 | Omika_S_Comm_DEV | 44 | | ---------- | ---------------- | --- | Partie 2 › Fenêtre WINDEV › FEN_Menu › Image FEN_Menu Image | 12/08/2026 | Omika_S_Comm_DEV | 45 | | ---------- | ---------------- | --- | Partie 2 › Fenêtre WINDEV › FEN_Menu › Image | 12/08/2026 | Omika_S_Comm_DEV | 46 | | ---------- | ---------------- | --- | Partie 2 › Fenêtre WINDEV › FEN_Menu › Image FEN_Menu Informations générales FEN_Menu Fichier physique D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\FEN_Menu.wdw Créé par susana@applilogik.fr Date de création 21/01/2026 08:30:23 Dernière modification par susana@applilogik.fr Date dernière modification 19/02/2026 18:20:18 Titre FR: Menu Type fenêtre Fenêtre libre Mode ouverture (Desktop) Centrée par rapport à la mère 12/08/2026 Omika_S_Comm_DEV 47 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations générales | Position X | 0 Position Y | | 0 Largeur | 1025 Hauteur | 699 | | --------------------- | ------------ | -------------------- | --------- | --------------- | --- | | Visible | | Barre de titre | | Menu système | | | Icône réduction | | Icône agrandissement | | Icône aide ctx. | | | Barre de message | | Détourer le fond | | Mode 9 images | | | Redimensionnable | | Avec grip | | Grip dans image | | | Déplace/fond | | Sauve position | | Ascenseur auto. | | | Gestion grande police | | Thème XP | | | | Ctx. HFSQL indép. | Etat initial | | Actif | | | | | ------------------------------- | --- | ---------------------------- | ---------------- | --- | --- | | Curseur survol | | 0 | | | | | Copie d'écran | | Oui | | | | | Unité des tailles | | Compatible desktop ET mobile | | | | | Ancrage au contenu | | | | | | | Opacité | | 100 | | | | | Titre personnalisé | | Oui | | | | | Titre perso. : hauteur | | 30 | | | | | Titre perso. : Affiche le titre | | Oui | | | | | Pos. Menu Perso | | Non | | | | | Icône de fermeture | | Oui | | | | | Type cadre | | Double | | | | | Transparence Vista | | Non | | | | | Transparence gérée par Vista | | Non | | | | | Appliquer le thème du projet | | | | | | | Grisé : Utiliser couleur perso. | | Non | | | | | Grisé : Algo pour images | | | | | | | Style du menu | | Office XP | | | | | Mode bulle d'aide | | Non | | | | | Mode Bulle : Point chaud | | Haut gauche | | | | | Mode Bulle : Décalage X | | 0 | | | | | Mode Bulle : Décalage Y | | 0 | | | | | Optimisations | | Comme le projet | | | | | Valide auto. | | 0 | | | | | Lib. + tps restant | | Oui | | | | | Pos. X Menu | | 6 | | | | | Pos. Y Menu | | 28 | | | | | Texte Markdown | | Non | | | | | Mode menu ctx. | | | | | | | M.C.U. | | Oui | | | | | Anim. Ouverture | | 0 | | | | | Anim. Fermeture | | 0 | | | | | Durée Anim. Ouverture | | 100 | | | | | Durée Anim. Fermeture | | 50 | | | | | Adapte Taille contenu | | Non | | | | | Assombri quand inactif | | Oui | | | | | Déplace souris sur bouton par | | Non | | | | | Compact. barres outils | | Non | | | | | 12/08/2026 | | | Omika_S_Comm_DEV | | 48 | Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations générales Statistiques de la fenêtre | | Champ de saisie | | 25 | Bouton | | 13 | | --- | ------------------- | --- | --- | --------------------- | --- | --- | | | Interrupteur | | 3 | Sélecteur | | 1 | | | Image | | 4 | Table | | 3 | | | Combo | | 6 | Onglet | | 1 | | | Superchamp | | 9 | Option d'interrupteur | | 3 | | | Option de sélecteur | | 2 | Colonne de table | | 14 | | | Volet (Onglet) | | 3 | Éditeur HTML | | 1 | Nombre d'éléments dans la fenêtre : 88 FEN_Menu Informations sur les champs Fenêtre : FEN_Menu Bouton notuob epyT BAT ehcuoT | | | X noitisoP Y noitisoP | | | laitini tatE | | | --- | --- | --------------------- | --- | --- | ------------ | --- | ruetuaH | | | | ruegraL | | elbisiV | | | --- | --- | --- | ------- | --- | ------- | --- | nalP | BTN_RecupDoc | | 786 | 110 225 | 24 0 | Actif | Validati | | ------------ | --- | --- | ------- | ---- | ----- | -------- | | BTN_Valider | | 849 | 424 162 | 24 0 | Actif | Validati | Sélecteur ellennoitroporp .loC sennoloc .bN BAT ehcuoT | | | X noitisoP Y noitisoP | | | laitini tatE | staté siorT | | --- | --- | --------------------- | --- | --- | ------------ | ----------- | ruetuaH | | | | ruegraL | elbisiV | | | | --- | --- | --- | ------- | ------- | --- | --- | nalP | SEL_test | | 625 31 | 291 24 | 0 | Actif | 2 | | ---------- | --- | ------ | ---------------- | --- | ----- | --- | | 12/08/2026 | | | Omika_S_Comm_DEV | | | 49 | Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Image cilc ruop eriatiroirP tuaféd rap eéminA | | | | | | | | | laitini tatE | | | sucof cevA | | --- | --- | --- | ---------- | ---------- | ------- | ------- | --- | ------------ | --------- | --- | ---------- | | | | | X noitisoP | Y noitisoP | | | | | | | | | | | | | | ruegraL | ruetuaH | | | cilc cevA | | | elbisiV nalP | IMG_Buffer | | | 361 | 72 | 142 | 138 | 0 | Actif | | | | | ---------- | --- | --- | ---- | --- | --- | --- | --- | ----- | --- | --- | --- | | IMG_Vide | | | -182 | -28 | 36 | 42 | 0 | Actif | | | | Table eitros ne tnemertsigernE ruesnecsa/egahciffA | | | | | | | | | | lennoitroporp .csA .loc .gifnoc .oméM | | | | --- | --- | --- | --- | --- | --- | --- | ------------------ | -------------- | ------------------------------------- | -------------- | -------------- | | | | | | | | | )(ertliFH resilitU | | ruesnecsa elluB EERTNE noitseG | eércna ennoloC | | | | | | | | | | .gerne egacolB | noitcelésitluM | edacsac eisiaS | | 5.5 elbitapmoC | BAT ehcuoT | | X noitisoP | Y noitisoP | | | laitini tatE | | | | | | | | --- | ---------- | ---------- | ------- | --- | ------------ | --- | -------- | --- | --- | --- | --- | | | | ruegraL | ruetuaH | | | | sruocraP | | | | | elbisiV elbaT nalP Mémoir | TABLE_Document | 12 | 210 999 | 438 | 0 | affichag | | | | | | 3 | | -------------- | --- | -------- | --- | --- | -------- | ------ | --- | --- | --- | --- | --- | | TABLE_Inter | 8 | 96 331 | 560 | 0 | affichag | Mémoir | | | | | 2 | | TABLE_RDV | 8 | 454 1003 | 178 | 0 | affichag | Mémoir | | | | | 5 | Combo reihcif eétsissa eisiaS | | | | | | | | | | eriotagilbo eisiaS | | .zroH tnemeliféD | | --- | --- | --- | --- | --- | --- | --- | --- | --- | ------------------ | --- | ---------------- | ruesnecsa elluB | | | | | | | | BAT ehcuoT | | | ediv is LLUN | | | --- | ---------- | ---------- | --- | ------- | --- | ------------ | ---------- | --- | ----------- | ------------ | --- | | | X noitisoP | Y noitisoP | | | | laitini tatE | | | eisias cevA | | | | | | | | ruetuaH | | | sruocraP | | | | | ruegraL | | | | | | elbisiV | | elbaT | | | | | | --------- | --- | --- | ----- | --- | ------- | ----- | ------- | ----- | --- | --- | --- | | | | | | | nalP | | | eéirT | | | | | CMB_Users | | 6 | 7 594 | 48 | 0 | Actif | Mémoire | | Non | | | Onglet slennoitroporp steloV engil/stelov .bN BAT ehcuoT | | | X noitisoP | Y noitisoP | | | | laitini tatE | | stelov .soP | | | | --- | --- | ---------- | ---------- | --- | --- | --- | ------------ | --- | ----------- | --- | --- | ruetuaH | | | | | ruegraL | | | elbisiV | | | | | | --- | --- | --- | --- | ------- | --- | --- | ------- | --- | --- | --- | --- | nalP | ONG_Menu | | | 6 | 61 1011 | 601 | 0 | Actif | | haut | | 0 | | ---------- | --- | --- | --- | ---------------- | --- | --- | ----- | --- | ---- | --- | --- | | 12/08/2026 | | | | Omika_S_Comm_DEV | | | | | | | 50 | Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Superchamp BAT ehcuoT | | | X noitisoP | Y noitisoP | | | | laitini tatE | | | --- | --- | ---------- | ---------- | --- | --- | --- | ------------ | --- | ruetuaH ruegraL elbisiV nalP | SC_AnnulerRDV | | 666 | 93 | 320 | 188 | 0 | Actif | | | --------------- | --- | --- | --- | --- | --- | --- | ----- | --- | | SC_CR | | 7 | 93 | 322 | 355 | 0 | Actif | | | SC_CreationDoc | | 666 | 291 | 320 | 108 | 0 | Actif | | | SC_CreationDoc1 | | 687 | 125 | 320 | 80 | 0 | Actif | | | SC_MsgExt | | 345 | 211 | 666 | 445 | 0 | Actif | | | SC_NoteDoc | | 6 | 93 | 336 | 106 | 0 | Actif | | | SC_NoteInter | | 345 | 99 | 336 | 106 | 0 | Actif | | | SC_Planifier | | 335 | 93 | 320 | 151 | 0 | Actif | | | SC_ValiderRDV | | 335 | 250 | 320 | 188 | 0 | Actif | | Table : ONG_Menu.TABLE_Document Colonne de table reihcif eétsissa eisiaS elbatsuja ruegraL | | | | ehcuag à eéxiF | elbairt ennoloC ehcrehcer cevA | | | | | | --- | --- | --- | -------------- | ------------------------------ | --------------------------- | --- | --- | --- | | | | | | | .zroh egardaC .trev egardaC | | | | FTR tamroF | | | laitini tatE | elbaçalpéD | | | eisias epyT | engilitluM | eisias cevA | | --- | --- | ------------ | ---------- | --- | --- | ----------- | ---------- | ----------- | ruegraL elbisiV | epyT | | | | | | | eéirT | | | -------------- | --- | ----- | --- | --- | ------------- | ------- | ----- | --- | | COL_IdDoc | 161 | Actif | | | Droite Centre | Numériq | | | | COL_NomDoc | 247 | Actif | | | Gauche Centre | Texte | | | | COL_Chemin | 363 | Actif | | | Gauche Centre | Texte | | | | COL_IdInterDoc | 114 | Actif | | | Droite Centre | Numériq | | | | COL_GUIDDoc | 100 | Actif | | | Gauche Centre | Texte | | | Table : ONG_Menu.TABLE_Inter Colonne de table reihcif eétsissa eisiaS elbatsuja ruegraL | | | | ehcuag à eéxiF | elbairt ennoloC ehcrehcer cevA | | | | | | --- | --- | ------------ | -------------- | ------------------------------ | --------------------------- | ----------- | --------------------- | ----------- | | | | | | | .zroh egardaC .trev egardaC | | | | | | | laitini tatE | elbaçalpéD | | | eisias epyT | engilitluM FTR tamroF | eisias cevA | ruegraL elbisiV | epyT | | | | | | | eéirT | | | ------------ | --- | ----- | ---------------- | --- | ------------- | ------- | ----- | --- | | COL_IdInter | 158 | Actif | | | Droite Centre | Numériq | | | | COL_RefInter | 158 | Actif | | | Gauche Centre | Texte | | | | 12/08/2026 | | | Omika_S_Comm_DEV | | | | | 51 | Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Table : ONG_Menu.TABLE_RDV Colonne de table reihcif eétsissa eisiaS elbatsuja ruegraL | | | | | ehcuag à eéxiF | elbairt ennoloC | ehcrehcer cevA | | | | | | --- | --- | --- | ------------ | -------------- | --------------- | -------------- | --------------------------- | ---------------------- | --- | ----------- | | | | | | | | | .zroh egardaC .trev egardaC | | | | | | | | laitini tatE | | elbaçalpéD | | | eisias epyT FTR tamroF | | eisias cevA | engilitluM ruegraL elbisiV | | epyT | | | | | | | | eéirT | | | ----------- | ---- | --- | ----- | --- | --- | ------ | ------ | ----- | ----- | --- | | COL_DateDeb | | 132 | Actif | | | Droite | Centre | Date | | | | COL_DateFin | | 103 | Actif | | | Droite | Centre | Date | | | | COL_Status | | 100 | Actif | | | Gauche | Centre | Texte | | | Numériq | COL_IdInterRDV | | 100 | Actif | | | Droite | Centre | | | | | --------------- | --- | --- | ----- | --- | --- | ------ | ------ | ------- | --- | --- | | COL_GUIDRDV | | 324 | Actif | | | Gauche | Centre | Texte | | | | COL_IDGroupeRDV | | 111 | Actif | | | Droite | Centre | Numériq | | | | COL_IdRdvRDV | | 100 | Actif | | | Droite | Centre | Numériq | | | Superchamp : ONG_Menu.SC_AnnulerRDV Champ de saisie euqitamotua tnemecaffE euqitamotua eisias niF reihcif eétsissa eisiaS | | | | | | | | eriotagilbo eisiaS | | .zroH tnemeliféD | | | --- | --- | --- | --- | --- | --- | --- | ------------------ | --- | ---------------- | --- | .trev tnemeliféD latnoziroh .csA | | | | | | | | essap ed toM | cnalb à esiM | | | | --- | --------------------- | --- | --- | --- | ------------------------ | ---------- | ------------ | ------------ | --- | ------------- | | | | | | | BAT ehcuoT | | FTR tamroF | ediv is LLUN | | lacitrev .csA | | | X noitisoP Y noitisoP | | | | laitini tatE eisias epyT | engilitluM | | | | | ruetuaH ruegraL elbisiV nalP | SAI_NoteAnnu | 678 184 | 300 | 44 0 | | Actif Texte | | Non | | | | | ------------ | ------- | --- | ---- | --- | ----------- | --- | --- | --- | --- | --- | Bouton BAT ehcuoT notuob epyT laitini tatE | | | | X noitisoP Y noitisoP | | | | | | | | | --- | --- | --- | --------------------- | --- | --------------- | --- | --- | --- | --- | --- | | | | | | | ruegraL ruetuaH | | | | | | elbisiV nalP | BTN_AnnulerRDV | | | 753 | 242 | 225 | 24 | 0 | Actif | Validati | | | -------------- | --- | --- | --- | ---------------- | --- | --- | --- | ----- | -------- | --- | | 12/08/2026 | | | | Omika_S_Comm_DEV | | | | | | 52 | Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Combo reihcif eétsissa eisiaS | | | | | | | | eriotagilbo eisiaS | | .zroH tnemeliféD | | --- | --- | --- | --- | --- | --- | --- | ------------------ | --- | ---------------- | ruesnecsa elluB ediv is LLUN | | | | | laitini tatE | BAT ehcuoT | | eisias cevA | | | | --- | ---------- | --------------- | --- | ------------ | ---------- | -------- | ----------- | --- | --- | | | X noitisoP | Y noitisoP | | | | | | | | | | | ruegraL ruetuaH | | | | sruocraP | | | | elbisiV | | | | | | | elbaT | eéirT | | | | --- | --- | --- | --- | --- | --- | ----- | ----- | --- | --- | nalP | CMB_MotifAnnu | 674 | 139 304 | 37 0 | Actif | | Mémoire | Non | | | | ------------- | --- | ------- | ---- | ----- | --- | ------- | --- | --- | --- | | CMB_OrigAnnu | 674 | 100 304 | 37 0 | Actif | | Mémoire | Non | | | Superchamp : ONG_Menu.SC_CR Champ de saisie euqitamotua tnemecaffE euqitamotua eisias niF reihcif eétsissa eisiaS eriotagilbo eisiaS .zroH tnemeliféD .trev tnemeliféD latnoziroh .csA essap ed toM | | | | | BAT ehcuoT | | FTR tamroF | cnalb à esiM ediv is LLUN | | lacitrev .csA | | --- | --------------------- | --- | ------------ | ----------- | ---------- | ---------- | ------------------------- | --- | ------------- | | | X noitisoP Y noitisoP | | laitini tatE | eisias epyT | engilitluM | | | | | ruegraL ruetuaH elbisiV nalP | SAI_Client | 16 244 | 300 27 0 | Actif | Texte | | Non | | | | | -------------- | ------- | -------- | ----- | ----- | --- | --- | --- | --- | --- | | SAI_DateDebCR | 16 102 | 162 22 0 | Actif | Date | | Non | | | | | SAI_DateFinCR | 16 130 | 162 22 0 | Actif | Date | | Non | | | | | SAI_HeureDCR | 184 102 | 132 22 0 | Actif | Heure | | Non | | | | | SAI_HeureFCR | 184 130 | 132 22 0 | Actif | Heure | | Non | | | | | SAI_NoteClient | 173 300 | 149 57 0 | Actif | Texte | | Non | | | | | SAI_NoteUser | 14 301 | 149 57 0 | Actif | Texte | | Non | | | | | SAI_Reserve | 16 196 | 300 44 0 | Actif | Texte | | Non | | | | Bouton notuob epyT BAT ehcuoT | | | X noitisoP Y noitisoP | | | | | laitini tatE | | | | --- | --- | --------------------- | --- | --- | --- | --- | ------------ | --- | --- | ruetuaH | | | | | ruegraL | | elbisiV | | | | | --- | --- | --- | --- | ------- | --- | ------- | --- | --- | --- | nalP | BTN_Valider1 | | 111 | 415 | 208 | 24 | 0 | Actif | Validati | | | ------------ | --- | --- | --- | --- | --- | --- | ----- | -------- | --- | Interrupteur ellennoitroporp .loC | | | | | | | | BAT ehcuoT sennoloc .bN | | | | --- | --- | --- | --- | --- | --- | ------------ | ----------------------- | --- | ----------- | | | | | | | | laitini tatE | | | staté siorT | X noitisoP Y noitisoP ruegraL ruetuaH elbisiV nalP | INT_DevisConforme | | 128 169 | 125 | 23 | 0 | Actif | | 1 | | | ----------------- | --- | ------- | ---------------- | --- | --- | ----- | --- | --- | --- | | INT_Reserve | | 16 169 | 102 | 23 | 0 | Actif | | 1 | | | 12/08/2026 | | | Omika_S_Comm_DEV | | | | | | 53 | Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Image cilc ruop eriatiroirP tuaféd rap eéminA | | | | | | | | laitini tatE | | sucof cevA | | --- | --- | --- | --- | --- | --- | --- | ------------ | --- | ---------- | X noitisoP Y noitisoP | | | | ruegraL | ruetuaH | | | cilc cevA | | | | --- | --- | --- | ------- | ------- | --- | --- | --------- | --- | --- | elbisiV nalP | IMG_Sign1 | | 24 | 359 | 68 52 | 0 | | Actif | | | | --------- | --- | --- | --- | ----- | --- | --- | ----- | --- | --- | | IMG_Sign2 | | 97 | 359 | 88 52 | 0 | | Actif | | | Combo reihcif eétsissa eisiaS eriotagilbo eisiaS ruesnecsa elluB .zroH tnemeliféD | | | | | | BAT ehcuoT | | | ediv is LLUN | | | --- | --------------------- | --- | --- | ------------ | ---------- | --- | ----------- | ------------ | --- | | | X noitisoP Y noitisoP | | | laitini tatE | | | eisias cevA | | | sruocraP ruegraL ruetuaH elbisiV | | | | nalP | | elbaT | | eéirT | | | | ----------- | ------ | --- | ---- | ----- | ------- | --- | ----- | --- | --- | | CMB_TypeSig | 13 272 | 304 | 24 0 | Actif | Mémoire | | Non | | | Superchamp : ONG_Menu.SC_CreationDoc Champ de saisie euqitamotua tnemecaffE euqitamotua eisias niF reihcif eétsissa eisiaS | | | | | | | eriotagilbo eisiaS | | .zroH tnemeliféD .trev tnemeliféD | | | --- | --- | --- | --- | --- | --- | ------------------ | --- | --------------------------------- | --- | latnoziroh .csA essap ed toM | | | | | BAT ehcuoT | | | cnalb à esiM ediv is LLUN | | lacitrev .csA | | --- | --- | --- | --- | ------------------------ | --------------------- | --- | ------------------------- | --- | ------------- | | | | | | laitini tatE eisias epyT | engilitluM FTR tamroF | | | | | X noitisoP Y noitisoP ruegraL ruetuaH elbisiV nalP | SAI_Img | 673 300 278 | 38 0 | Actif | Texte | | Non | | | | | ------- | ----------- | ---- | ----- | ----- | --- | --- | --- | --- | --- | Bouton notuob epyT BAT ehcuoT | | | X noitisoP Y noitisoP | | | | | laitini tatE | | | | --- | --- | --------------------- | --- | --------------- | --- | --- | ------------ | --- | --- | | | | | | ruegraL ruetuaH | | | | | | elbisiV nalP | BTN_AnnulerRDV | | 754 | 363 | 225 24 | | 0 | Actif | Validati | | | -------------- | --- | --- | ---------------- | ------ | --- | --- | ----- | -------- | --- | | BTN_Fichier | | 957 | 313 | 21 21 | | 0 | Actif | Normal | | | 12/08/2026 | | | Omika_S_Comm_DEV | | | | | | 54 | Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Superchamp : ONG_Menu.SC_CreationDoc1 Champ de saisie euqitamotua tnemecaffE euqitamotua eisias niF reihcif eétsissa eisiaS | | | | | | eriotagilbo eisiaS | .zroH tnemeliféD | | --- | --- | --- | --- | --- | ------------------ | ---------------- | .trev tnemeliféD latnoziroh .csA essap ed toM | | | | BAT ehcuoT | FTR tamroF | cnalb à esiM ediv is LLUN | lacitrev .csA | | --- | --------------------- | --- | ------------------------ | ---------- | ------------------------- | ------------- | | | X noitisoP Y noitisoP | | laitini tatE eisias epyT | engilitluM | | | ruetuaH ruegraL elbisiV nalP | SAI_Rapport | 690 132 283 | 38 0 | Actif Texte | | Non | | | ----------- | ----------- | ---- | ----------- | --- | --- | --- | Bouton BAT ehcuoT notuob epyT laitini tatE X noitisoP Y noitisoP | | | | ruegraL ruetuaH | | | | | --- | --- | --- | --------------- | --- | --- | --- | elbisiV nalP | BTN_Fichier | | 979 | 149 21 | 21 | 0 Actif | Normal | | ----------- | --- | --- | ------- | --- | ------- | -------- | | BTN_Rapport | | 760 | 176 240 | 24 | 0 Actif | Validati | Superchamp : ONG_Menu.SC_MsgExt Champ de saisie euqitamotua tnemecaffE euqitamotua eisias niF reihcif eétsissa eisiaS | | | | | | eriotagilbo eisiaS | .zroH tnemeliféD | | --- | --- | --- | --- | --- | ------------------ | ---------------- | .trev tnemeliféD latnoziroh .csA essap ed toM | | | | BAT ehcuoT | FTR tamroF | cnalb à esiM ediv is LLUN | lacitrev .csA | | --- | --------------------- | --- | ------------------------ | ---------- | ------------------------- | ------------- | | | X noitisoP Y noitisoP | | laitini tatE eisias epyT | engilitluM | | | ruetuaH ruegraL elbisiV nalP | SAI_AdDest | 610 218 391 | 34 0 | Actif Texte | | Non | | | ---------- | ----------- | ---- | ----------- | --- | --- | --- | | SAI_AdExp | 354 218 250 | 34 0 | Actif Texte | | Non | | | SAI_Sujet | 354 258 647 | 42 0 | Actif Texte | | Non | | Bouton BAT ehcuoT notuob epyT laitini tatE X noitisoP Y noitisoP | | | | ruegraL ruetuaH | | | | | --- | --- | --- | --------------- | --- | --- | --- | elbisiV nalP | BTN_MsgExt | | 785 | 622 225 | 24 | 0 Actif | Validati | | ---------- | --- | --- | ---------------- | --- | ------- | -------- | | 12/08/2026 | | | Omika_S_Comm_DEV | | | 55 | Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Éditeur HTML BAT ehcuoT | | | X noitisoP | Y noitisoP | | | | | | laitini tatE | | | --- | --- | ---------- | ---------- | --- | --- | --- | --- | --- | ------------ | --- | ruetuaH ruegraL elbisiV nalP | EDHTML_Corps | | 346 | | 306 | 664 | 306 | | 0 | Actif | | | ------------ | --- | --- | --- | --- | --- | --- | --- | --- | ----- | --- | Superchamp : ONG_Menu.SC_NoteDoc Champ de saisie euqitamotua tnemecaffE euqitamotua eisias niF reihcif eétsissa eisiaS | | | | | | | | eriotagilbo eisiaS | | .zroH tnemeliféD | | | --- | --- | --- | --- | --- | --- | --- | ------------------ | --- | ---------------- | --- | .trev tnemeliféD latnoziroh .csA essap ed toM | | | | | BAT ehcuoT | | FTR tamroF | | cnalb à esiM ediv is LLUN | | lacitrev .csA | | --- | --------------------- | --- | --- | ------------ | ----------- | ---------- | --- | ------------------------- | --- | ------------- | | | X noitisoP Y noitisoP | | | laitini tatE | eisias epyT | engilitluM | | | | | ruetuaH ruegraL elbisiV nalP | SAI_NoteDoc | 14 99 320 | 62 0 | | Actif | Texte | | Non | | | | | ----------- | --------- | ---- | --- | ----- | ----- | --- | --- | --- | --- | --- | Bouton notuob epyT | | | | | | | | | laitini tatE | BAT ehcuoT | | | --- | --- | --- | --- | --- | --- | --- | --- | ------------ | ---------- | --- | X noitisoP Y noitisoP | | | | | ruegraL | ruetuaH | | | | | | | --- | --- | --- | --- | ------- | ------- | --- | --- | --- | --- | --- | elbisiV nalP | BTN_AnnulerRDV | | 70 | 167 | 264 | 24 | | 0 | Actif | Validati | | | -------------- | --- | --- | --- | --- | --- | --- | --- | ----- | -------- | --- | Superchamp : ONG_Menu.SC_NoteInter Champ de saisie euqitamotua tnemecaffE euqitamotua eisias niF reihcif eétsissa eisiaS | | | | | | | | eriotagilbo eisiaS | | .zroH tnemeliféD .trev tnemeliféD | | | --- | --- | --- | --- | --- | --- | --- | ------------------ | --- | --------------------------------- | --- | latnoziroh .csA | | | | | | | | essap ed toM | cnalb à esiM ediv is LLUN | | lacitrev .csA | | --- | --------------------- | --- | --- | ----------------------- | ----------- | ---------- | ------------ | ------------------------- | --- | ------------- | | | | | | laitini tatE BAT ehcuoT | eisias epyT | FTR tamroF | | | | | | | X noitisoP Y noitisoP | | | | | engilitluM | | | | | ruegraL ruetuaH elbisiV nalP | SAI_NoteInt | 353 105 320 | 62 0 | | Actif | Texte | | Non | | | | | ----------- | ----------- | ---- | ---------------- | ----- | ----- | --- | --- | --- | --- | --- | | 12/08/2026 | | | Omika_S_Comm_DEV | | | | | | | 56 | Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Bouton notuob epyT | | | | | | | laitini tatE BAT ehcuoT | | | | --- | --- | --------------------- | --------------- | --- | --- | ----------------------- | --- | --- | | | | X noitisoP Y noitisoP | | | | | | | | | | | ruegraL ruetuaH | | | | | | elbisiV nalP | BTN_AnnulerRDV | | 448 | 173 225 | 24 | 0 | Actif | Validati | | | -------------- | --- | --- | ------- | --- | --- | ----- | -------- | --- | Superchamp : ONG_Menu.SC_Planifier Champ de saisie euqitamotua tnemecaffE euqitamotua eisias niF reihcif eétsissa eisiaS | | | | | | eriotagilbo eisiaS | | .zroH tnemeliféD .trev tnemeliféD | | | --- | --- | --- | --- | --- | ------------------ | --- | --------------------------------- | --- | latnoziroh .csA | | | | | | essap ed toM | cnalb à esiM ediv is LLUN | | lacitrev .csA | | --- | --------------------- | --- | ---------------------- | ---------- | ------------ | ------------------------- | --- | ------------- | | | | | BAT ehcuoT eisias epyT | | FTR tamroF | | | | | | X noitisoP Y noitisoP | | laitini tatE | engilitluM | | | | | ruegraL ruetuaH elbisiV nalP | SAI_DateDebP | 340 99 | 162 22 0 | Actif Date | | Non | | | | | ------------ | ------- | -------- | ----------- | --- | --- | --- | --- | --- | | SAI_DateFinP | 340 127 | 162 22 0 | Actif Date | | Non | | | | | SAI_HeureDP | 508 99 | 132 22 0 | Actif Heure | | Non | | | | | SAI_HeureFP | 508 127 | 132 22 0 | Actif Heure | | Non | | | | Bouton notuob epyT | | | | | | | laitini tatE BAT ehcuoT | | | | --- | --- | --------------------- | --------------- | --- | --- | ----------------------- | --- | --- | | | | X noitisoP Y noitisoP | | | | | | | | | | | ruegraL ruetuaH | | | | | | elbisiV nalP | BTN_Planifier | | 420 | 214 225 | 24 | 0 | Actif | Validati | | | ------------- | --- | --- | ------- | --- | --- | ----- | -------- | --- | Interrupteur ellennoitroporp .loC sennoloc .bN BAT ehcuoT | | | X noitisoP Y noitisoP | | | laitini tatE | | | staté siorT | | --- | --- | --------------------- | --- | --- | ------------ | --- | --- | ----------- | ruetuaH ruegraL elbisiV nalP | INT_Superposable | | 341 185 | 131 23 | 0 | Actif | | 1 | | | ---------------- | --- | ------- | ---------------- | --- | ----- | --- | --- | --- | | 12/08/2026 | | | Omika_S_Comm_DEV | | | | | 57 | Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Combo reihcif eétsissa eisiaS | | | | | | | eriotagilbo eisiaS | .zroH tnemeliféD | | --- | --- | --- | --- | --- | --- | ------------------ | ---------------- | ruesnecsa elluB ediv is LLUN | | | | laitini tatE | BAT ehcuoT | eisias cevA | | | | --- | --------------------- | --------------- | ------------ | ---------- | ----------- | --- | --- | | | X noitisoP Y noitisoP | | | | | | | | | | ruegraL ruetuaH | | | sruocraP | | | elbisiV | | | | | elbaT | eéirT | | | | --- | --- | --- | --- | ----- | ----- | --- | --- | nalP | CMB_StatusP | 336 155 | 304 | 24 0 Actif | Mémoire | | Non | | | ----------- | ------- | --- | ---------- | ------- | --- | --- | --- | Superchamp : ONG_Menu.SC_ValiderRDV Champ de saisie euqitamotua tnemecaffE euqitamotua eisias niF reihcif eétsissa eisiaS | | | | | | eriotagilbo eisiaS | | .zroH tnemeliféD .trev tnemeliféD | | --- | --- | --- | --- | --- | ------------------ | --- | --------------------------------- | latnoziroh .csA | | | | | | essap ed toM cnalb à esiM | ediv is LLUN | | | --- | --------------------- | --- | ---------------------- | ---------- | ------------------------- | ------------ | ------------- | | | | | BAT ehcuoT eisias epyT | FTR tamroF | | | lacitrev .csA | | | X noitisoP Y noitisoP | | laitini tatE | engilitluM | | | | ruegraL ruetuaH elbisiV nalP | SAI_DateDebT | 347 255 162 | 22 0 | Actif Date | | Non | | | | ------------- | ----------- | ---- | ----------- | --- | --- | --- | --- | | SAI_DateFinT | 347 283 162 | 22 0 | Actif Date | | Non | | | | SAI_HeureDT | 515 255 132 | 22 0 | Actif Heure | | Non | | | | SAI_HeureFT | 515 283 132 | 22 0 | Actif Heure | | Non | | | | SAI_NoteTemps | 347 341 300 | 44 0 | Actif Texte | | Non | | | Bouton notuob epyT BAT ehcuoT | | | X noitisoP Y noitisoP | | | | laitini tatE | | | --- | --- | --------------------- | --- | --- | --- | ------------ | --- | ruetuaH ruegraL elbisiV nalP | BTN_Valider1Temps | | 422 | 399 225 | 24 | 0 Actif | | Validati | | ----------------- | --- | --- | ------- | --- | ------- | --- | -------- | Combo reihcif eétsissa eisiaS | | | | | | | eriotagilbo eisiaS | .zroH tnemeliféD | | --- | --- | --- | --- | --- | --- | ------------------ | ---------------- | ruesnecsa elluB | | | | | BAT ehcuoT | | | ediv is LLUN | | --- | --------------------- | --- | ------------ | ---------- | ----------- | --- | ------------ | | | | | laitini tatE | | eisias cevA | | | | | X noitisoP Y noitisoP | | | | sruocraP | | | ruegraL ruetuaH elbisiV | | | | | elbaT | eéirT | | | | --- | --- | --- | --- | ----- | ----- | --- | --- | nalP | CMB_TypeTemps | 343 311 | 304 | 24 0 Actif | Mémoire | | Non | | | ------------- | ------- | --- | ---------------- | ------- | --- | --- | --- | | 12/08/2026 | | | Omika_S_Comm_DEV | | | | 58 | Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Fenêtre : FEN_Menu Bouton : ONG_Menu.BTN_RecupDoc Libellé FR: Recuperer le document sélectionné Ordre navigation 2 Curseur survol 0 UI par l'utilisateur Selon fenêtre On/Off Non Recopie Option menu flèche Non Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Retrait gauche 0 Réduction Ruban Ne pas réduire le bouton Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Animer si trop long Non Animée par défaut Oui Mode ellipse Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Type flèche Texte Markdown Non Mode menu ctx. Image FR: D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\Gabarits\WD\270 Mika Dark\Mika Dark_Pict_ok_16_5.png Nb. états image 5 Nb. états fond 5 Etirement de l'image de fond Nb. étapes animation 1 Largeur Halo 0 Hauteur Halo 0 Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 59 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Bouton : ONG_Menu.BTN_Valider Libellé FR: Valider RDV Sélectionné Ordre navigation 6 Curseur survol 0 UI par l'utilisateur Selon fenêtre On/Off Non Recopie Option menu flèche Non Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Retrait gauche 0 Réduction Ruban Ne pas réduire le bouton Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Animer si trop long Non Animée par défaut Oui Mode ellipse Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Type flèche Texte Markdown Non Mode menu ctx. Image FR: D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\Gabarits\WD\270 Mika Dark\Mika Dark_Pict_ok_16_5.png Nb. états image 5 Image fond FR: D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\Gabarits\WD\270 Mika Dark\Mika Dark_Btn_Media_Right.png Nb. états fond 5 Etirement de l'image de fond Mode 9 images personnalisé Nb. étapes animation 1 Largeur Halo 0 Hauteur Halo 0 Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Bas Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 60 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Combo : CMB_Users Libellé FR: Liste des utilisateurs Ordre navigation 1 Curseur survol 0 UI par l'utilisateur Selon fenêtre Util. gValeurMémorisée pour valeur Oui Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Cadrage horz. Gauche Cadrage vert. Centre Orientation verticale Non Hauteur liste 0 Largeur liste 592 Larg. déroulée perso. Non Hauteur ligne 20 Retrait gauche 2 Position X interne 8 Largeur interne 592 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Taille de saisie 0 Type saisie Texte Mode ellipse Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Effacement automatique Non Fin saisie automatique Non Vide si zéro Non Avec focus Oui Redimensionnable Oui Mémorise la taille Oui Historique des saisies Non Historique des sélections Non gLienActive Oui 12/08/2026 Omika_S_Comm_DEV 61 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Valeur persistante Non Texte Markdown Non Mode menu ctx. Avec recherche Non Nb. Enreg. Max 0 1ère ligne perso. Non Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Image : ONG_Menu.IMG_Buffer Curseur survol 0 UI par l'utilisateur Selon fenêtre Menu manip. image Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Cadrage vert. Haut Cadrage fonctions gXXX Tenir compte du cadrage Numéro aide 0 Opacité 100 Ascenseur et zoom auto. Non Autorise ChangeGabarit Oui Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Texte Markdown Non Mode menu ctx. Mire visible Oui Zoom par double taps Oui Force monochrome Non Mode 9 images Non Chargement en fond Non Orientation EXIF Oui Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 62 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Image : IMG_Vide Curseur survol 0 UI par l'utilisateur Selon fenêtre Menu manip. image Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Cadrage vert. Haut Cadrage fonctions gXXX Tenir compte du cadrage Numéro aide 0 Opacité 100 Ascenseur et zoom auto. Non Autorise ChangeGabarit Oui Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Texte Markdown Non Mode menu ctx. Mire visible Oui Zoom par double taps Oui Force monochrome Non Mode 9 images Non Chargement en fond Non Orientation EXIF Oui Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Onglet : ONG_Menu Libellé FR: &Onglet Valeur initiale 1 Ordre navigation 3 Curseur survol 0 Onglet dynamique Non Libellé volet FR: Nouvel onglet UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Retrait gauche 4 Retrait des onglets 0 Numéro aide 0 12/08/2026 Omika_S_Comm_DEV 63 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Autorise ChangeGabarit Oui Bouton Fermer Oui Bouton Nouveau Oui Volets détachables Oui Mémoriser Configuration Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Swipe Non Mode affichage volets < Standard > Valeur persistante Non Texte Markdown Non Mode menu ctx. Nb. états image 1 Ancrage Largeur et hauteur Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Superchamp : ONG_Menu.SC_AnnulerRDV Ordre navigation 3 UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Largeur externe 318 Hauteur externe 186 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Autorise ChangeGabarit Oui Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Valeur persistante Non Texte Markdown Non Source de remplissage Table chargée en mémoire Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 64 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Superchamp : ONG_Menu.SC_CR Ordre navigation 1 UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Largeur externe 320 Hauteur externe 353 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Autorise ChangeGabarit Oui Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Valeur persistante Non Texte Markdown Non Source de remplissage Table chargée en mémoire Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Superchamp : ONG_Menu.SC_CreationDoc Ordre navigation 5 UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Largeur externe 318 Hauteur externe 106 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Autorise ChangeGabarit Oui Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Valeur persistante Non Texte Markdown Non Source de remplissage Table chargée en mémoire Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage 12/08/2026 Omika_S_Comm_DEV 65 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Superchamp : ONG_Menu.SC_CreationDoc1 Ordre navigation 3 UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Largeur externe 318 Hauteur externe 78 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Autorise ChangeGabarit Oui Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Valeur persistante Non Texte Markdown Non Source de remplissage Table chargée en mémoire Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Superchamp : ONG_Menu.SC_MsgExt Ordre navigation 4 UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Largeur externe 664 Hauteur externe 443 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Autorise ChangeGabarit Oui Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Valeur persistante Non Texte Markdown Non 12/08/2026 Omika_S_Comm_DEV 66 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Source de remplissage Table chargée en mémoire Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Superchamp : ONG_Menu.SC_NoteDoc Ordre navigation 1 UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Largeur externe 334 Hauteur externe 104 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Autorise ChangeGabarit Oui Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Valeur persistante Non Texte Markdown Non Source de remplissage Table chargée en mémoire Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Superchamp : ONG_Menu.SC_NoteInter Ordre navigation 2 UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Largeur externe 334 Hauteur externe 104 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Autorise ChangeGabarit Oui Alignement sur l'axe secondaire défini par le champ flexbox (auto) 12/08/2026 Omika_S_Comm_DEV 67 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Facteur de rétrécissement 0 Facteur d'agrandissement 0 Valeur persistante Non Texte Markdown Non Source de remplissage Table chargée en mémoire Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Superchamp : ONG_Menu.SC_Planifier Ordre navigation 2 UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Largeur externe 318 Hauteur externe 149 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Autorise ChangeGabarit Oui Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Valeur persistante Non Texte Markdown Non Source de remplissage Table chargée en mémoire Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Superchamp : ONG_Menu.SC_ValiderRDV Ordre navigation 4 UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Largeur externe 318 Hauteur externe 186 12/08/2026 Omika_S_Comm_DEV 68 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Autorise ChangeGabarit Oui Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Valeur persistante Non Texte Markdown Non Source de remplissage Table chargée en mémoire Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Sélecteur : SEL_test Libellé FR: &Sélecteur 2 colonnes Valeur initiale 1 Ordre navigation 2 Curseur survol 0 UI par l'utilisateur Selon fenêtre Avec ValeurRenvoyée Oui Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage vert. Haut Hauteur options auto Oui Compacter option Oui Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Look Vista Non Type bandeau Libellé et sous-libellé Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Saisie obligatoire Non Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Valeur persistante Non Option multilignes Non Option format RTF Non Texte Markdown Non Mode menu ctx. 12/08/2026 Omika_S_Comm_DEV 69 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Image D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\Gabarits\WD\270 Mika Nb. états image 1 Largeur image 64 Nb. étapes animation 1 Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Table : ONG_Menu.TABLE_Document Libellé FR: Table Ordre navigation 3 Curseur survol 0 Mode Loupe Filtre UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Hauteur ligne max. 0 Hauteur ligne (sans marges) 18 Marge en haut 2 Marge en bas 2 Marge à gauche 5 Marge à droite 3 Sens Vertical Retrait gauche 0 Angle titre 0 Cadrage fonctions gXXX Tenir compte du cadrage Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Hauteur des lignes Non Sélection multiple Non Bulle sur tronqués Oui Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Scroll au pixel Oui Scroll au doigt Non Asc. horizontal Automatique Asc. vertical Toujours visible Mode de sélection Sélection simple Sélect. colonnes Sans sélection Sélect. cellules Sans sélection Ajout éléments supplémentaires Non Ajout éléments suppl. par le haut Non 12/08/2026 Omika_S_Comm_DEV 70 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Nb. max d'éléments 10000 Etat chargement Non Retrait gauche FI détail 0 FI détail au survol Non Même contenu/ligne Non Aff. résultats Sans affichage Somme FR: Somme Moyenne FR: Moyenne Compteur FR: Compteur Minimum FR: Minimum Maximum FR: Maximum Sauve position auto Non Ruptures Enroulables Oui Titre multiligne Oui Menu ctx. colonne Oui Texte Markdown Non Mode menu ctx. Mémoriser filtres Non Mémoriser tris Non Nb. Enreg. Max 0 Ajout/Suppr. dans variable Oui Synchro HFSQL C/S Jamais Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Largeur et hauteur Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Table : ONG_Menu.TABLE_Inter Libellé FR: Table Ordre navigation 1 Curseur survol 0 Mode Loupe Filtre UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Hauteur ligne max. 0 Hauteur ligne (sans marges) 18 Marge en haut 2 Marge en bas 2 Marge à gauche 5 Marge à droite 3 Sens Vertical Retrait gauche 0 Angle titre 0 Cadrage fonctions gXXX Tenir compte du cadrage 12/08/2026 Omika_S_Comm_DEV 71 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Hauteur des lignes Non Sélection multiple Non Bulle sur tronqués Oui Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Scroll au pixel Oui Scroll au doigt Non Asc. horizontal Automatique Asc. vertical Toujours visible Mode de sélection Sélection simple Sélect. colonnes Sans sélection Sélect. cellules Sans sélection Ajout éléments supplémentaires Non Ajout éléments suppl. par le haut Non Nb. max d'éléments 10000 Etat chargement Non Retrait gauche FI détail 0 FI détail au survol Non Même contenu/ligne Non Aff. résultats Sans affichage Somme FR: Somme Moyenne FR: Moyenne Compteur FR: Compteur Minimum FR: Minimum Maximum FR: Maximum Sauve position auto Non Ruptures Enroulables Oui Titre multiligne Oui Menu ctx. colonne Oui Texte Markdown Non Mode menu ctx. Mémoriser filtres Non Mémoriser tris Non Nb. Enreg. Max 0 Ajout/Suppr. dans variable Oui Synchro HFSQL C/S Jamais Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Hauteur Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 72 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Table : ONG_Menu.TABLE_RDV Libellé FR: Table Ordre navigation 7 Curseur survol 0 Mode Loupe Filtre UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Hauteur ligne max. 0 Hauteur ligne (sans marges) 18 Marge en haut 2 Marge en bas 2 Marge à gauche 5 Marge à droite 3 Sens Vertical Retrait gauche 0 Angle titre 0 Cadrage fonctions gXXX Tenir compte du cadrage Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Hauteur des lignes Non Sélection multiple Non Bulle sur tronqués Oui Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Scroll au pixel Oui Scroll au doigt Non Asc. horizontal Automatique Asc. vertical Toujours visible Mode de sélection Sélection simple Sélect. colonnes Sans sélection Sélect. cellules Sans sélection Ajout éléments supplémentaires Non Ajout éléments suppl. par le haut Non Nb. max d'éléments 10000 Etat chargement Non Retrait gauche FI détail 0 FI détail au survol Non Même contenu/ligne Non Aff. résultats Sans affichage Somme FR: Somme Moyenne FR: Moyenne Compteur FR: Compteur Minimum FR: Minimum Maximum FR: Maximum Sauve position auto Non 12/08/2026 Omika_S_Comm_DEV 73 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Ruptures Enroulables Oui Titre multiligne Oui Menu ctx. colonne Oui Texte Markdown Non Mode menu ctx. Mémoriser filtres Non Mémoriser tris Non Nb. Enreg. Max 0 Ajout/Suppr. dans variable Oui Synchro HFSQL C/S Jamais Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Bas, largeur et hauteur Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Superchamp : ONG_Menu.SC_AnnulerRDV Bouton : ONG_Menu.SC_AnnulerRDV.BTN_AnnulerRDV Libellé FR: Annuler le RDV Sélectionné Ordre navigation 4 Curseur survol 0 UI par l'utilisateur Selon fenêtre On/Off Non Recopie Option menu flèche Non Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Retrait gauche 0 Réduction Ruban Ne pas réduire le bouton Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Animer si trop long Non Animée par défaut Oui Mode ellipse Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Type flèche Texte Markdown Non Mode menu ctx. 12/08/2026 Omika_S_Comm_DEV 74 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Image FR: D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\Gabarits\WD\270 Mika Dark\Mika Dark_Pict_ok_16_5.png Nb. états image 5 Nb. états fond 5 Etirement de l'image de fond Nb. étapes animation 1 Largeur Halo 0 Hauteur Halo 0 Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Combo : ONG_Menu.SC_AnnulerRDV.CMB_MotifAnnu Libellé FR: Motif d'annulation Ordre navigation 2 Curseur survol 0 UI par l'utilisateur Selon fenêtre Util. gValeurMémorisée pour valeur Oui Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Cadrage horz. Gauche Cadrage vert. Centre Orientation verticale Non Hauteur liste 0 Largeur liste 302 Larg. déroulée perso. Non Hauteur ligne 20 Retrait gauche 2 Position X interne 676 Largeur interne 302 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Taille de saisie 0 Type saisie Texte Mode ellipse Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non 12/08/2026 Omika_S_Comm_DEV 75 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Effacement automatique Non Fin saisie automatique Non Vide si zéro Non Avec focus Oui Redimensionnable Oui Mémorise la taille Oui Historique des saisies Non Historique des sélections Non gLienActive Oui Valeur persistante Non Texte Markdown Non Mode menu ctx. Avec recherche Non Nb. Enreg. Max 0 1ère ligne perso. Non Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Combo : ONG_Menu.SC_AnnulerRDV.CMB_OrigAnnu Libellé FR: Origine d'annulation Ordre navigation 1 Curseur survol 0 UI par l'utilisateur Selon fenêtre Util. gValeurMémorisée pour valeur Oui Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Cadrage horz. Gauche Cadrage vert. Centre Orientation verticale Non Hauteur liste 0 Largeur liste 302 Larg. déroulée perso. Non Hauteur ligne 20 Retrait gauche 2 Position X interne 676 Largeur interne 302 12/08/2026 Omika_S_Comm_DEV 76 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Taille de saisie 0 Type saisie Texte Mode ellipse Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Effacement automatique Non Fin saisie automatique Non Vide si zéro Non Avec focus Oui Redimensionnable Oui Mémorise la taille Oui Historique des saisies Non Historique des sélections Non gLienActive Oui Valeur persistante Non Texte Markdown Non Mode menu ctx. Avec recherche Non Nb. Enreg. Max 0 1ère ligne perso. Non Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 77 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Champ de saisie : ONG_Menu.SC_AnnulerRDV.SAI_NoteAnnu Libellé FR: Note Ordre navigation 3 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 713 Largeur interne 265 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Automatique Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui 12/08/2026 Omika_S_Comm_DEV 78 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Superchamp : ONG_Menu.SC_CR Bouton : ONG_Menu.SC_CR.BTN_Valider1 Libellé FR: Valider CR pour le RDV Sélectionné Ordre navigation 12 Curseur survol 0 UI par l'utilisateur Selon fenêtre On/Off Non Recopie Option menu flèche Non Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Retrait gauche 0 Réduction Ruban Ne pas réduire le bouton Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Animer si trop long Non Animée par défaut Oui 12/08/2026 Omika_S_Comm_DEV 79 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Mode ellipse Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Type flèche Texte Markdown Non Mode menu ctx. Image FR: D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\Gabarits\WD\270 Mika Dark\Mika Dark_Pict_ok_16_5.png Nb. états image 5 Nb. états fond 5 Etirement de l'image de fond Nb. étapes animation 1 Largeur Halo 0 Hauteur Halo 0 Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Combo : ONG_Menu.SC_CR.CMB_TypeSig Libellé FR: Type Sign Ordre navigation 9 Curseur survol 0 UI par l'utilisateur Selon fenêtre Util. gValeurMémorisée pour valeur Oui Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Cadrage horz. Gauche Cadrage vert. Centre Orientation verticale Non Hauteur liste 0 Largeur liste 246 Larg. déroulée perso. Non Hauteur ligne 20 Retrait gauche 2 Position X interne 71 Largeur interne 246 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Taille de saisie 0 Type saisie Texte Mode ellipse 12/08/2026 Omika_S_Comm_DEV 80 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Effacement automatique Non Fin saisie automatique Non Vide si zéro Non Avec focus Oui Redimensionnable Oui Mémorise la taille Oui Historique des saisies Non Historique des sélections Non gLienActive Oui Valeur persistante Non Texte Markdown Non Mode menu ctx. Avec recherche Non Nb. Enreg. Max 0 1ère ligne perso. Non Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Image : ONG_Menu.SC_CR.IMG_Sign1 Valeur initiale FR: D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\sign1.jpg Curseur survol 0 UI par l'utilisateur Selon fenêtre Menu manip. image Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Cadrage vert. Haut Cadrage fonctions gXXX Tenir compte du cadrage Numéro aide 0 Opacité 100 12/08/2026 Omika_S_Comm_DEV 81 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Ascenseur et zoom auto. Non Autorise ChangeGabarit Oui Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Texte Markdown Non Mode menu ctx. Mire visible Oui Zoom par double taps Oui Force monochrome Non Mode 9 images Non Chargement en fond Non Orientation EXIF Oui Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Image : ONG_Menu.SC_CR.IMG_Sign2 Valeur initiale FR: D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\sign2.jpg Curseur survol 0 UI par l'utilisateur Selon fenêtre Menu manip. image Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Cadrage vert. Haut Cadrage fonctions gXXX Tenir compte du cadrage Numéro aide 0 Opacité 100 Ascenseur et zoom auto. Non Autorise ChangeGabarit Oui Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Texte Markdown Non Mode menu ctx. Mire visible Oui Zoom par double taps Oui Force monochrome Non Mode 9 images Non Chargement en fond Non Orientation EXIF Oui Personnaliser le picto AMI Non Indice du picto AMI 1 12/08/2026 Omika_S_Comm_DEV 82 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Interrupteur : ONG_Menu.SC_CR.INT_DevisConforme Libellé FR: &Interrupteur Valeur initiale 0 Ordre navigation 6 Curseur survol 0 UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage vert. Haut Hauteur options auto Oui Compacter option Oui Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Look Vista Non Type bandeau Libellé et sous-libellé Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Saisie obligatoire Non Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Valeur persistante Non Option multilignes Non Option format RTF Non Texte Markdown Non Mode menu ctx. Image D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\Gabarits\WD\270 Mika Nb. états image 1 Largeur image 64 Nb. étapes animation 1 Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 83 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Interrupteur : ONG_Menu.SC_CR.INT_Reserve Libellé FR: &Interrupteur Valeur initiale 0 Ordre navigation 5 Curseur survol 0 UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage vert. Haut Hauteur options auto Oui Compacter option Oui Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Look Vista Non Type bandeau Libellé et sous-libellé Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Saisie obligatoire Non Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Valeur persistante Non Option multilignes Non Option format RTF Non Texte Markdown Non Mode menu ctx. Image D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\Gabarits\WD\270 Mika Nb. états image 1 Largeur image 64 Nb. étapes animation 1 Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 84 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Champ de saisie : ONG_Menu.SC_CR.SAI_Client Libellé FR: Client Ordre navigation 8 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 67 Largeur interne 249 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Automatique Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui 12/08/2026 Omika_S_Comm_DEV 85 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Champ de saisie : ONG_Menu.SC_CR.SAI_DateDebCR Libellé FR: Date Début Ordre navigation 1 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Oui Bouton Calculatrice Oui Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Droite Position X interne 89 Largeur interne 89 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non 12/08/2026 Omika_S_Comm_DEV 86 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: UseSystemMask Format retour AAAAMMJJ Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 87 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Champ de saisie : ONG_Menu.SC_CR.SAI_DateFinCR Libellé FR: Date Fin Ordre navigation 3 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Oui Bouton Calculatrice Oui Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Droite Position X interne 89 Largeur interne 89 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: UseSystemMask Format retour AAAAMMJJ Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non 12/08/2026 Omika_S_Comm_DEV 88 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Champ de saisie : ONG_Menu.SC_CR.SAI_HeureDCR Libellé FR: Heure Début Ordre navigation 2 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Droite Position X interne 258 Largeur interne 58 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui 12/08/2026 Omika_S_Comm_DEV 89 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: HH:MM:SS Format retour HHMMSS Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 90 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Champ de saisie : ONG_Menu.SC_CR.SAI_HeureFCR Libellé FR: Heure Fin Ordre navigation 4 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Droite Position X interne 258 Largeur interne 58 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: HH:MM:SS Format retour HHMMSS Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non 12/08/2026 Omika_S_Comm_DEV 91 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Champ de saisie : ONG_Menu.SC_CR.SAI_NoteClient Libellé FR: Note Client Ordre navigation 10 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 173 Largeur interne 149 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui 12/08/2026 Omika_S_Comm_DEV 92 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Automatique Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 93 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Champ de saisie : ONG_Menu.SC_CR.SAI_NoteUser Libellé FR: Note Colb Ordre navigation 11 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 14 Largeur interne 149 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Automatique Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui 12/08/2026 Omika_S_Comm_DEV 94 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Champ de saisie : ONG_Menu.SC_CR.SAI_Reserve Libellé FR: Reserve Ordre navigation 7 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 67 Largeur interne 249 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non 12/08/2026 Omika_S_Comm_DEV 95 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Automatique Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 96 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Superchamp : ONG_Menu.SC_CreationDoc Bouton : ONG_Menu.SC_CreationDoc.BTN_AnnulerRDV Libellé FR: Ajouter l'img dans le RDV sélectionné Ordre navigation 3 Curseur survol 0 UI par l'utilisateur Selon fenêtre On/Off Non Recopie Option menu flèche Non Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Retrait gauche 0 Réduction Ruban Ne pas réduire le bouton Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Animer si trop long Non Animée par défaut Oui Mode ellipse Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Type flèche Texte Markdown Non Mode menu ctx. Image FR: D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\Gabarits\WD\270 Mika Dark\Mika Dark_Pict_ok_16_5.png Nb. états image 5 Nb. états fond 5 Etirement de l'image de fond Nb. étapes animation 1 Largeur Halo 0 Hauteur Halo 0 Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 97 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Bouton : ONG_Menu.SC_CreationDoc.BTN_Fichier Libellé FR: &Bouton Ordre navigation 2 Curseur survol 0 UI par l'utilisateur Selon fenêtre On/Off Non Recopie Option menu flèche Non Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Retrait gauche 0 Réduction Ruban Ne pas réduire le bouton Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Animer si trop long Non Animée par défaut Oui Mode ellipse Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Type flèche Texte Markdown Non Mode menu ctx. Image FR: D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\Gabarits\WD\270 Mika Dark\Mika Dark_Pict_Browse_16_5.png Nb. états image 5 Nb. états fond 1 Etirement de l'image de fond Nb. étapes animation 1 Largeur Halo 0 Hauteur Halo 0 Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Droite Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 98 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Champ de saisie : ONG_Menu.SC_CreationDoc.SAI_Img Libellé FR: Image Ordre navigation 1 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 675 Largeur interne 276 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 260 Masque saisie FR: 10 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Chemin de fichier Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Oui Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui 12/08/2026 Omika_S_Comm_DEV 99 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF Jamais Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Largeur Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Superchamp : ONG_Menu.SC_CreationDoc1 Bouton : ONG_Menu.SC_CreationDoc1.BTN_Fichier Libellé FR: &Bouton Ordre navigation 2 Curseur survol 0 UI par l'utilisateur Selon fenêtre On/Off Non Recopie Option menu flèche Non Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Retrait gauche 0 Réduction Ruban Ne pas réduire le bouton Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Animer si trop long Non Animée par défaut Oui 12/08/2026 Omika_S_Comm_DEV 100 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Mode ellipse Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Type flèche Texte Markdown Non Mode menu ctx. Image FR: D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\Gabarits\WD\270 Mika Dark\Mika Dark_Pict_Browse_16_5.png Nb. états image 5 Nb. états fond 1 Etirement de l'image de fond Nb. étapes animation 1 Largeur Halo 0 Hauteur Halo 0 Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Droite Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Bouton : ONG_Menu.SC_CreationDoc1.BTN_Rapport Libellé FR: Ajouter rapport dans l'inter sélectionné Ordre navigation 3 Curseur survol 0 UI par l'utilisateur Selon fenêtre On/Off Non Recopie Option menu flèche Non Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Retrait gauche 0 Réduction Ruban Ne pas réduire le bouton Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Animer si trop long Non Animée par défaut Oui Mode ellipse Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Type flèche Texte Markdown Non Mode menu ctx. 12/08/2026 Omika_S_Comm_DEV 101 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Image FR: D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\Gabarits\WD\270 Mika Dark\Mika Dark_Pict_ok_16_5.png Nb. états image 5 Nb. états fond 5 Etirement de l'image de fond Nb. étapes animation 1 Largeur Halo 0 Hauteur Halo 0 Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Champ de saisie : ONG_Menu.SC_CreationDoc1.SAI_Rapport Libellé FR: Rapport Ordre navigation 1 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 696 Largeur interne 277 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 260 Masque saisie FR: 10 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Chemin de fichier Lien automatique Non Verifier l'orthographe Non Unicode Non 12/08/2026 Omika_S_Comm_DEV 102 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Oui Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF Jamais Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Largeur Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 103 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Superchamp : ONG_Menu.SC_MsgExt Bouton : ONG_Menu.SC_MsgExt.BTN_MsgExt Libellé FR: Créer message externe inter sélectionné Ordre navigation 5 Curseur survol 0 UI par l'utilisateur Selon fenêtre On/Off Non Recopie Option menu flèche Non Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Retrait gauche 0 Réduction Ruban Ne pas réduire le bouton Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Animer si trop long Non Animée par défaut Oui Mode ellipse Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Type flèche Texte Markdown Non Mode menu ctx. Image FR: D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\Gabarits\WD\270 Mika Dark\Mika Dark_Pict_ok_16_5.png Nb. états image 5 Nb. états fond 5 Etirement de l'image de fond Nb. étapes animation 1 Largeur Halo 0 Hauteur Halo 0 Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 104 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Éditeur HTML : ONG_Menu.SC_MsgExt.EDHTML_Corps Libellé FR: Éditeur HTML Ordre navigation 4 Curseur survol 0 UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Sécurité HTML Non WL.Execute() dans JS Non Verifier l'orthographe Oui Unicode Non Barre d'outils Oui Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Mode Minibarre Non Texte Markdown Non Mode menu ctx. Thème sur ruban Non Change Document Oui Édition EMail Non Code source Oui Exécute JS dans document Non Liaison sur Non Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Largeur Taux anc. droite 1000 Taux anc. bas 0 Taux anc. largeur 1000 Taux anc. hauteur 1000 Champ de saisie : ONG_Menu.SC_MsgExt.SAI_AdDest Libellé FR: Destinateur Ordre navigation 2 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB 12/08/2026 Omika_S_Comm_DEV 105 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 681 Largeur interne 320 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 260 Masque saisie FR: 17 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Oui Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non 12/08/2026 Omika_S_Comm_DEV 106 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Champ de saisie : ONG_Menu.SC_MsgExt.SAI_AdExp Libellé FR: Expéditeur Ordre navigation 1 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 416 Largeur interne 188 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 260 Masque saisie FR: 17 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) 12/08/2026 Omika_S_Comm_DEV 107 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Oui Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Champ de saisie : ONG_Menu.SC_MsgExt.SAI_Sujet Libellé FR: Sujet Ordre navigation 3 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB 12/08/2026 Omika_S_Comm_DEV 108 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 358 Largeur interne 643 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Automatique Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non 12/08/2026 Omika_S_Comm_DEV 109 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Superchamp : ONG_Menu.SC_NoteDoc Bouton : ONG_Menu.SC_NoteDoc.BTN_AnnulerRDV Libellé FR: Créer note dans le document Sélectionné Ordre navigation 2 Curseur survol 0 UI par l'utilisateur Selon fenêtre On/Off Non Recopie Option menu flèche Non Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Retrait gauche 0 Réduction Ruban Ne pas réduire le bouton Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Animer si trop long Non Animée par défaut Oui Mode ellipse Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Type flèche Texte Markdown Non Mode menu ctx. Image FR: D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\Gabarits\WD\270 Mika Dark\Mika Dark_Pict_ok_16_5.png Nb. états image 5 Nb. états fond 5 12/08/2026 Omika_S_Comm_DEV 110 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Etirement de l'image de fond Nb. étapes animation 1 Largeur Halo 0 Hauteur Halo 0 Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Champ de saisie : ONG_Menu.SC_NoteDoc.SAI_NoteDoc Libellé FR: Note Ordre navigation 1 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 15 Largeur interne 319 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais 12/08/2026 Omika_S_Comm_DEV 111 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Asc. vertical Automatique Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Superchamp : ONG_Menu.SC_NoteInter 12/08/2026 Omika_S_Comm_DEV 112 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Bouton : ONG_Menu.SC_NoteInter.BTN_AnnulerRDV Libellé FR: Créer note dans l'inter Sélectionné Ordre navigation 2 Curseur survol 0 UI par l'utilisateur Selon fenêtre On/Off Non Recopie Option menu flèche Non Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Retrait gauche 0 Réduction Ruban Ne pas réduire le bouton Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Animer si trop long Non Animée par défaut Oui Mode ellipse Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Type flèche Texte Markdown Non Mode menu ctx. Image FR: D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\Gabarits\WD\270 Mika Dark\Mika Dark_Pict_ok_16_5.png Nb. états image 5 Nb. états fond 5 Etirement de l'image de fond Nb. étapes animation 1 Largeur Halo 0 Hauteur Halo 0 Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 113 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Champ de saisie : ONG_Menu.SC_NoteInter.SAI_NoteInt Libellé FR: Note Ordre navigation 1 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 354 Largeur interne 319 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Automatique Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui 12/08/2026 Omika_S_Comm_DEV 114 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Superchamp : ONG_Menu.SC_Planifier Bouton : ONG_Menu.SC_Planifier.BTN_Planifier Libellé FR: Planifier le RDV Sélectionné Ordre navigation 7 Curseur survol 0 UI par l'utilisateur Selon fenêtre On/Off Non Recopie Option menu flèche Non Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Retrait gauche 0 Réduction Ruban Ne pas réduire le bouton Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Animer si trop long Non Animée par défaut Oui 12/08/2026 Omika_S_Comm_DEV 115 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Mode ellipse Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Type flèche Texte Markdown Non Mode menu ctx. Image FR: D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\Gabarits\WD\270 Mika Dark\Mika Dark_Pict_ok_16_5.png Nb. états image 5 Nb. états fond 5 Etirement de l'image de fond Nb. étapes animation 1 Largeur Halo 0 Hauteur Halo 0 Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Combo : ONG_Menu.SC_Planifier.CMB_StatusP Libellé FR: Status du RDV Ordre navigation 5 Curseur survol 0 UI par l'utilisateur Selon fenêtre Util. gValeurMémorisée pour valeur Oui Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Cadrage horz. Gauche Cadrage vert. Centre Orientation verticale Non Hauteur liste 0 Largeur liste 219 Larg. déroulée perso. Non Hauteur ligne 20 Retrait gauche 2 Position X interne 421 Largeur interne 219 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Taille de saisie 0 Type saisie Texte Mode ellipse 12/08/2026 Omika_S_Comm_DEV 116 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Effacement automatique Non Fin saisie automatique Non Vide si zéro Non Avec focus Oui Redimensionnable Oui Mémorise la taille Oui Historique des saisies Non Historique des sélections Non gLienActive Oui Valeur persistante Non Texte Markdown Non Mode menu ctx. Avec recherche Non Nb. Enreg. Max 0 1ère ligne perso. Non Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Interrupteur : ONG_Menu.SC_Planifier.INT_Superposable Libellé FR: &Interrupteur Valeur initiale 0 Ordre navigation 6 Curseur survol 0 UI par l'utilisateur Selon fenêtre Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage vert. Haut Hauteur options auto Oui 12/08/2026 Omika_S_Comm_DEV 117 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Compacter option Oui Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Look Vista Non Type bandeau Libellé et sous-libellé Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Saisie obligatoire Non Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Valeur persistante Non Option multilignes Non Option format RTF Non Texte Markdown Non Mode menu ctx. Image D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\Gabarits\WD\270 Mika Nb. états image 1 Largeur image 64 Nb. étapes animation 1 Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 1000 Taux anc. hauteur 1000 Champ de saisie : ONG_Menu.SC_Planifier.SAI_DateDebP Libellé FR: Date Début Ordre navigation 1 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Oui Bouton Calculatrice Oui Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Droite Position X interne 413 Largeur interne 89 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 12/08/2026 Omika_S_Comm_DEV 118 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: UseSystemMask Format retour AAAAMMJJ Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome 12/08/2026 Omika_S_Comm_DEV 119 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Champ de saisie : ONG_Menu.SC_Planifier.SAI_DateFinP Libellé FR: Date Fin Ordre navigation 3 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Oui Bouton Calculatrice Oui Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Droite Position X interne 413 Largeur interne 89 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: UseSystemMask Format retour AAAAMMJJ Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non 12/08/2026 Omika_S_Comm_DEV 120 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Champ de saisie : ONG_Menu.SC_Planifier.SAI_HeureDP Libellé FR: Heure Début Ordre navigation 2 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Droite Position X interne 582 Largeur interne 58 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) 12/08/2026 Omika_S_Comm_DEV 121 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: HH:MM:SS Format retour HHMMSS Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style 12/08/2026 Omika_S_Comm_DEV 122 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Champ de saisie : ONG_Menu.SC_Planifier.SAI_HeureFP Libellé FR: Heure Fin Ordre navigation 4 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Droite Position X interne 582 Largeur interne 58 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: HH:MM:SS Format retour HHMMSS Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui 12/08/2026 Omika_S_Comm_DEV 123 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Superchamp : ONG_Menu.SC_ValiderRDV Bouton : ONG_Menu.SC_ValiderRDV.BTN_Valider1Temps Libellé FR: Valider le temps du RDV Sélectionné Ordre navigation 7 Curseur survol 0 UI par l'utilisateur Selon fenêtre On/Off Non Recopie Option menu flèche Non Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu 12/08/2026 Omika_S_Comm_DEV 124 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Retrait gauche 0 Réduction Ruban Ne pas réduire le bouton Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Animer si trop long Non Animée par défaut Oui Mode ellipse Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Type flèche Texte Markdown Non Mode menu ctx. Image FR: D:\Projets Windev\Batik\Nouvelle Version\Service\Batik_S_Comm_DEV\Gabarits\WD\270 Mika Dark\Mika Dark_Pict_ok_16_5.png Nb. états image 5 Nb. états fond 5 Etirement de l'image de fond Nb. étapes animation 1 Largeur Halo 0 Hauteur Halo 0 Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Combo : ONG_Menu.SC_ValiderRDV.CMB_TypeTemps Libellé FR: Type de temps Ordre navigation 5 Curseur survol 0 UI par l'utilisateur Selon fenêtre Util. gValeurMémorisée pour valeur Oui Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Cadrage horz. Gauche Cadrage vert. Centre Orientation verticale Non Hauteur liste 0 Largeur liste 219 Larg. déroulée perso. Non Hauteur ligne 20 Retrait gauche 2 Position X interne 428 12/08/2026 Omika_S_Comm_DEV 125 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Largeur interne 219 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Taille de saisie 0 Type saisie Texte Mode ellipse Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Effacement automatique Non Fin saisie automatique Non Vide si zéro Non Avec focus Oui Redimensionnable Oui Mémorise la taille Oui Historique des saisies Non Historique des sélections Non gLienActive Oui Valeur persistante Non Texte Markdown Non Mode menu ctx. Avec recherche Non Nb. Enreg. Max 0 1ère ligne perso. Non Personnaliser le picto AMI Non Indice du picto AMI 1 Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 126 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Champ de saisie : ONG_Menu.SC_ValiderRDV.SAI_DateDebT Libellé FR: Date Début Ordre navigation 1 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Oui Bouton Calculatrice Oui Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Droite Position X interne 420 Largeur interne 89 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: UseSystemMask Format retour AAAAMMJJ Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non 12/08/2026 Omika_S_Comm_DEV 127 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Champ de saisie : ONG_Menu.SC_ValiderRDV.SAI_DateFinT Libellé FR: Date Fin Ordre navigation 3 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Oui Bouton Calculatrice Oui Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Droite Position X interne 420 Largeur interne 89 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui 12/08/2026 Omika_S_Comm_DEV 128 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: UseSystemMask Format retour AAAAMMJJ Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 129 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Champ de saisie : ONG_Menu.SC_ValiderRDV.SAI_HeureDT Libellé FR: Heure Début Ordre navigation 2 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Droite Position X interne 589 Largeur interne 58 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: HH:MM:SS Format retour HHMMSS Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non 12/08/2026 Omika_S_Comm_DEV 130 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Champ de saisie : ONG_Menu.SC_ValiderRDV.SAI_HeureFT Libellé FR: Heure Fin Ordre navigation 4 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Droite Position X interne 589 Largeur interne 58 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui 12/08/2026 Omika_S_Comm_DEV 131 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: HH:MM:SS Format retour HHMMSS Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Jamais Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 132 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Champ de saisie : ONG_Menu.SC_ValiderRDV.SAI_NoteTemps Libellé FR: Note Ordre navigation 6 Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calendrier Non Bouton Calculatrice Non Bouton Suppression Touche TAB Accessible par TAB Taux Paral. hauteur 0 Taux Paral. Y 0 Épinglé Non Masquer lors du scrolling Non Ancrage au contenu Cadrage horz. Gauche Position X interne 382 Largeur interne 265 Cadrage fonctions gXXX Cadrage ignoré (pour compatibilité) Numéro aide 0 Opacité 100 Autorise ChangeGabarit Oui Format HTML 0 Sécurité HTML Oui Visualisation markdown Non Saisie manuscrite Non Taille de saisie 0 Masque saisie FR: 0 Borne dans bulle Non Borne dans texte d'indication Oui Sélection multiple Non Mode ellipse Lien automatique Non Verifier l'orthographe Non Unicode Non Alignement sur l'axe secondaire défini par le champ flexbox (auto) Facteur de rétrécissement 0 Facteur d'agrandissement 0 Asc. horizontal Jamais Asc. vertical Automatique Complétion système de fichier Non Saisie invalide Oui, bloquant Saisie obligatoire (erreur) : Style Oui Saisie obligatoire (erreur) : Texte Non Saisie obligatoire (erreur) : Picto Non Saisie obligatoire (indication) : Picto Non Saisie obligatoire (indication) : Texte Non Saisie obligatoire (indication) : Style Oui Saisie invalide : Picto Non Saisie invalide : Texte Non Saisie invalide : Style Oui 12/08/2026 Omika_S_Comm_DEV 133 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Avec focus Oui Historique des saisies Non Valeurs multiples (jetons) Non Autoriser les doublons Non Jeton supprimable Oui Valeur persistante Non Barre d'outils RTF En saisie Texte Markdown Non Mode menu ctx. Gestion Euro Non Personnaliser le picto AMI Non Indice du picto AMI 1 Bouton gauche : Nombre d'états 1 Bouton droit : Nombre d'états 1 Bouton gauche : Largeur 0 Bouton droit : Largeur 0 Bouton gauche : Hauteur 0 Bouton droit : Hauteur 0 Bouton gauche : Monochrome Couleur monochrome du style Bouton droit : Monochrome Couleur monochrome du style Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Table : ONG_Menu.TABLE_Document Colonne de table : ONG_Menu.TABLE_Document.COL_IdDoc (1) Titre FR: Id Doc Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calculatrice Non Touche TAB Accessible par TAB Marge en haut 0 Marge en bas 0 Marge à gauche 0 Marge à droite 0 Retrait gauche 0 Numéro aide 0 Bandeau visible Oui Format HTML 0 Taille de saisie 0 Mot de passe Non Masque saisie FR: 99 999 999 999 999 999 999 Mode ellipse Verifier l'orthographe Non Unicode Non 12/08/2026 Omika_S_Comm_DEV 134 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Saisie obligatoire Non Export/Impression Si visible (défaut) Vide si zéro Non Retour à la ligne Non Coche tous dans entête Non Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Colonne de table : ONG_Menu.TABLE_Document.COL_NomDoc (2) Titre FR: Nom de document Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calculatrice Non Touche TAB Accessible par TAB Marge en haut 0 Marge en bas 0 Marge à gauche 0 Marge à droite 0 Retrait gauche 0 Numéro aide 0 Bandeau visible Oui Format HTML 0 Taille de saisie 0 Mot de passe Non Masque saisie FR: 0 Mode ellipse Verifier l'orthographe Non Unicode Non Saisie obligatoire Non Export/Impression Si visible (défaut) Vide si zéro Non Retour à la ligne Non Coche tous dans entête Non Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 135 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Colonne de table : ONG_Menu.TABLE_Document.COL_Chemin (3) Titre FR: Chemin Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calculatrice Non Touche TAB Accessible par TAB Marge en haut 0 Marge en bas 0 Marge à gauche 0 Marge à droite 0 Retrait gauche 0 Numéro aide 0 Bandeau visible Oui Format HTML 0 Taille de saisie 0 Mot de passe Non Masque saisie FR: 0 Mode ellipse Verifier l'orthographe Non Unicode Non Saisie obligatoire Non Export/Impression Si visible (défaut) Vide si zéro Non Retour à la ligne Non Coche tous dans entête Non Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Colonne de table : ONG_Menu.TABLE_Document.COL_IdInterDoc (4) Titre FR: IdInterDoc Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calculatrice Non Touche TAB Accessible par TAB Marge en haut 0 Marge en bas 0 Marge à gauche 0 Marge à droite 0 Retrait gauche 0 Numéro aide 0 Bandeau visible Oui Format HTML 0 Taille de saisie 0 Mot de passe Non Masque saisie FR: 99 999 999 999 999 999 999 12/08/2026 Omika_S_Comm_DEV 136 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Mode ellipse Verifier l'orthographe Non Unicode Non Saisie obligatoire Non Export/Impression Si visible (défaut) Vide si zéro Non Retour à la ligne Non Coche tous dans entête Non Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Colonne de table : ONG_Menu.TABLE_Document.COL_GUIDDoc (5) Titre FR: GUID Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calculatrice Non Touche TAB Accessible par TAB Marge en haut 0 Marge en bas 0 Marge à gauche 0 Marge à droite 0 Retrait gauche 0 Numéro aide 0 Bandeau visible Oui Format HTML 0 Taille de saisie 0 Mot de passe Non Masque saisie FR: 0 Mode ellipse Verifier l'orthographe Non Unicode Non Saisie obligatoire Non Export/Impression Si visible (défaut) Vide si zéro Non Retour à la ligne Non Coche tous dans entête Non Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 137 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Table : ONG_Menu.TABLE_Inter Colonne de table : ONG_Menu.TABLE_Inter.COL_IdInter (1) Titre FR: Id Intervention Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calculatrice Non Touche TAB Accessible par TAB Marge en haut 0 Marge en bas 0 Marge à gauche 0 Marge à droite 0 Retrait gauche 0 Numéro aide 0 Bandeau visible Oui Format HTML 0 Taille de saisie 0 Mot de passe Non Masque saisie FR: 99 999 999 999 999 999 999 Mode ellipse Verifier l'orthographe Non Unicode Non Saisie obligatoire Non Export/Impression Si visible (défaut) Vide si zéro Non Retour à la ligne Non Coche tous dans entête Non Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Colonne de table : ONG_Menu.TABLE_Inter.COL_RefInter (2) Titre FR: RefInter Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calculatrice Non Touche TAB Accessible par TAB Marge en haut 0 Marge en bas 0 Marge à gauche 0 Marge à droite 0 Retrait gauche 0 Numéro aide 0 Bandeau visible Oui 12/08/2026 Omika_S_Comm_DEV 138 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Format HTML 0 Taille de saisie 0 Mot de passe Non Masque saisie FR: 0 Mode ellipse Verifier l'orthographe Non Unicode Non Saisie obligatoire Non Export/Impression Si visible (défaut) Vide si zéro Non Retour à la ligne Non Coche tous dans entête Non Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Table : ONG_Menu.TABLE_RDV Colonne de table : ONG_Menu.TABLE_RDV.COL_DateDeb (1) Titre FR: Date Début Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calculatrice Non Touche TAB Accessible par TAB Marge en haut 0 Marge en bas 0 Marge à gauche 0 Marge à droite 0 Retrait gauche 0 Numéro aide 0 Bandeau visible Oui Format HTML 0 Taille de saisie 0 Mot de passe Non Masque saisie FR: JJ/MM/AAAA HH:mm:SS Masque affichage FR: JJ/MM/AAAA HH:mm:SS Mode ellipse Verifier l'orthographe Non Unicode Non Saisie obligatoire Non Export/Impression Si visible (défaut) Vide si zéro Non Retour à la ligne Non Coche tous dans entête Non Ancrage 12/08/2026 Omika_S_Comm_DEV 139 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Colonne de table : ONG_Menu.TABLE_RDV.COL_DateFin (2) Titre FR: Date Fin Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calculatrice Non Touche TAB Accessible par TAB Marge en haut 0 Marge en bas 0 Marge à gauche 0 Marge à droite 0 Retrait gauche 0 Numéro aide 0 Bandeau visible Oui Format HTML 0 Taille de saisie 0 Mot de passe Non Masque saisie FR: JJ/MM/AAAA HH:mm:SS Mode ellipse Verifier l'orthographe Non Unicode Non Saisie obligatoire Non Export/Impression Si visible (défaut) Vide si zéro Non Retour à la ligne Non Coche tous dans entête Non Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Colonne de table : ONG_Menu.TABLE_RDV.COL_Status (3) Titre FR: Status Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calculatrice Non Touche TAB Accessible par TAB Marge en haut 0 Marge en bas 0 Marge à gauche 0 Marge à droite 0 Retrait gauche 0 Numéro aide 0 Bandeau visible Oui 12/08/2026 Omika_S_Comm_DEV 140 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Format HTML 0 Taille de saisie 0 Mot de passe Non Masque saisie FR: 0 Mode ellipse Verifier l'orthographe Non Unicode Non Saisie obligatoire Non Export/Impression Si visible (défaut) Vide si zéro Non Retour à la ligne Non Coche tous dans entête Non Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Colonne de table : ONG_Menu.TABLE_RDV.COL_IdInterRDV (4) Titre FR: Id Intervention Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calculatrice Non Touche TAB Accessible par TAB Marge en haut 0 Marge en bas 0 Marge à gauche 0 Marge à droite 0 Retrait gauche 0 Numéro aide 0 Bandeau visible Oui Format HTML 0 Taille de saisie 0 Mot de passe Non Masque saisie FR: 99 999 999 999 999 999 999 Mode ellipse Verifier l'orthographe Non Unicode Non Saisie obligatoire Non Export/Impression Si visible (défaut) Vide si zéro Non Retour à la ligne Non Coche tous dans entête Non Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 12/08/2026 Omika_S_Comm_DEV 141 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Colonne de table : ONG_Menu.TABLE_RDV.COL_GUIDRDV (5) Titre FR: GUID RDV Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calculatrice Non Touche TAB Accessible par TAB Marge en haut 0 Marge en bas 0 Marge à gauche 0 Marge à droite 0 Retrait gauche 0 Numéro aide 0 Bandeau visible Oui Format HTML 0 Taille de saisie 0 Mot de passe Non Masque saisie FR: 0 Mode ellipse Verifier l'orthographe Non Unicode Non Saisie obligatoire Non Export/Impression Si visible (défaut) Vide si zéro Non Retour à la ligne Non Coche tous dans entête Non Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Colonne de table : ONG_Menu.TABLE_RDV.COL_IDGroupeRDV (6) Titre FR: Rdv Groupe Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calculatrice Non Touche TAB Accessible par TAB Marge en haut 0 Marge en bas 0 Marge à gauche 0 Marge à droite 0 Retrait gauche 0 Numéro aide 0 Bandeau visible Oui Format HTML 0 Taille de saisie 0 Mot de passe Non Masque saisie FR: 99 999 999 999 999 999 999 12/08/2026 Omika_S_Comm_DEV 142 Partie 2 › Fenêtre WINDEV › FEN_Menu › Informations sur les champs Mode ellipse Verifier l'orthographe Non Unicode Non Saisie obligatoire Non Export/Impression Si visible (défaut) Vide si zéro Non Retour à la ligne Non Coche tous dans entête Non Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 Colonne de table : ONG_Menu.TABLE_RDV.COL_IdRdvRDV (7) Titre FR: Id RDV Curseur survol 0 UI par l'utilisateur Selon fenêtre Bouton Calculatrice Non Touche TAB Accessible par TAB Marge en haut 0 Marge en bas 0 Marge à gauche 0 Marge à droite 0 Retrait gauche 0 Numéro aide 0 Bandeau visible Oui Format HTML 0 Taille de saisie 0 Mot de passe Non Masque saisie FR: 99 999 999 999 999 999 999 Mode ellipse Verifier l'orthographe Non Unicode Non Saisie obligatoire Non Export/Impression Si visible (défaut) Vide si zéro Non Retour à la ligne Non Coche tous dans entête Non Ancrage Taux anc. droite 1000 Taux anc. bas 1000 Taux anc. largeur 0 Taux anc. hauteur 1000 FEN_Menu Code Déclarations globales de FEN_Menu 12/08/2026 Omika_S_Comm_DEV 143 Partie 2 › Fenêtre WINDEV › FEN_Menu › Code procédure FEN_Menu() Fermeture de FEN_Menu si OuiNon("Voulez-vous fermer l'application") = Oui alors FinProgramme() sinon RepriseSaisie(FEN_Menu) fin FEN_Menu Code des champs Initialisation de CMB_Users // Version 1 // Description // Combo liste simple ListeSupprimeTout(CMB_Users) pour tout stUser, saCle de LIB_DEBUG.gtbaListeUsers ListeAjoute(CMB_Users,saCle+gLien(saCle)) fin Sélection d'une ligne de CMB_Users SelectUser() Initialisation de BTN_RecupDoc // Version 1 // Description // Bouton en validation Clic sur BTN_RecupDoc RecupUnDoc() Initialisation de BTN_Valider // Version 1 // Description // Bouton en validation Clic sur BTN_Valider 12/08/2026 Omika_S_Comm_DEV 144 Partie 2 › Fenêtre WINDEV › FEN_Menu › Code des champs ValiderRDV() Initialisation de BTN_AnnulerRDV ( SC_AnnulerRDV ) // Version 1 // Description // Bouton en validation Clic sur BTN_AnnulerRDV ( SC_AnnulerRDV ) AnnulerleRDV() Initialisation de CMB_MotifAnnu ( SC_AnnulerRDV ) // Version 1 // Description // Combo liste simple Initialisation de CMB_OrigAnnu ( SC_AnnulerRDV ) // Version 1 // Description // Combo liste simple Initialisation de SAI_NoteAnnu ( SC_AnnulerRDV ) // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de BTN_Valider1 ( SC_CR ) // Version 1 // Description // Bouton en validation Clic sur BTN_Valider1 ( SC_CR ) CreerCR() Initialisation de CMB_TypeSig ( SC_CR ) // Version 1 // Description // Combo liste simple Initialisation de INT_DevisConforme ( SC_CR ) 12/08/2026 Omika_S_Comm_DEV 145 Partie 2 › Fenêtre WINDEV › FEN_Menu › Code des champs // Version 1 // Description // Interrupteur simple 2 états Initialisation de INT_Reserve ( SC_CR ) // Version 1 // Description // Interrupteur simple 2 états Initialisation de SAI_Client ( SC_CR ) // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de SAI_DateDebCR ( SC_CR ) // Version 1 // Description // Saisie d'une date avec calendrier MoiMême=DateSys() Initialisation de SAI_DateFinCR ( SC_CR ) // Version 1 // Description // Saisie d'une date avec calendrier MoiMême=DateSys() Initialisation de SAI_HeureDCR ( SC_CR ) // Version 1 // Description // Saisie d'une heure MoiMême =HeureSys() Initialisation de SAI_HeureFCR ( SC_CR ) // Version 1 // Description // Saisie d'une heure MoiMême =HeureSys() Initialisation de SAI_NoteClient ( SC_CR ) // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de SAI_NoteUser ( SC_CR ) // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de SAI_Reserve ( SC_CR ) 12/08/2026 Omika_S_Comm_DEV 146 Partie 2 › Fenêtre WINDEV › FEN_Menu › Code des champs // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de BTN_AnnulerRDV ( SC_CreationDoc ) // Version 1 // Description // Bouton en validation Clic sur BTN_AnnulerRDV ( SC_CreationDoc ) AjouterImage() Clic sur BTN_Fichier ( SC_CreationDoc ) sFichier est une chaîne // Ouvre le sélecteur de fichiers soit sCheminOuverture = fExtraitChemin(SAI_Img,fDisque+fRépertoire) soit sFichierInitial = fExtraitChemin(SAI_Img,fFichier+fExtension) // ouvre le sélecteur sFichier = fSélecteurImage(sCheminOuverture, sFichierInitial, "Sélectionner une image", ... "JPEG (*.JPG)" + TAB + "*.jpg" + RC + "BMP (*.BMP)" + TAB + "*.gif") si sFichier<>"" alors SAI_Img = sFichier ExécuteTraitement(SAI_Img,trtModification) fin Initialisation de SAI_Img ( SC_CreationDoc ) // Version 1 // Description // Sélecteur de fichier Clic sur BTN_Fichier ( SC_CreationDoc1 ) sFichier est une chaîne // Ouvre le sélecteur de fichiers soit sCheminOuverture = fExtraitChemin(SAI_Rapport,fDisque+fRépertoire) soit sFichierInitial = fExtraitChemin(SAI_Rapport,fFichier+fExtension) soit sTitre="Sélectionner un fichier..." soit sFiltre="*.pdf" // ouvre le sélecteur sFichier = fSélecteur(sCheminOuverture, sFichierInitial, sTitre, sFiltre, "", fselOuvre + fselExiste) si sFichier<>"" alors SAI_Rapport = sFichier ExécuteTraitement(SAI_Rapport,trtModification) fin Initialisation de BTN_Rapport ( SC_CreationDoc1 ) // Version 1 // Description // Bouton en validation Clic sur BTN_Rapport ( SC_CreationDoc1 ) 12/08/2026 Omika_S_Comm_DEV 147 Partie 2 › Fenêtre WINDEV › FEN_Menu › Code des champs RapportInter() Initialisation de SAI_Rapport ( SC_CreationDoc1 ) // Version 1 // Description // Sélecteur de fichier Initialisation de BTN_MsgExt ( SC_MsgExt ) // Version 1 // Description // Bouton en validation Clic sur BTN_MsgExt ( SC_MsgExt ) MsgExt() Modification de la sélection de EDHTML_Corps ( SC_MsgExt ) procédure ModificationSélection(selectionHTML est un edtHTMLSélection) Chargement de ressources par EDHTML_Corps ( SC_MsgExt ) procédure ChargementRessources(sUrl est chaîne, nType est entier) // nType donne le type de ressource à télécharger // exemple : typehtmlResImage, typehtmlResScript, typehtmlResCss, typehtmlResXMLHttpRequest, typehtmlAutre // ATTENTION : ce traitement est appelé depuis un thread secondaire renvoyer Vrai Initialisation de SAI_AdDest ( SC_MsgExt ) // Version 1 // Description // Saisie d'une adresse email avec jetons Ajout d'un jeton dans SAI_AdDest ( SC_MsgExt ) procédure AjoutJeton (MonJeton est un Jeton) si EmailVérifieAdresse(MonJeton..Libellé,emailValideSyntaxeStrict) <> emailAdresseValide alors MoiMême..JetonSaisieEnCours = MonJeton..Libellé //pour interdire l'ajout du jeton renvoyer Faux fin renvoyer Vrai Suppression d'un jeton dans SAI_AdDest ( SC_MsgExt ) procédure SuppressionJeton (MonJeton est un Jeton) //RENVOYER Faux pour interdire la suppression du jeton 12/08/2026 Omika_S_Comm_DEV 148 Partie 2 › Fenêtre WINDEV › FEN_Menu › Code des champs renvoyer Vrai Clic sur un jeton de SAI_AdDest ( SC_MsgExt ) procédure ClicJeton (MonJeton est un Jeton) Entrée en saisie d'un jeton de SAI_AdDest ( SC_MsgExt ) procédure EntreSaisieJeton (MonJeton est un Jeton) //RENVOYER Faux pour interdire l'entrée en saisie du jeton renvoyer Vrai Modification d'un jeton de SAI_AdDest ( SC_MsgExt ) procédure ModificationJeton (MonJeton est un Jeton) // RENVOYER Faux pour interdire la modification du jeton renvoyer Vrai Initialisation de SAI_AdExp ( SC_MsgExt ) // Version 1 // Description // Saisie d'une adresse email avec jetons Ajout d'un jeton dans SAI_AdExp ( SC_MsgExt ) procédure AjoutJeton (MonJeton est un Jeton) si EmailVérifieAdresse(MonJeton..Libellé,emailValideSyntaxeStrict) <> emailAdresseValide alors MoiMême..JetonSaisieEnCours = MonJeton..Libellé //pour interdire l'ajout du jeton renvoyer Faux fin renvoyer Vrai Suppression d'un jeton dans SAI_AdExp ( SC_MsgExt ) procédure SuppressionJeton (MonJeton est un Jeton) //RENVOYER Faux pour interdire la suppression du jeton renvoyer Vrai Clic sur un jeton de SAI_AdExp ( SC_MsgExt ) procédure ClicJeton (MonJeton est un Jeton) Entrée en saisie d'un jeton de SAI_AdExp ( SC_MsgExt ) procédure EntreSaisieJeton (MonJeton est un Jeton) //RENVOYER Faux pour interdire l'entrée en saisie du jeton renvoyer Vrai Modification d'un jeton de SAI_AdExp ( SC_MsgExt ) 12/08/2026 Omika_S_Comm_DEV 149 Partie 2 › Fenêtre WINDEV › FEN_Menu › Code des champs procédure ModificationJeton (MonJeton est un Jeton) // RENVOYER Faux pour interdire la modification du jeton renvoyer Vrai Initialisation de SAI_Sujet ( SC_MsgExt ) // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de BTN_AnnulerRDV ( SC_NoteDoc ) // Version 1 // Description // Bouton en validation Clic sur BTN_AnnulerRDV ( SC_NoteDoc ) NoteDoc() Initialisation de SAI_NoteDoc ( SC_NoteDoc ) // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de BTN_AnnulerRDV ( SC_NoteInter ) // Version 1 // Description // Bouton en validation Clic sur BTN_AnnulerRDV ( SC_NoteInter ) NoteInter() Initialisation de SAI_NoteInt ( SC_NoteInter ) // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de BTN_Planifier ( SC_Planifier ) // Version 1 // Description // Bouton en validation Clic sur BTN_Planifier ( SC_Planifier ) 12/08/2026 Omika_S_Comm_DEV 150 Partie 2 › Fenêtre WINDEV › FEN_Menu › Code des champs Plannifier() Initialisation de CMB_StatusP ( SC_Planifier ) // Version 1 // Description // Combo liste simple Initialisation de INT_Superposable ( SC_Planifier ) // Version 1 // Description // Interrupteur simple 2 états Initialisation de SAI_DateDebP ( SC_Planifier ) // Version 1 // Description // Saisie d'une date avec calendrier MoiMême=DateSys() Initialisation de SAI_DateFinP ( SC_Planifier ) // Version 1 // Description // Saisie d'une date avec calendrier MoiMême=DateSys() Initialisation de SAI_HeureDP ( SC_Planifier ) // Version 1 // Description // Saisie d'une heure MoiMême =HeureSys() Initialisation de SAI_HeureFP ( SC_Planifier ) // Version 1 // Description // Saisie d'une heure MoiMême =HeureSys() Initialisation de BTN_Valider1Temps ( SC_ValiderRDV ) // Version 1 // Description // Bouton en validation Clic sur BTN_Valider1Temps ( SC_ValiderRDV ) ValiderTemps() Initialisation de CMB_TypeTemps ( SC_ValiderRDV ) 12/08/2026 Omika_S_Comm_DEV 151 Partie 2 › Fenêtre WINDEV › FEN_Menu › Code des champs // Version 1 // Description // Combo liste simple Initialisation de SAI_DateDebT ( SC_ValiderRDV ) // Version 1 // Description // Saisie d'une date avec calendrier MoiMême=DateSys() Initialisation de SAI_DateFinT ( SC_ValiderRDV ) // Version 1 // Description // Saisie d'une date avec calendrier MoiMême=DateSys() Initialisation de SAI_HeureDT ( SC_ValiderRDV ) // Version 1 // Description // Saisie d'une heure MoiMême =HeureSys() Initialisation de SAI_HeureFT ( SC_ValiderRDV ) // Version 1 // Description // Saisie d'une heure MoiMême =HeureSys() Initialisation de SAI_NoteTemps ( SC_ValiderRDV ) // Version 1 // Description // Champ de saisie pour un texte simple sur une ligne Initialisation de SEL_test // Version 1 // Description // Sélecteur simple en lignes sur 2 colonnes A chaque modification de SEL_test nPos est un entier = Position("BATIK.01_BLD","_") si nPos > 1 alors nPos -= 1 fin saMp est une chaîne ANSI = Mdp3+"!"+Gauche("BATIK.01_BLD",nPos) bufMDP est un Buffer =Crypte("BATIK.01_BLD",LIB_Service.gsCleMdp,crypteRC516,encodePCS) saPass est une chaîne ANSI = BufferVersHexa(HashChaîne(HA_MD5_128,"BATIK.01_BLD"),SansRegroupement) 12/08/2026 Omika_S_Comm_DEV 152 Partie 2 › Fenêtre WINDEV › FEN_Menu › Code des champs sPassSysteme est une chaîne ANSI = BufferVersHexa(HashChaîne(HA_MD5_128,Mdp3 + "BATIK.01_BLD"), SansRegroupement) FEN_Menu Procédures Procédure locale AjouterImage procédure AjouterImage() HRAZ(LIB_Service.gsdMobReception) stDoc est un ST_DOC bufInfo est un Buffer bufImg est un Buffer si TABLE_RDV > 0 _et_ COL_IdInterRDV[TABLE_RDV] > 0 alors stDoc.saType = "IMG" stDoc.saNom = fExtraitChemin(SAI_Img,fFichier+fExtension) stDoc.nInterID = COL_IdInterRDV[TABLE_RDV] stDoc.saDateCreat= DateHeureSys() stDoc.nIdUser = LIB_DEBUG.gID.nIdUser stDoc.saDocGUID = DonneGUID(guidBrut) bufImg = fChargeBuffer(SAI_Img) Sérialise(stDoc,bufInfo,psdJSON) si SEL_test alors LIB_Service.gsdMobReception.MR_Buffer = bufImg DocEcrit(bufInfo,LIB_Service.gsdMobReception) sinon si pas AjouterMobReception(cCMD_DocEcrit,bufInfo,bufImg) alors renvoyer Faux fin fin HRAZ(LIB_Service.gsdMobReception) ToastAffiche("Traitement terminé") sinon Erreur("Un rdv avec un id d'intervention est obligatoire") fin Procédure locale AjouterMobReception procédure AjouterMobReception(saCMD est une chaîne ANSI, bufJson est un Buffer, bufDoc est un Buffer = "") HRAZ(LIB_Service.gsdTOSRV) LIB_Service.gsdTOSRV.TS_CMD = saCMD LIB_Service.gsdTOSRV.TS_Date = DateHeureSys() LIB_Service.gsdTOSRV.TS_JSON = bufJson LIB_Service.gsdTOSRV.TS_Lu = 0 LIB_Service.gsdTOSRV.TS_Mobile= LIB_DEBUG.gID.saIdMob LIB_Service.gsdTOSRV.TS_Buffer= bufDoc si pas HAjoute(LIB_Service.gsdTOSRV) alors 12/08/2026 Omika_S_Comm_DEV 153 Partie 2 › Fenêtre WINDEV › FEN_Menu › Procédures Erreur(HErreur()) renvoyer Faux sinon renvoyer Vrai fin Procédure locale AnnulerleRDV procédure AnnulerleRDV() HRAZ(LIB_Service.gsdMobReception) stARDV est un ST_Annulations_RDV stRdv est un ST_Annulation_RDV bufInfo est un Buffer si TABLE_RDV > 0 _et_ COL_GUIDRDV[TABLE_RDV] <> "" alors stRdv.nMotif = CMB_MotifAnnu stRdv.nOrigine = CMB_OrigAnnu stRdv.nIDGroupeRDV = COL_IDGroupeRDV[TABLE_RDV] stRdv.saGUID_RDV = COL_GUIDRDV[TABLE_RDV] stRdv.saCommentaire = SAI_NoteAnnu TableauAjoute(stARDV.tbAnnulations,stRdv) Sérialise(stARDV,bufInfo,psdJSON) si SEL_test alors AnnulerRDV(bufInfo,LIB_Service.gsdMobReception) sinon si pas AjouterMobReception(cCMD_RDVAnnulation,bufInfo) alors renvoyer Faux fin fin HRAZ(LIB_Service.gsdMobReception) ToastAffiche("Traitement terminé") sinon Erreur("Un rdv avec un GUID est obligatoire") fin Procédure locale CreerCR procédure CreerCR() HRAZ(LIB_Service.gsdMobReception) stCR est un ST_CR bufInfo est un Buffer dhDateDeb est une DateHeure dhDateFin est une DateHeure bufSig1 est un Buffer bufSig2 est un Buffer si TABLE_RDV > 0 _et_ COL_GUIDRDV[TABLE_RDV] <> "" _et_ LIB_DEBUG.gnIdColbEnCours > 0 alors stCR.saGuidRDV = COL_GUIDRDV[TABLE_RDV] stCR.nIdInter = COL_IdInterRDV[TABLE_RDV] stCR.saGuidCR = DonneGUID(guidBrut) dhDateDeb..PartieDate = SAI_DateDebCR dhDateDeb..PartieHeure = SAI_HeureDCR dhDateFin..PartieDate = SAI_DateFinCR dhDateFin..PartieHeure = SAI_HeureFCR stCR.saDebut = dhDateDeb stCR.saFin = dhDateFin stCR.saDateSignature = DateHeureSys() stCR.saNoteCollab = SAI_NoteUser stCR.saNoteClient = SAI_NoteClient stCR.saNomCollaborateur = CMB_Users..ValeurAffichée 12/08/2026 Omika_S_Comm_DEV 154 Partie 2 › Fenêtre WINDEV › FEN_Menu › Procédures stCR.saSignataire = SAI_Client stCR.nIdCollab = LIB_DEBUG.gnIdColbEnCours stCR.bDevisConforme = INT_DevisConforme stCR.bReserve = INT_Reserve stCR.saReserveCommentaire = SAI_Reserve stCR.nIdUser = LIB_DEBUG.gID.nIdUser stCR.nRoleClient = CMB_TypeSig bufSig1 = fChargeBuffer(IMG_Sign1) bufSig2 = fChargeBuffer(IMG_Sign2) si SEL_test alors HRAZ(LIB_Service.gsdMobReception) stCR.bTech = Vrai LIB_Service.gsdMobReception.MR_Buffer = bufSig1 Sérialise(stCR,bufInfo,psdJSON) CompteRenduEcrit(bufInfo,LIB_Service.gsdMobReception) stCR.bTech = Faux HRAZ(LIB_Service.gsdMobReception) LIB_Service.gsdMobReception.MR_Buffer = bufSig2 Sérialise(stCR,bufInfo,psdJSON) CompteRenduEcrit(bufInfo,LIB_Service.gsdMobReception) sinon stCR.bTech = Vrai Sérialise(stCR,bufInfo,psdJSON) si pas AjouterMobReception(cCMD_CREcrit_V2,bufInfo,bufSig1) alors renvoyer Faux fin stCR.bTech = Faux Sérialise(stCR,bufInfo,psdJSON) si pas AjouterMobReception(cCMD_CREcrit_V2,bufInfo,bufSig2) alors renvoyer Faux fin fin HRAZ(LIB_Service.gsdMobReception) ToastAffiche("Traitement terminé") sinon Erreur("Un rdv avec un GUID est obligatoire") fin Procédure locale MsgExt procédure MsgExt() HRAZ(LIB_Service.gsdMobReception) stMSG est un ST_MsgExterneMail bufInfo est un Buffer si TABLE_Inter > 0 _et_ COL_IdInter[TABLE_Inter] > 0 alors stMSG.nIdInter = COL_IdInter[TABLE_Inter] stMSG.saAdrExp = Remplace(SAI_AdExp,RC,";") stMSG.saDest = Remplace(SAI_AdDest,RC,";") stMSG.saSujet = SAI_Sujet stMSG.bufCorp = EDHTML_Corps stMSG.bEnvoye = Vrai stMSG.nIdUser = LIB_DEBUG.gID.nIdUser stMSG.saGUID = DonneGUID(guidBrut) Sérialise(stMSG,bufInfo,psdJSON) si SEL_test alors MessageExterne(bufInfo,LIB_Service.gsdMobReception) sinon si pas AjouterMobReception(cCMD_MsgExtEcrit,bufInfo) alors renvoyer Faux fin fin 12/08/2026 Omika_S_Comm_DEV 155 Partie 2 › Fenêtre WINDEV › FEN_Menu › Procédures HRAZ(LIB_Service.gsdMobReception) ToastAffiche("Traitement terminé") sinon Erreur("Un rdv avec un id d'intervention est obligatoire") fin Procédure locale NoteDoc procédure NoteDoc() HRAZ(LIB_Service.gsdMobReception) stDN est un ST_DOCNOTE bufInfo est un Buffer si TABLE_Document > 0 _et_ COL_GUIDDoc[TABLE_Document] <> "" alors stDN.saNote = SAI_NoteDoc stDN.saDate = DateHeureSys() stDN.nAuteur = LIB_DEBUG.gID.nIdUser stDN.saGuid = DonneGUID(guidBrut) stDN.saGuidDoc = COL_GUIDDoc[TABLE_Inter] Sérialise(stDN,bufInfo,psdJSON) HRAZ(LIB_Service.gsdMobReception) si SEL_test alors DocNoteEcrit(bufInfo,LIB_Service.gsdMobReception) sinon si pas AjouterMobReception(cCMD_DocNoteEcrit,bufInfo) alors renvoyer Faux fin fin HRAZ(LIB_Service.gsdMobReception) ToastAffiche("Traitement terminé") sinon Erreur("Un document avec un GUID est obligatoire") fin Procédure locale NoteInter procédure NoteInter() HRAZ(LIB_Service.gsdMobReception) tb est un tableau de ST_MSGINTERNE bufInfo est un Buffer stUnMsg est un ST_MSGINTERNE si TABLE_Inter > 0 _et_ COL_IdInter[TABLE_Inter] > 0 alors stUnMsg.sAGuid = DonneGUID(guidBrut) stUnMsg.nIdInter = COL_IdInter[TABLE_Inter] stUnMsg.sANote = SAI_NoteInt stUnMsg.nIdUser = LIB_DEBUG.gID.nIdUser stUnMsg.sADate = DateHeureSys() TableauAjoute(tb,stUnMsg) Sérialise(tb,bufInfo,psdJSON) HRAZ(LIB_Service.gsdMobReception) si SEL_test alors NoteEcrit(bufInfo,LIB_Service.gsdMobReception) sinon si pas AjouterMobReception(cCMD_NoteEcrit,bufInfo) alors renvoyer Faux fin fin 12/08/2026 Omika_S_Comm_DEV 156 Partie 2 › Fenêtre WINDEV › FEN_Menu › Procédures HRAZ(LIB_Service.gsdMobReception) ToastAffiche("Traitement terminé") sinon Erreur("Une intervention est obligatoire") fin Procédure locale Plannifier procédure Plannifier() HRAZ(LIB_Service.gsdMobReception) stRDV est un ST_RDV bufInfo est un Buffer dhDateDeb est une DateHeure dhDateFin est une DateHeure si TABLE_RDV > 0 _et_ COL_GUIDRDV[TABLE_RDV] <> "" alors stRDV.nPKID = COL_IdRdvRDV[TABLE_RDV] stRDV.saGUID = COL_GUIDRDV[TABLE_RDV] stRDV.nIDStatut = CMB_StatusP dhDateDeb..PartieDate = SAI_DateDebP dhDateDeb..PartieHeure = SAI_HeureDP dhDateFin..PartieDate = SAI_DateFinP dhDateFin..PartieHeure = SAI_HeureFP stRDV.saDateDebut = dhDateDeb stRDV.saDateFin = dhDateFin stRDV.bSuperposable = INT_Superposable Sérialise(stRDV,bufInfo,psdJSON) HRAZ(LIB_Service.gsdMobReception) si SEL_test alors RdvEcrit(bufInfo,LIB_Service.gsdMobReception) sinon si pas AjouterMobReception(cCMD_RdvAPlanifierEcrit,bufInfo) alors renvoyer Faux fin fin HRAZ(LIB_Service.gsdMobReception) ToastAffiche("Traitement terminé") sinon Erreur("Un rdv avec un GUID est obligatoire") fin Procédure locale RapportInter procédure RapportInter() HRAZ(LIB_Service.gsdMobReception) stDoc est un ST_DOC bufInfo est un Buffer bufImg est un Buffer si TABLE_Inter > 0 _et_ COL_IdInter[TABLE_Inter] > 0 alors stDoc.saType = "PDF_RP" stDoc.saNom = fExtraitChemin(SAI_Rapport,fFichier+fExtension) stDoc.nInterID = COL_IdInter[TABLE_Inter] stDoc.saDateCreat= DateHeureSys() stDoc.nIdUser = LIB_DEBUG.gID.nIdUser stDoc.saDocGUID = DonneGUID(guidBrut) bufImg = fChargeBuffer(SAI_Img) Sérialise(stDoc,bufInfo,psdJSON) 12/08/2026 Omika_S_Comm_DEV 157 Partie 2 › Fenêtre WINDEV › FEN_Menu › Procédures si SEL_test alors LIB_Service.gsdMobReception.MR_Buffer = bufImg DocEcrit(bufInfo,LIB_Service.gsdMobReception) sinon si pas AjouterMobReception(cCMD_DocEcrit,bufInfo,bufImg) alors renvoyer Faux fin fin HRAZ(LIB_Service.gsdMobReception) ToastAffiche("Traitement terminé") sinon Erreur("Un rdv avec un id d'intervention est obligatoire") fin Procédure locale RecupUnDoc procédure RecupUnDoc() HRAZ(LIB_Service.gsdMobReception) stLst est un ST_LISTE_IDDOC bufInfo est un Buffer si TABLE_Document > 0 _et_ COL_IdDoc[TABLE_Document] > 0 alors TableauAjoute(stLst.tblIdDoc,COL_IdDoc[TABLE_Document]) Sérialise(stLst,bufInfo,psdJSON) HRAZ(LIB_Service.gsdMobReception) si SEL_test alors DemandeListeDoc(bufInfo,LIB_Service.gsdMobReception) si LIB_Service.gsdTOMOB.TM_Buffer <> "" alors IMG_Buffer = LIB_Service.gsdTOMOB.TM_Buffer sinon IMG_Buffer = IMG_Vide fin si LIB_Service.gsdTOMOB.IDTOMOB > 0 alors HSupprime(LIB_Service.gsdTOMOB) fin sinon si pas AjouterMobReception(cCMD_ListeDocDmd,bufInfo) alors renvoyer Faux fin fin HRAZ(LIB_Service.gsdMobReception) ToastAffiche("Traitement terminé") sinon Erreur("Un document avec un ID est obligatoire") fin Procédure locale SelectUser procédure SelectUser() si CMB_Users <> Null _et_ LIB_DEBUG.gtbaListeUsers[CMB_Users]..Existe = Vrai alors LIB_DEBUG.gID = LIB_DEBUG.gtbaListeUsers[CMB_Users] ONG_Menu..Visible = Vrai fin TableSupprimeTout(TABLE_Document) TableSupprimeTout(TABLE_Inter) TableSupprimeTout(TABLE_RDV) 12/08/2026 Omika_S_Comm_DEV 158 Partie 2 › Fenêtre WINDEV › FEN_Menu › Procédures saReqRdv est une chaîne ANSI = [ SELECT RVC_PKID, RVC_DateDeb, RVC_DateFin,RVC_CleStatut, RDV_Collaborateur.GUID, RV_IdInter, RV_PKID,RV_Groupe, CO_PKID FROM RDV_Collaborateur INNER JOIN RDV_Planning ON RDV_Planning.GUID = RVC_GUID_RDV INNER JOIN Utilisateur ON UT_PKID = {p_IdUser} INNER JOIN Collaborateur ON Collaborateur.CO_PKID = UT_IDCollaborateur WHERE RVC_GUID_Colb = Collaborateur.GUID AND RDV_Planning.Archive = 0 AND RDV_Collaborateur.Archive = 0 AND RVC_CleStatut <> '{p_status}' ORDER BY RVC_DateDeb DESC LIMIT 50 ] saReqRdv = Remplace(saReqRdv,"{p_IdUser}",LIB_DEBUG.gID.nIdUser) saReqRdv = Remplace(saReqRdv,"{p_status}",cCle_RDVFait) sdRDV est une Source de Données sdInter est une Source de Données sdDocs est une Source de Données i est un entier si HExécuteRequêteSQL(sdRDV,LIB_Service.gcnxAPart,hRequêteDéfaut,saReqRdv) alors pour tout sdRDV si sdRDV.CO_PKID > 0 alors LIB_DEBUG.gnIdColbEnCours = sdRDV.CO_PKID fin i = TableAjouteLigne(TABLE_RDV) COL_DateDeb[i] = sdRDV.RVC_DateDeb COL_DateFin[i] = sdRDV.RVC_DateFin COL_Status[i] = sdRDV.RVC_CleStatut COL_IdInterRDV[i] = sdRDV.RV_IdInter COL_GUIDRDV[i] = sdRDV.GUID COL_IdRdvRDV[i] = sdRDV.RVC_PKID si sdRDV.RV_Groupe alors COL_IDGroupeRDV[i] = sdRDV.RV_PKID fin fin sinon Erreur("ERREUR :" + HErreurInfo(hErrComplet),cTrace_Exception) fin saReqInter est une chaîne ANSI = [ SELECT IN_PKID,IN_RefInterne FROM Intervention ORDER BY ModifDate DESC LIMIT 50 ] si HExécuteRequêteSQL(sdInter,LIB_Service.gcnxAPart,hRequêteDéfaut,saReqInter) alors pour tout sdInter i = TableAjouteLigne(TABLE_Inter) COL_IdInter[i] = sdInter.IN_PKID COL_RefInter[i] = sdInter.IN_RefInterne fin sinon Erreur("ERREUR :" + HErreurInfo(hErrComplet),cTrace_Exception) fin saReqDoc est une chaîne ANSI = [ SELECT DC_PKID, DC_IDIntervention,DC_Nom,DC_Chemin, GUID FROM Document WHERE DC_CleCategorie = 'T.DOC.PHOT' ORDER BY ModifDate DESC LIMIT 50 ] si HExécuteRequêteSQL(sdDocs,LIB_Service.gcnxAPart,hRequêteDéfaut,saReqDoc) alors pour tout sdDocs i = TableAjouteLigne(TABLE_Document) COL_IdDoc[i] = sdDocs.DC_PKID COL_NomDoc[i] = sdDocs.DC_Nom COL_Chemin[i] = sdDocs.DC_Chemin 12/08/2026 Omika_S_Comm_DEV 159 Partie 2 › Fenêtre WINDEV › FEN_Menu › Procédures COL_IdInterDoc[i]= sdDocs.DC_IDIntervention COL_GUIDDoc[i] = sdDocs.GUID fin sinon Erreur("ERREUR :" + HErreurInfo(hErrComplet),cTrace_Exception) fin ListeSupprimeTout(CMB_MotifAnnu) ListeSupprimeTout(CMB_OrigAnnu) ListeSupprimeTout(CMB_TypeSig) ListeSupprimeTout(CMB_StatusP) ListeSupprimeTout(CMB_TypeTemps) saReqParam est une chaîne ANSI = [ SELECT * FROM ParametreMetier WHERE PA_Categorie IN ] saReqParam +="('"+cParam_TypeSignCR+"', '"+cParam_StatusRDV+"', '"+cParam_OrigAnnuRDV+"','"+ cParam_MotifAnnuRDV+"','"+cparam_TypeTemps+"')" sdParam est une Source de Données si HExécuteRequêteSQL(sdParam,LIB_Service.gcnxAPart,hRequêteDéfaut,saReqParam) alors pour tout sdParam selon sdParam.PA_Categorie cas cParam_TypeSignCR ListeAjoute(CMB_TypeSig,sdParam.PA_Libelle+gValeurMémorisée(sdParam.PA_PKID)) cas cParam_StatusRDV ListeAjoute(CMB_StatusP,sdParam.PA_Libelle+gValeurMémorisée(sdParam.PA_PKID)) cas cParam_OrigAnnuRDV ListeAjoute(CMB_OrigAnnu,sdParam.PA_Libelle+gValeurMémorisée(sdParam.PA_PKID)) cas cParam_MotifAnnuRDV ListeAjoute(CMB_MotifAnnu,sdParam.PA_Libelle+gValeurMémorisée(sdParam.PA_PKID)) cas cparam_TypeTemps ListeAjoute(CMB_TypeTemps,sdParam.PA_Libelle+gValeurMémorisée(sdParam.PA_PKID)) autre cas fin fin sinon Erreur("ERREUR :" + HErreurInfo(hErrComplet),cTrace_Exception) fin Procédure locale ValiderRDV procédure ValiderRDV() HRAZ(LIB_Service.gsdMobReception) stVR est un ST_VALIDATION_RDV bufInfo est un Buffer si TABLE_RDV > 0 _et_ COL_GUIDRDV[TABLE_RDV] <> "" alors stVR.saGuid = COL_GUIDRDV[TABLE_RDV] Sérialise(stVR,bufInfo,psdJSON) si SEL_test alors ValidationRDV(bufInfo,LIB_Service.gsdMobReception) sinon si pas AjouterMobReception(cCMD_RDVValidation,bufInfo) alors renvoyer Faux fin fin HRAZ(LIB_Service.gsdMobReception) ToastAffiche("Traitement terminé") sinon Erreur("Un rdv avec un GUID est obligatoire") fin Procédure locale ValiderTemps 12/08/2026 Omika_S_Comm_DEV 160 Partie 2 › Fenêtre WINDEV › FEN_Menu › Procédures procédure ValiderTemps() HRAZ(LIB_Service.gsdMobReception) stTpsPas est un ST_TEMPS_PASSE_RDV_V2 stTemp est un ST_TEMPS_PASSE_V2 dhDateDeb est une DateHeure dhDateFin est une DateHeure bufInfo est un Buffer si TABLE_RDV > 0 _et_ COL_GUIDRDV[TABLE_RDV] <> "" _et_ LIB_DEBUG.gnIdColbEnCours > 0 alors stTpsPas.saGuidRdv = COL_GUIDRDV[TABLE_RDV] stTpsPas.nIdIntervention = COL_IdInterRDV[TABLE_RDV] stTemp.saGuid = DonneGUID(guidBrut) stTemp.nIdCollab = LIB_DEBUG.gnIdColbEnCours dhDateDeb..PartieDate = SAI_DateDebT dhDateDeb..PartieHeure = SAI_HeureDT dhDateFin..PartieDate = SAI_DateFinT dhDateFin..PartieHeure = SAI_HeureFT stTemp.saHeureDebut = dhDateDeb stTemp.saHeureFin = dhDateFin stTemp.nIdTypeTps = CMB_TypeTemps stTemp.saNote = SAI_NoteTemps TableauAjoute(stTpsPas.tblTemps,stTemp) Sérialise(stTpsPas,bufInfo,psdJSON) si SEL_test alors TempsEcrit(bufInfo,LIB_Service.gsdMobReception) sinon si pas AjouterMobReception(cCMD_TempsEcrit_V2,bufInfo) alors renvoyer Faux fin fin HRAZ(LIB_Service.gsdMobReception) ToastAffiche("Traitement terminé") sinon Erreur("Un rdv avec un GUID est obligatoire") fin 12/08/2026 Omika_S_Comm_DEV 161 Partie 3 › Collection de procédures Partie 3 Collection de procédures | 12/08/2026 | Omika_S_Comm_DEV | 162 | | ---------- | ---------------- | --- | Partie 3 › Collection de procédures COL_GestionDuLog Code Déclaration de COL_GestionDuLog constant cTrace_Info =0 cTrace_Debug=1 cTrace_Exception=2 cParam_FichierLog ="FICHIER_LOG" fin gnNiveauTraceCourante est un entier gbLogOuvert est un booléen gsuRepLog est une chaîne Unicode gsuFichierLogCourant est une chaîne Unicode Terminaison de COL_GestionDuLog Procédure globale ChangeNiveauTraceCourante procédure ChangeNiveauTraceCourante(local nNiveau est un entier) si nNiveau dans (0,1,2) alors gnNiveauTraceCourante = nNiveau TraceLog("Niveau de Trace : " + nNiveau,cTrace_Exception) fin Procédure globale EcritDansMobLog procédure EcritDansMobLog(dh est une DateHeure,saMSG est une chaîne ANSI,nNiveauTrace est un entier) si LIB_Service.gbConnexionOuverte alors HExécuteRequêteSQL("TRACE",LIB_Service.gcnxAPart, "INSERT INTO MobLog (ML_DateCreat,ML_Message,ML_Niveau) VALUES ('" + dh + "','" + Remplace( Remplace( saMSG ,"'","''"),"\","\\") +"'," + nNiveauTrace +")") fin Procédure globale InitialiseFichierLog procédure InitialiseFichierLog() quand exception dans gsuRepLog=gsuRepData+["\"]+"Log" suFicLog est une chaîne Unicode = ComplèteRep(gsuRepLog) + "LogSync_" + DateSys()+".txt" si suFicLog<>gsuFichierLogCourant alors fRepCrée(gsuRepLog) gsuFichierLogCourant=suFicLog 12/08/2026 Omika_S_Comm_DEV 163 Partie 3 › Collection de procédures › COL_GestionDuLog › Code TraceDébut(trFichier,suFicLog ) gbLogOuvert=Vrai TraceLog("==========================================================================", cTrace_Debug) TraceLog("DEMARRAGE DU SERVICE " + ExeInfo(exeNom),cTrace_Debug ) TraceLog("Version : " + ExeInfo(exeVersion),cTrace_Debug ) TraceLog("PID : " + ExeDonnePID(),cTrace_Debug) TraceLog("Poste : " + NetNomMachine,cTrace_Debug) TraceLog("User : " + NetworkUser() ,cTrace_Debug) fin faire ServiceEcritEvénementJournal("L'initialisation du fichier de Log n'a pas pu se faire "+ RC + ExceptionInfo(errComplet),ejErreur,1) fin renvoyer suFicLog Procédure globale PurgeDesFichiersLog procédure PurgeDesFichiersLog(suRepertoireLog est une chaîne Unicode=gsuRepLog) quand exception dans nNBJoursConservation est un entier = ParametreLit(cParam_NbJourLog,30) suLst est une chaîne Unicode =fListeFichier(suRepertoireLog +"LogSync_*.txt",frNonRécursif+ fCheminUnicode) suNomCompletFic est une chaîne Unicode suNomFic est une chaîne Unicode d est une Date=DateSys() d..Jour -= nNBJoursConservation saMax est une chaîne Unicode=d pour toute chaîne suNomCompletFic de suLst séparée par RC suNomFic=fExtraitChemin(suNomCompletFic,fFichier) si suNomFic[[5 à 13]]= gnNiveauTraceCourante alors dh est une DateHeure = DateHeureSys() saTimeStamp est une chaîne ANSI = DateVersChaîne(dh,"JJ/MM/AA HH:mm:SS") quand exception dans si gbLogOuvert alors WL.Trace(saTimeStamp + " - "+ saMSG) EcritDansMobLog(dh,saMSG,nNiveauTrace) si nNiveauTrace dans(cTrace_Exception,cTrace_Debug) alors Erreur(saTimeStamp + " - "+ saMSG) fin 12/08/2026 Omika_S_Comm_DEV 164 Partie 3 › Collection de procédures › COL_GestionDuLog › Code faire ServiceEcritEvénementJournal("L'insertion de la trace n'a pas pu se faire "+RC+saMSG+ RC + ExceptionInfo(errComplet),ejErreur,1) si gbLogOuvert alors WL.Trace(saTimeStamp + " - "+ ExceptionInfo(errComplet)) fin fin SectionCritiqueFin("TRACE") 12/08/2026 Omika_S_Comm_DEV 165 Partie 3 › Collection de procédures › LIB_Globales › Code LIB_Globales Code Déclaration de LIB_Globales constant cRep_Ok ="0" cErr ="2" Mdp1 = "62" Mdp2 = "Langénieux" Mdp3 = "eBdFfDxVfB" cIniSectionComm = "SERVICE COMM" cIniSectionMonitor = "SERVICE MONITOR" cIniCleActivite = "ACTIVITE" cIniCleTempo = "TEMPO" cIniCleCommande = "COMMANDE" cUserServiceMobile ="ServiceMobile" cDateHeureVide ="00000000000000000" cParam_CloudServeur ="CLOUD_SERVEUR" cParam_CloudPortData ="CLOUD_PORT_DATA" cParam_CloudPortReplication ="CLOUD_PORT_REPLIC" cParam_CloudCle ="CLOUD_CLE" cParam_CloudNomBase ="CLOUD_NOMBASE" cParam_CloudIdServeur ="CLOUD_ID_SERVEUR" cParam_CloudPriorite ="CLOUD_PRIORITE" cParam_LocalPortReplication ="LOCAL_PORT_REPLIC" cParam_LocalIdServeur ="LOCAL_ID_SERVEUR" cParam_LocalPriorite ="LOCAL_PRIORITE" cParam_RepLog ="REP_LOG" cParam_ServiceCommVersion ="SERVICE_COMM_VERSION" cParam_WebServiceClient ="WEBSERVICE_CLIENT" cParam_CodeClient ="CODE_CLIENT" cParam_ServiceInit ="SERVICE_INIT" cParam_ServiceActivite ="SERVICE_ACTIVITE" cDefaut_NomBaseTrans ="ARTPART.01_BLS" cDefaut_PortReplication ="4996" cDefaut_ReplicCle ="marakech" cDefaut_CLoudServeurID ="7" cDefaut_CloudPriorite ="7" cDefaut_LocalServeurID ="1" cDefaut_LocalPriorite ="1" fin 12/08/2026 Omika_S_Comm_DEV 166 Partie 3 › Collection de procédures › LIB_ParametrageMobiles › Code LIB_ParametrageMobiles Code Déclaration de LIB_ParametrageMobiles //Identique à la structure de l'objet cCOMPTE du projet Mobile ST_COMPTE est une Structure nID_Clb est un entier sur 8 octets nID_User est un entier sur 8 octets saNom est une chaîne ANSI saPren est une chaîne ANSI nGrpUser est un entier saToken est une chaîne ANSI saSrv est une chaîne ANSI saPort est une chaîne ANSI fin 12/08/2026 Omika_S_Comm_DEV 167 Partie 3 › Collection de procédures › LIB_Service › Code LIB_Service Code Déclaration de LIB_Service constant RepertoireDocument = "CHEMIN_REPERTOIRE_BASE_DOCUMENTS" FormatRepDocument = "FORMAT_REPERTOIRE_DOCUMENTS" // FormatRepClient = "FORMAT_REPERTOIRE_CLIENT" // FormatRepIntervention= "FORMAT_REPERTOIRE_INTERVENTION" // RepertoireRecup = "REPERTOIRE_DE_RECUPERATION" cParam_NbJourLog ="SERVICE_NBJOURS_LOG" //Nom du service Monitor cServiceMonitor ="Isis Service Monitor" //Commandes système cDST_System = "SYSTEM" //Destinataire des messages system cCMD_ServiceActif = "WOUF" cCMD_ServiceInfo = "INFO" cCMD_BUG = "BUG" cCMD_MajSComm = "S.COM.MAJ" //Mise à jour du service de comm cCMD_MajSMonitor = "S.MON.MAJ" //Mise à jour du service Monitor cCMD_PauseEtQuit = "S.COM.PEQ" //Arrêt du service après un délai d'inactivité. Le temps d'une mise à jour de la structure de la base par exemple. //Commandes permettant de manipuler le service Monitor cCMD_MonitorPause = "S.MON.PAUSE" cCMD_MonitorRedemarre= "S.MON.RDMRR" cCMD_MonitorArrete = "S.MON.STOP" cCMD_NiveauTrace = "S.TRACE.NIVEAU" cCMD_ReInitReplic = "RPL.INIT" cCMD_ParamEcrit = "S.PRM.EC" cCMD_ParamLit = "S.PRM.LI" cCMD_ParamSuppr = "S.PRM.SU" //Commandes envoyées par le mobile cCMD_ListeDocDmd = "S.DOC.LS" cCMD_DocRpRecup = "S.DRpRc.EC" cCMD_DocEcrit = "S.DOC.EC" sCMD_DocSupprime = "S.DOC.SU" cCMD_DocNoteEcrit = "S.DNT.EC" cCMD_DocNoteSupprime = "S.DNT.SU" cCMD_NoteEcrit = "S.NTE.EC" cCMD_NoteSupprime = "S.NTE.SU" cCMD_MsgExtEcrit = "S.MSGEXT.EC" cCMD_TempsEcrit = "S.TPS.EC" // cCMD_TempsSupprime = "S.TPS.SU" cCMD_TempsEcrit_V2 = "S.TPS.EC.V2" cCMD_RDVValidation = "S.RDV.V" 12/08/2026 Omika_S_Comm_DEV 168 Partie 3 › Collection de procédures › LIB_Service › Code cCMD_RDVAnnulation = "S.RDV.ANN" cCMD_CREcrit = "S.RPT.EC" cCMD_CREcrit_V2 = "S.RPT.EC.V2" cCMD_CRSupprime = "S.RPT.SU" cCMD_RdvEcrit = "S.RDV.EC" cCMD_RdvSupprime = "S.RDV.SU" cCMD_RdvAPlanifierEcrit = "S.RDV.PL" cCMD_ExecSQL = "S.SQL.EX" cCMD_ExecWL = "S.WL.EX" cCMD_Quitter = "S.QUIT" cDoc_OK = 0 cDoc_Inexistant = 8 //Trouvé dans la table des documents mais fichier absent cDoc_Inconnu = 7 //Inconnu dans la table des documents fin global STParamCategDoc est une Structure sCodeDroit est une chaîne sNomRepertoire est une chaîne fin gtbaCleParametre est un tableau associatif d'entiers sur 8 octets gtbaLibParametre est un tableau associatif de chaînes ANSI gtbaIdParametre est un tableau associatif de chaînes ANSI gtbaCategorieDoc_ID est un tableau associatif (*, *, wlChaîne) d'entiers sur 8 octets gtbaCategorieDoc est un tableau associatif (*, *, wlEntier_8) de chaînes gtabCategorieDocVal est un tableau associatif (*, *, wlEntier_8) de chaînes gtabCategorieDocRep est un tableau associatif (*, *, wlEntier_8) de chaînes gtabCategorieDocDroitest un tableau associatif (*, *, wlEntier_8) de chaînes gtbaCategorieDossier est un tableau associatif (*, *, wlEntier_8) de chaînes //Paramètres de connexion au serveur HFSQL hébergé sur le WEB | gcnxSrvWEB | | est une Connexion | | | -------------- | --- | ------------------- | --- | | gsaSW_Serveur | | est une chaîne ANSI | | | gsaSW_Port | | est une chaîne ANSI | | | gsaSW_NomBase | | est une chaîne ANSI | | | gsaSW_Cle | | est une chaîne ANSI | | //Paramètres de connexion au serveur HFSQL Local (Back Office) | gcnxAPart | | est une Connexion | | | ------------------ | ------------------- | ------------------- | --- | | gsaBO_Serveur | | est une chaîne ANSI | | | gsaBO_Port | | est une chaîne ANSI | | | gsaBO_Utilisateur | | est une chaîne ANSI | | | gsaBO_MotDePasse | est une chaîne ANSI | | | | gsaBO_NomBase | | est une chaîne ANSI | | | gsaBO_Cle | | est une chaîne ANSI | | //Déclaration des fichiers Externes TOSRV et TOMOB situés sur le serveur Cloud | gsdTOSRV | | est une Source de Données | | | --------- | --- | ------------------------- | --- | | gsdTOMOB | | est une Source de Données | | | gsdPARAM | | est une Source de Données | | //Fichiers Externe situés dans la base BO Locale | gsdParametreApplication | | est une Source de Données | | | ----------------------- | --- | ------------------------- | --- | | gsdMobReception | | est une Source de Données | | | gsdDocument | | est une Source de Données | | | 12/08/2026 | | Omika_S_Comm_DEV | 169 | Partie 3 › Collection de procédures › LIB_Service › Code | gsdDocumentNote est une Source de Données | | | | ----------------------------------------- | --- | --- | gsdCollaborateur est une Source de Données gsdSuiviDesTemps est une Source de Données | gsdCompteRendu est une Source de Données | | | | ---------------------------------------- | --- | --- | gsdMessageInterne est une Source de Données gsdMessageExterne est une Source de Données | gsdPlanning_RDV est une Source de Données | | | | ----------------------------------------- | --- | --- | gsdPlanning_RDV_Pers est une Source de Données | gsdPlanning est une Source de Données | | | | ---------------------------------------------------- | --- | --- | | gsdParametreMetier est une Source de Données | | | | gsdParametreSystem est une Source de Données | | | | gsdCompteur est une Source de Données | | | | //gsdParametreMetierEntete est une source de données | | | | gsaBaseService est une chaîne ANSI ="BASESERVICE" | | | | gsaAdresseHTTP_WS est une chaîne ANSI | | | | gbConnexionCloudActive est un booléen | | | gbSurveillanceActivée est un booléen gsCleMdp est une chaîne=Mdp1+Mdp3+Mdp2 | gsaToken est une chaîne ANSI ="coucou" | | | | --------------------------------------- | --- | --- | gbInitReplicationEnCours est un booléen, section critique | gbDeclarationExterneFaite est un booléen | | | | ----------------------------------------- | --- | --- | | gbConnexionOuverte est un booléen | | | gbInitialisationRéussie est un booléen, section critique ST_INFOSYSTEM est une Structure saNomExeest une chaîne ANSI saVersion est une chaîne ANSI saBO_Srvest une chaîne ANSI saBO_Port est une chaîne ANSI saBO_Base est une chaîne ANSI saCL_Srvest une chaîne ANSI saCL_Port est une chaîne ANSI saCL_Base est une chaîne ANSI saRepDocest une chaîne ANSI fin ST_REP_SYSTEM est une Structure saCMD est une chaîne ANSI saMSG est une chaîne ANSI saErr est une chaîne ANSI fin ST_REC est une Structure nNumRec est un entier saDate est une chaîne ANSI | 12/08/2026 | Omika_S_Comm_DEV | 170 | | ---------- | ---------------- | --- | Partie 3 › Collection de procédures › LIB_Service › Code saJSON est une chaîne ANSI fin ST_KILLREC est une Structure nNumRec est un entier saFichier est une chaîne ANSI fin //Structures partagée avec l'application mobile //Cette structure est utilisée dans le QRCode d'inscription ST_MOB_INSCRIPTION est une Structure saSrv est une chaîne ANSI saPort est une chaîne ANSI saIdCli est une chaîne ANSI nIdClb est un entier nIdUsr est un entier saIdDoc est une chaîne ANSI saNom est une chaîne ANSI saPren est une chaîne ANSI fin ST_DOC est une Structure saNom est une chaîne ANSI saType est une chaîne ANSI nInterID est un entier sur 8 octets saNote est une chaîne ANSI saDateCreat est une chaîne ANSI nIdUser est un entier sur 8 octets nDC_PKID est un entier sur 8 octets saDocGUID est une chaîne ANSI nStatut est un entier fin ST_LISTE_IDDOC est une Structure saIdMobile est une chaîne ANSI tblIdDoc est un tableau d'entiers sur 8 octets fin ST_DOCNOTE est une Structure saGuid est une chaîne ANSI saGuidDoc est une chaîne ANSI saNote est une chaîne ANSI nAuteur est un entier sur 8 octets saDate est une chaîne ANSI fin ST_TEMPS est une Structure saGuid est une chaîne ANSI nIdInter est un entier sur 8 octets nIdTps est un entier sur 8 octets nIdCollab est un entier sur 8 octets nIdPart est un entier sur 8 octets nIdRDV est un entier sur 8 octets saLibelle est une chaîne ANSI saHeureDebut est une chaîne ANSI saHeureFin est une chaîne ANSI nNbMinutes est un entier nIdTypeTps est un entier sur 8 octets nStatutSynchro est un entier bSupprime est un booléen fin 12/08/2026 Omika_S_Comm_DEV 171 Partie 3 › Collection de procédures › LIB_Service › Code ST_TEMPS_PASSE est une Structure saGuid est une chaîne ANSI nIdCollab est un entier sur 8 octets nIdTypeTps est un entier sur 8 octets nTemps est un entier saDateHeureDeb est une chaîne ANSI saDateHeureFin est une chaîne ANSI fin ST_TEMPS_PASSE_RDV est une Structure nIdRDV est un entier sur 8 octets nIdIntervention est un entier sur 8 octets saGuidRdv est une chaîne ANSI tblTemps est un tableau de ST_TEMPS_PASSE fin ST_TEMPS_PASSE_V2 est une Structure saGuid est une chaîne ANSI nIdCollab est un entier sur 8 octets nIdTypeTps est un entier sur 8 octets saHeureDebut est une chaîne ANSI saHeureFin est une chaîne ANSI saNote est une chaîne ANSI nIdRDV est un entier sur 8 octets saGuidRdv est une chaîne ANSI fin ST_TEMPS_PASSE_RDV_V2 est une Structure nIdRDV est un entier sur 8 octets nIdIntervention est un entier sur 8 octets saGuidRdv est une chaîne ANSI tblTemps est un tableau de ST_TEMPS_PASSE_V2 fin ST_VALIDATION_RDV est une Structure saGuid est une chaîne ANSI saNote est une chaîne ANSI fin ST_Annulations_RDV est une Structure tbAnnulations est un tableau de ST_Annulation_RDV fin ST_Annulation_RDV est une Structure saGUID_RDV est une chaîne ANSI nOrigine est un entier sur 8 octets nMotif est un entier sur 8 octets saCommentaire est une chaîne ANSI nIDGroupeRDV est un entier sur 8 octets fin //Correspond à l'objet cCR ST_CR est une Structure saGuidCR est une chaîne ANSI saDebut est une chaîne ANSI saFin est une chaîne ANSI saNoteCollab est une chaîne ANSI saNoteClient est une chaîne ANSI saDateSignature est une chaîne ANSI nIdInter est un entier sur 8 octets saSignataire est une chaîne ANSI saNomCollaborateur est une chaîne saGuidRDV est une chaîne ANSI nIdCollab est un entier sur 8 octets nIdUser est un entier sur 8 octets 12/08/2026 Omika_S_Comm_DEV 172 Partie 3 › Collection de procédures › LIB_Service › Code bTech est un booléen bDevisConforme est un booléen nRoleClient est un entier sur 8 octets bReserve est un booléen saReserveCommentaire est une chaîne fin //Correspond à l'Objet cMSGINTERNE de l'application Mobile ST_MSGINTERNE est une Structure sAGuid est une chaîne ANSI nIdInter est un entier sur 8 octets sANote est une chaîne ANSI sAAuteur est une chaîne ANSI nIdUser est un entier sur 8 octets sADate est une chaîne ANSI sAType est une chaîne ANSI fin ST_MsgExterneMail est une Structure nIdInter est un entier sur 8 octets saSujet est une chaîne ANSI bufCorp est un Buffer saGUID est une chaîne ANSI saAdrExp est une chaîne ANSI saPJ est une chaîne ANSI saDest est une chaîne ANSI saDestCC est une chaîne ANSI saDestCCI est une chaîne ANSI bEnvoye est un booléen nIdUser est un entier sur 8 octets fin ST_RDV est une Structure nPKID est un entier sur 8 octets nIDGroupe est un entier sur 8 octets nIDSociete est un entier sur 8 octets nIDEquipe est un entier sur 8 octets nIDCollaborateur est un entier sur 8 octets nIDDossier est un entier sur 8 octets nIDIntervention est un entier sur 8 octets nIDTypeActivite est un entier sur 8 octets nIDStatut est un entier sur 8 octets saDescription est une chaîne ANSI saDateDebut est une chaîne ANSI saDateFin est une chaîne ANSI bSuperposable est un booléen bPrive est un booléen bGrouper est un booléen saObjet est une chaîne ANSI nIDLieu est un entier sur 8 octets saGUID est une chaîne ANSI fin ST_PARAMETRE est une Structure nPKID est un entier sur 8 octets sType est une chaîne ANSI // S: ParamètreSystem A:ParametresApplication sCle est une chaîne ANSI // 50 Caractères sValeur est une chaîne ANSI // Mémo texte ansi bCrypte est un booléen sDescript est une chaîne ANSI //250 Caractères sCategorie est une chaîne ANSI sCleParam est une chaîne ANSI //Rubriques supplémentaires pour les paramètres métiers //Dans ce cas sCle = PA_Code 12/08/2026 Omika_S_Comm_DEV 173 Partie 3 › Collection de procédures › LIB_Service › Code //sValeur = PA_Valeur nOrdre est un entier bSysteme est un booléen bInvisible est un booléen bActif est un booléen sCleLiaison est une chaîne ANSI sLibCourt est une chaîne ANSI sParametre est une chaîne fin //" {"sType":"A","sCLE":"REPLOG","sValeur":"","bCrypte":0,"sDescript":""} " //" {"sType":"M","sCLE":"03","sValeur":"1","bCrypte":0,"sDescript":""} " //{ "sType":"M", "sCle":"03", "sValeur":"1", "bCrypte":false, "sDescript":"Client", "nOrdre":2, "bSysteme":false, "bInvisible":false, "bActif":true, "sCleLiaison":"", "sLibCourt":"", "sParametre":"" } Fic est une Structure //sNomFichier est une chaine saNomRubrique est une chaîne sAProprietee est une chaîne sAAnnexe est une chaîne fin Rep est une Structure sNomRep est une chaîne tabRub est un tableau de Fic sNomRepFormate est une chaîne sNomnIDRubRep est une chaîne fin ST_COMMANDE est une Structure saScript est une chaîne ANSI fin ST_Json_Param est une Structure Param est un JSON saLibelle est une chaîne ANSI fin //Exemple avec la commande "S.SQL.EX" : {"saScript":"UPDATE ParametreMetier SET PA_IDImport=2 WHERE PA_Code='01'"} //Commande S.WL.EX : Permet d’exécuter un script WLangage //Se reporter à l'aide WD de la commande Compile //Exemple de JSON : {"saScript":"TraceLog(\"ATTENTION A LA MANEUVRE !!\") // RENVOYER 1" } //Penser à 'échapper' le caractère " avec un \ Procédure globale AnnulerRDV procédure AnnulerRDV(bufJSON est un Buffer, sd est une Source de Données) TraceLog("Annulation de rendez-vous") stARDV est un ST_Annulations_RDV bOK est un booléen Désérialise(stARDV,bufJSON,psdJSON) si pas ErreurDétectée alors si stARDV:tbAnnulations..Occurrence > 0 alors si DonneIdParamAvecCle(cCle_RDVAnnule) > 0 alors bOK = Vrai 12/08/2026 Omika_S_Comm_DEV 174 Partie 3 › Collection de procédures › LIB_Service › Code sinon TraceLog("Erreur recherche de paramètre , annulation de RDV:" + ErreurInfo(errComplet), cTrace_Exception) fin fin si bOK alors pour tout stANNU de stARDV:tbAnnulations HRAZ(gsdPlanning) HRAZ(gsdPlanning_RDV) si stANNU.saGUID_RDV <>"" alors si stANNU.nIDGroupeRDV > 0 alors si HLitRecherchePremier(gsdPlanning,RV_PKID, stANNU.nIDGroupeRDV) alors HLitRecherchePremier(gsdPlanning_RDV,GUID, stANNU.saGUID_RDV ) fin sinon si HLitRecherchePremier(gsdPlanning_RDV,GUID,stANNU.saGUID_RDV) alors HLitRecherchePremier(gsdPlanning,GUID, gsdPlanning_RDV.RVC_GUID_RDV) fin fin si gsdPlanning.RV_PKID > 0 _et_ gsdPlanning_RDV.RVC_PKID > 0 alors gsdPlanning.RV_CleStatut = cCle_RDVAnnule gsdPlanning.RV_CleOrigineAnnu = DonneCleParamAvecID(stANNU.nOrigine) gsdPlanning.RV_CleMotifAnnu = DonneCleParamAvecID(stANNU.nMotif) gsdPlanning.RV_Description += [RC] + stANNU.saCommentaire si pas HEnregistre(gsdPlanning) alors TraceLog("Erreur :" + HErreurInfo(errComplet),cTrace_Exception) fin gsdPlanning_RDV.RVC_CleStatut = cCle_RDVAnnule si pas HEnregistre(gsdPlanning_RDV) alors TraceLog("Erreur :" + HErreurInfo(errComplet),cTrace_Exception) fin sinon TraceLog("Erreur dans annulation de RDV, RDV non conu: " +stANNU.saGUID_RDV+" "+ stANNU.nIDGroupeRDV) fin fin fin si bOK alors MarqueDataTraitée(sd.MR_PKID) fin fin fin Procédure globale ArreteLaSurveillanceDeToSRV // Résumé : // Syntaxe : // ArreteLaSurveillanceDeToSRV () // // Paramètres : // Aucun // Valeur de retour : // Aucune // // Exemple : // Indiquez ici un exemple d'utilisation. // 12/08/2026 Omika_S_Comm_DEV 175 Partie 3 › Collection de procédures › LIB_Service › Code procédure ArreteLaSurveillanceDeToSRV() si gbSurveillanceActivée alors // TraceLog("Arrêt de la surveillance.") HSurveilleStop(gsdTOSRV,CB_Ajout_TOSRV,hNumEnrTous) gbSurveillanceActivée=Faux fin Procédure globale BouclePrincipaleDuService procédure BouclePrincipaleDuService() //Mise à jour de dernière activité pour le Robot de surveillance INIEcrit(cIniSectionComm,cIniCleActivite,DateHeureSys,gsuFicIni) si pas gbInitReplicationEnCours alors si pas gbInitialisationRéussie alors si InitPrincipalDuService() alors //InitSurveillance() TraceLog("Initialisation Principale réussie",cTrace_Debug) TraceLog("Application : " + ExeInfo(exeNom) ) TraceLog("Version exe : " + ExeInfo(exeVersion) + " Mode : " + ExeInfo(exeMode)) TraceLog("Composant ") TraceLog("Libellé : " + ComposantInfo("", ciLibellé)) TraceLog("Version : " + ComposantInfo("", ciVersion)) TraceLog("Editeur : " + ComposantInfo("", ciSociété)) TraceLog("Date : " + ComposantInfo("", ciDateGénération)) TraceLog("Copyright : " + ComposantInfo("", ciCopyright)) sinon TraceLog("ECHEC de l'Initialisation Principale",cTrace_Exception) fin fin si gbInitialisationRéussie alors ParametreEcrit(cParam_ServiceActivite,DateHeureSys()) ParamCLOUD_Ecrit(cParam_ServiceActivite,DateHeureSys()) //On démarre un nouveau log chaque jour InitialiseFichierLog() //Relance le service monitor si arrêté RedemarreServiceMonitor() //Activation de la surveillance //ActiveThreadSurveillance() si pas gbInitReplicationEnCours alors InitSurveillance() LanceTachesDeTraitementDocRecus() fin fin fin Procédure globale CB_Ajout_TOSRV // Résumé : // Syntaxe : //CB_Ajout_TOSRV (, , ) // // Paramètres : // sNomFichier : // nNumRec : // nAction : // Valeur de retour : // Aucune // 12/08/2026 Omika_S_Comm_DEV 176 Partie 3 › Collection de procédures › LIB_Service › Code // Exemple : // Indiquez ici un exemple d'utilisation. // procédure CB_Ajout_TOSRV(sNomFichier ,nNumRec,nAction ) quand exception dans SecCrit est une SectionCritique utiliser SecCrit dans si HLit(gsdTOSRV,nNumRec) alors TraceLog("MESSAGE : " + gsdTOSRV.TS_Mobile +" CMD :" + gsdTOSRV.TS_CMD + RC + "JSON :" + gsdTOSRV.TS_JSON) HRAZ(gsdMobReception) gsdMobReception.MR_IDToSRV = gsdTOSRV.IDToSRV gsdMobReception.MR_JSON = gsdTOSRV.TS_JSON gsdMobReception.MR_CMD = gsdTOSRV.TS_CMD gsdMobReception.MR_Buffer = gsdTOSRV.TS_Buffer gsdMobReception.MR_NumSerie = gsdTOSRV.TS_Mobile gsdMobReception.MR_Fait = Faux gsdMobReception.MR_DateHeureRecep = DateHeureSys() HAjoute(gsdMobReception) HSupprime(gsdTOSRV) fin fin LanceTachesDeTraitementDocRecus() faire TraceLog("Exception" + ExceptionInfo(errComplet),cTrace_Exception) fin Procédure globale ChargeParametresMetiers procédure ChargeParametresMetiers() pour tout gsdParametreMetier avec "PA_Categorie"=cParam_TypeDoc gtbaCategorieDoc_ID[gsdParametreMetier.PA_Valeur]=gsdParametreMetier.PA_PKID gtbaCategorieDoc[gsdParametreMetier.PA_PKID]=gsdParametreMetier.PA_Libelle gtabCategorieDocVal[gsdParametreMetier.PA_PKID]=gsdParametreMetier.PA_Valeur unstParamCategDoc est un STParamCategDoc Désérialise(unstParamCategDoc,gsdParametreMetier.PA_Parametre,psdJSON) gtabCategorieDocRep[gsdParametreMetier.PA_PKID]=unstParamCategDoc.sNomRepertoire gtabCategorieDocDroit[gsdParametreMetier.PA_PKID]=unstParamCategDoc.sCodeDroit fin pour tout gsdParametreMetier avec "PA_Categorie"=cParam_TypeDossier gtbaCategorieDossier[gsdParametreMetier.PA_PKID] =gsdParametreMetier.PA_Libelle fin Procédure globale CompteRenduEcrit procédure CompteRenduEcrit(bufJSON est un Buffer, sd est une Source de Données) TraceLog("Ecrit CR nouvelle version") stCR est un ST_CR 12/08/2026 Omika_S_Comm_DEV 177 Partie 3 › Collection de procédures › LIB_Service › Code Désérialise(stCR,bufJSON,psdJSON) si pas ErreurDétectée alors si stCR.saGuidRDV<>"" _et_ HLitRecherchePremier(gsdPlanning_RDV,GUID,stCR.saGuidRDV) alors saRqCR est une chaîne ANSI gsdCompteRendu.CR_IDRdv =gsdPlanning_RDV.RVC_PKID saRqCR = [ SELECT CompteRendu.* FROM CompteRendu INNER JOIN RDV_Collaborateur ON RDV_Collaborateur.GUID = CR_GUID_Rdv WHERE RDV_Collaborateur.Archive = 0 AND RDV_Collaborateur.GUID = ] saRqCR += "'"+stCR.saGuidRDV+"'" rq est une Source de Données si HExécuteRequêteSQL(rq,gcnxAPart,hRequêteDéfaut,saRqCR) alors si HLitPremier(rq)alors si rq.CR_PKID > 0 alors stCR.saGuidCR = rq.GUID gsdCompteRendu.CR_IDRdv = rq.CR_IDRdv TraceLog("compte rendu :" + rq.GUID) fin fin sinon TraceLog("ERREUR dans recherche compte rendu :" + HErreurInfo(hErrComplet), cTrace_Exception) fin si pas HLitRecherchePremier(gsdCompteRendu,GUID,stCR.saGuidCR) alors HRAZ(gsdCompteRendu) gsdCompteRendu.CR_IDRdv =gsdPlanning_RDV.RVC_PKID fin gsdCompteRendu.CR_IDIntervention = stCR.nIdInter gsdCompteRendu.GUID = stCR.saGuidCR gsdCompteRendu.CR_DateHeureDebut = stCR.saDateSignature[1 à 8] + stCR.saDebut gsdCompteRendu.CR_DateHeureFin = stCR.saDateSignature[1 à 8] + stCR.saFin gsdCompteRendu.CR_NoteCollaborateur = stCR.saNoteCollab gsdCompteRendu.CR_NomSignataire = stCR.saSignataire gsdCompteRendu.CR_NoteSignataire = stCR.saNoteClient gsdCompteRendu.CR_DateHeureSignature = stCR.saDateSignature gsdCompteRendu.CR_IDCollaborateur = stCR.nIdCollab gsdCompteRendu.CR_DevisConforme = stCR.bDevisConforme gsdCompteRendu.CR_NomSignataireTech = stCR.saNomCollaborateur gsdCompteRendu.CR_NomSignataire = stCR.saSignataire gsdCompteRendu.CR_GUID_Rdv = stCR.saGuidRDV gsdCompteRendu.CR_IDTypeSignataire = stCR.nRoleClient si stCR.nRoleClient>0 _et_ DonneCleParamAvecID(stCR.nRoleClient) <> "" alors gsdCompteRendu.CR_CleTypeSignataire = DonneCleParamAvecID(stCR.nRoleClient) fin gsdCompteRendu.CR_AvecReserve = stCR.bReserve gsdCompteRendu.CR_ReserveCommentaire = stCR.saReserveCommentaire si stCR.bTech alors //mal nome dans l'application mobile gsdCompteRendu.CR_Signature = sd.MR_Buffer 12/08/2026 Omika_S_Comm_DEV 178 Partie 3 › Collection de procédures › LIB_Service › Code sinon gsdCompteRendu.CR_SignatureTech = sd.MR_Buffer fin gsdCompteRendu.CreationDate = stCR.saDateSignature gsdCompteRendu.ModifDate = DateHeureSys() gsdCompteRendu.CreationUser = stCR.nIdUser gsdCompteRendu.ModifUser = stCR.nIdUser si HEnregistre(gsdCompteRendu) alors MarqueDataTraitée(sd.MR_PKID) sinon si HErreur()>0 TraceLog("Erreur :" + HErreurInfo(errComplet),cTrace_Exception) fin fin sinon TraceLog("Erreur :" + ErreurInfo(errComplet),cTrace_Exception) fin Procédure globale ConnexionsEtabliesAuxBases procédure ConnexionsEtabliesAuxBases():booléen quand exception dans si HOuvreConnexion(gcnxAPart) alors si HOuvreConnexion(gcnxSrvWEB) alors renvoyer Vrai sinon TraceLog("Erreur Connexion Base WEB :" + HErreurInfo(hErrMessage),cTrace_Exception) renvoyer Faux fin sinon TraceLog("Erreur Connexion Base Locale :" + HErreurInfo(hErrMessage),cTrace_Exception) renvoyer Faux fin faire TraceLog("EXCEPTION Dans ConnexionsEtabliesAuxBases :" + ExceptionInfo(errComplet),cTrace_Exception ) renvoyer Faux fin Procédure globale CreaCompteur // Résumé : // Syntaxe : //[ = ] CreaCompteur () // // Paramètres : // P_CPTCode : // Valeur de retour : // multi-valeur : // Aucune // // Exemple : // Indiquez ici un exemple d'utilisation. // // sMSGErr (chaîne ANSI) : procédure CreaCompteur(P_CPTCode) nCpt est un entier sMSGErr est une chaîne 12/08/2026 Omika_S_Comm_DEV 179 Partie 3 › Collection de procédures › LIB_Service › Code quand exception dans HLitRecherchePremier(gsdCompteur,CPT_Code,P_CPTCode,hBlocageEcriture) TraceLog(ChaîneConstruit("CreaCompteur Htrouve %1",HTrouve(gsdCompteur))) si (pas HTrouve(gsdCompteur)) _ou_ (gsdCompteur.CPT_Annee>0 _et_ gsdCompteur.CPT_Annee<> AnnéeEnCours()) alors TraceLog(ChaîneConstruit("CreaCompteur %1 Initialisation",P_CPTCode)) si gsdCompteur.CPT_Annee>0 _et_ gsdCompteur.CPT_Annee<>AnnéeEnCours() alors gsdCompteur.CPT_Actif = Faux HModifie(gsdCompteur,hNumEnrEnCours) fin si gsdCompteur.CPT_Annee>0 alors gsdCompteur.CPT_Annee=AnnéeEnCours() gsdCompteur.CPT_Code=P_CPTCode gsdCompteur.CPT_Valeur=1 si HAjoute(gsdCompteur) alors nCpt = 1 fin //RENVOYER gsdCompteur.CPT_Valeur sinon TraceLog(ChaîneConstruit("CreaCompteur %1 Lecture",P_CPTCode)) HBloqueNumEnr(gsdCompteur,hNumEnrEnCours,hBlocageEcriture) boucle gsdCompteur.CPT_Valeur++ TraceLog(ChaîneConstruit("CreaCompteur %1 Valeur %2",P_CPTCode,gsdCompteur.CPT_Valeur)) à faire tantque pas HModifie(gsdCompteur) nCpt = gsdCompteur.CPT_Valeur HDébloqueNumEnr(gsdCompteur,hNumEnrEnCours) //RENVOYER gsdCompteur.CPT_Valeur fin faire nCpt= 0 sMSGErr = "Erreur lors de la recherche du paramètre gsdCompteur : "+RC+HErreurInfo(hErrComplet) TraceLog(ChaîneConstruit("CreaCompteur %1 Exception %2",P_CPTCode,sMSGErr)) fin renvoyer (nCpt,sMSGErr) //CAS ERREUR: //sMSGErr = "Erreur lors de la recherche du paramètre compteur : "+RC+HErreurBlocage()+RC+HErreurInfo(hErrComplet)//Info("Erreur lors de la recherche du paramètre compteur : ",HErreur(hErrEnCours),HErreurBlocage(),HErreurInfo(hErrComplet)) //CAS EXCEPTION: //sMSGErr = "Erreur lors de la recherche du paramètre compteur : "+RC+HErreurBlocage()+RC+HErreurInfo(hErrComplet)//Info("Erreur lors de la recherche du paramètre compteur : ",HErreur(hErrEnCours),HErreurBlocage(),HErreurInfo(hErrComplet)) Procédure globale CreaCompteur procédure CreaCompteur(local sCode est une chaîne,local bDummy est un booléen,local nParAn est un entier=-1,local nParMois est un entier=-1,local bAvecPrefixe est un booléen=Faux) TraceLog(ChaîneConstruit("CreaCompteur 2 sCode : %1 ; nParAn : %2; nParMois : %3; bAvecPrefixe : %4", sCode,nParAn,nParMois,bAvecPrefixe)) //reqSQL est une requête SQL = //[ //SELECT * FROM Compteur //WHERE compteur.CPT_Actif=1 //AND Compteur.CPT_Code={p_sCode} 12/08/2026 Omika_S_Comm_DEV 180 Partie 3 › Collection de procédures › LIB_Service › Code //AND Compteur.CPT_ParAnnee={p_bAnnee} //AND Compteur.CPT_ParMois={p_bMois} //] sCond est une chaîne = ChaîneConstruit("CPT_Actif=1 ET CPT_Code='%1' %2 %3",sCode,nParAn=-1 ? "" sinon "ET CPT_ParAnnee="+nParAn,nParAn=-1 ? "" sinon "ET CPT_ParMois="+nParMois) sFiltre est une chaîne = HFiltre(gsdCompteur,sCond) //reqSQL.p_sCode = sCode //reqSQL.p_bAnnee= nParAn=-1 ? Null SINON nParAn //reqSQL.p_bMois = nParMois=-1 ? Null SINON nParMois sMois est une chaîne = NumériqueVersChaîne(MoisEnCours(),"02d") sResult est une chaîne TraceLog(sCond) HLitPremier(gsdCompteur, sFiltre,hRespecteFiltre) si HEnDehors(gsdCompteur) alors //SI PAS HLitRecherchePremier(gsdCompteur,CPT_Code,sCode,hRespecteFiltre+hBlocageEcriture) ALORS//HExécuteRequête(reqSQL,hRequêteDéfaut+hModifieFichier) ALORS //HLitPremier(reqSQL) // SI pas HEnDehors(reqSQL) ALORS // bRAZAnnee est un booléen // bRAZMois est un booléen // SI reqSQL.CPT_ParAnnee=1 _et_ reqSQL.CPT_Annee<>AnnéeEnCours() ALORS bRAZAnnee = vrai // // SI reqSQL.CPT_ParMois=1 _ET_ reqSQL.CPT_Mois<>Complète(MoisEnCours(),2,0) ALORS bRAZMois = Vrai // // // SI bRAZAnnee _OU_ bRAZMois ALORS // //Mise à jour du compteur pour le rendre inactif // //HBloqueNumEnr(reqSQL,hNumEnrEnCours,hBlocageEcriture) // reqSQL.CPT_Actif = 0 // HModifie(reqSQL,hNumEnrEnCours) // //HDébloqueNumEnr(reqSQL,hNumEnrEnCours) // // HRAZ(Compteur) // SI bRAZAnnee ALORS // Compteur.CPT_Annee=AnnéeEnCours() // Compteur.CPT_ParAnnee=1 // FIN // SI bRAZMois ALORS // Compteur.CPT_Mois=MoisEnCours() // Compteur.CPT_ParMois=1 // FIN // Compteur.CPT_Code=sCode // Compteur.CPT_Valeur=1 // Compteur.CPT_Actif=1 // Compteur.CPT_ParAnnee=nParAn=-1 ? 0 SINON nParAn // Compteur.CPT_ParMois=nParMois=-1 ? 0 SINON nParMois // HAjoute(Compteur) // SINON // //HLitRecherche() // HBloqueNumEnr(reqSQL,hNumEnrEnCours,hBlocageEcriture) // // reqSQL.CPT_Valeur++ // // HModifie(reqSQL) // HDébloqueNumEnr(reqSQL,hNumEnrEnCours) // FIN // // sResult est une chaine = bAvecPrefixe=faux ? reqSQL.CPT_Valeur SINON reqSQL.CPT_ParAnnee=1 _et_ reqSQL.CPT_ParMois=1 ? sCode+reqSQL.CPT_Annee+sMois+Répète("0",6-Taille(reqSQL.CPT_Valeur))+reqSQL.CPT_Valeur SINON reqSQL.CPT_ParAnnee=1 _et_ reqSQL.CPT_M ois=0 ? sCode+reqSQL.CPT_Annee+Répète("0",6-Taille(reqSQL.CPT_Valeur))+reqSQL.CPT_Valeur SINON reqSQL.CPT_ParAnnee=0 _et_ reqSQL.CPT_Mois=1 ? sCode+sMois+Répète("0",6-Taille(reqSQL.CPT_Valeur))+reqSQL.CPT_Valeur SINON sCode+Répète("0",6-Taille(reqSQL.CPT_ 12/08/2026 Omika_S_Comm_DEV 181 Partie 3 › Collection de procédures › LIB_Service › Code Valeur))+reqSQL.CPT_Valeur // RENVOYER sResult // SINON HRAZ(gsdCompteur) si nParAn=1 alors gsdCompteur.CPT_Annee=AnnéeEnCours() si nParMois=1 alors gsdCompteur.CPT_Mois=MoisEnCours() gsdCompteur.CPT_Code = sCode gsdCompteur.CPT_Valeur = 1 gsdCompteur.CPT_Actif = 1 gsdCompteur.CPT_ParAnnee = nParAn=-1 ? 0 sinon nParAn gsdCompteur.CPT_ParMois = nParMois=-1 ? 0 sinon nParMois HAjoute(gsdCompteur) sResult = bAvecPrefixe=Faux ? gsdCompteur.CPT_Valeur sinon gsdCompteur.CPT_ParAnnee=1 _et_ gsd Compteur.CPT_ParMois=1 ? sCode+gsdCompteur.CPT_Annee+sMois+Répète("0",6-Taille(gsdCompteur. CPT_Valeur))+gsdCompteur.CPT_Valeur sinon gsdCompteur.CPT_ParAnnee=1 _et_ gsdCompteur.CPT_Mois=0 ? sCode+gsdCompteur.CPT_Annee+Répète("0",6-Taille(gsdCompteur.CPT_Valeur))+gsdCompteur.CPT_Valeur sinon gsdCompteur.CPT_ParAnnee=0 _et_ gsdCompteur.CPT_Mois=1 ? sCode+sMois+Répète("0",6-Taille(gsd Compteur.CPT_Valeur))+gsdCompteur.CPT_Valeur sinon sCode+Répète("0",6-Taille(gsdCompteur.CPT_Valeur ))+gsdCompteur.CPT_Valeur renvoyer sResult //FIN sinon bRAZAnnee est un booléen bRAZMoisest un booléen si gsdCompteur.CPT_ParAnnee=1 _et_ gsdCompteur.CPT_Annee<>AnnéeEnCours() alors bRAZAnnee = Vrai si gsdCompteur.CPT_ParMois=1 _et_ gsdCompteur.CPT_Mois<>Complète(MoisEnCours(),2,0) alors bRAZMois = Vrai si bRAZAnnee _ou_ bRAZMois alors //Mise à jour du compteur pour le rendre inactif HBloqueNumEnr(gsdCompteur,hNumEnrEnCours,hBlocageEcriture) gsdCompteur.CPT_Actif = 0 HModifie(gsdCompteur,hNumEnrEnCours) HDébloqueNumEnr(gsdCompteur,hNumEnrEnCours) HRAZ(gsdCompteur) si bRAZAnnee alors gsdCompteur.CPT_Annee = AnnéeEnCours() gsdCompteur.CPT_ParAnnee = 1 fin si bRAZMois alors gsdCompteur.CPT_Mois = MoisEnCours() gsdCompteur.CPT_ParMois = 1 fin gsdCompteur.CPT_Code = sCode gsdCompteur.CPT_Valeur = 1 gsdCompteur.CPT_Actif = 1 gsdCompteur.CPT_ParAnnee = nParAn=-1 ? 0 sinon nParAn gsdCompteur.CPT_ParMois = nParMois=-1 ? 0 sinon nParMois HAjoute(gsdCompteur) sinon //HLitRecherche() HBloqueNumEnr(gsdCompteur,hNumEnrEnCours,hBlocageEcriture) gsdCompteur.CPT_Valeur++ HModifie(gsdCompteur) HDébloqueNumEnr(gsdCompteur,hNumEnrEnCours) fin sResult= bAvecPrefixe=Faux ? gsdCompteur.CPT_Valeur sinon gsdCompteur.CPT_ParAnnee=1 _et_ gsd Compteur.CPT_ParMois=1 ? sCode+gsdCompteur.CPT_Annee+sMois+Répète("0",6-Taille(gsdCompteur. CPT_Valeur))+gsdCompteur.CPT_Valeur sinon gsdCompteur.CPT_ParAnnee=1 _et_ gsdCompteur.CPT_Mois=0 ? sCode+gsdCompteur.CPT_Annee+Répète("0",6-Taille(gsdCompteur.CPT_Valeur))+gsdCompteur.CPT_Valeur 12/08/2026 Omika_S_Comm_DEV 182 Partie 3 › Collection de procédures › LIB_Service › Code sinon gsdCompteur.CPT_ParAnnee=0 _et_ gsdCompteur.CPT_Mois=1 ? sCode+sMois+Répète("0",6-Taille(gsd Compteur.CPT_Valeur))+gsdCompteur.CPT_Valeur sinon sCode+Répète("0",6-Taille(gsdCompteur.CPT_Valeur ))+gsdCompteur.CPT_Valeur fin HDésactiveFiltre(gsdCompteur) renvoyer sResult Procédure globale CreationRepertoireCategorieSiInexistant procédure CreationRepertoireCategorieSiInexistant(sCheminFichiers) sValeurParam est une chaîne pour tout sValeurParam de gtabCategorieDocVal //Récupère le nom du répertoire chez le client correspondant à la catégorie sNomRep est une chaîne = gtabCategorieDocRep[gtbaCategorieDoc_ID[sValeurParam]] TraceLog("CreationRepertoireCategorieSiInexistant ValParam:"+sValeurParam+"\ RepAttendu:"+sNomRep) //Le chemin des fichiers contient le nom de la catégorie si Contient(sCheminFichiers,sNomRep) alors //Construit le chemin des fichiers jusqu'au nom du répertoire de la catégorie inclus sCheminCateg est une chaîne = ComplèteRep(ExtraitChaîne(sCheminFichiers,1,"\"+sNomRep+"\"))+ sNomRep+"\" TraceLog("CreationRepertoireCategorieSiInexistant chemin catégorie:"+sCheminCateg) si pas fRépertoireExiste(ComplèteRep(sCheminCateg)) alors fRepCrée(ComplèteRep(sCheminCateg)) fin fin Procédure globale DecodeCheminDocSelonInter procédure DecodeCheminDocSelonInter(local saStructureChemin est une chaîne ANSI, local saReq est une chaîne ANSI, local nIdInter est un entier sur 8 octets) si SansEspace(saStructureChemin) = "" _ou_ nIdInter <= 0 _ou_ SansEspace(saReq) = "" alors renvoyer "" fin saStructureDecodeest une chaîne ANSI = saStructureChemin tbRub est un tableau de chaînes ANSI = DonneRubSelonCheminDoc(saStructureChemin) tbRubDansRq est un tableau de chaînes ANSI pour tout saRub de tbRub si Contient(saReq,saRub,MotComplet) alors TableauAjoute(tbRubDansRq,saRub) fin fin si tbRubDansRq..Occurrence > 0 alors si Contient(saReq,cWhereIdInter) = Faux alors renvoyer "" sinon saReq = Remplace(saReq,cWhereIdInter,nIdInter) fin sdReqDoc est une Source de Données si HExécuteRequêteSQL(sdReqDoc,gcnxAPart,hRequêteDéfaut,saReq) alors HLitPremier(sdReqDoc) 12/08/2026 Omika_S_Comm_DEV 183 Partie 3 › Collection de procédures › LIB_Service › Code si HTrouve(sdReqDoc) alors pour tout saRub de tbRub saStructureDecode = Remplace(saStructureDecode,"["+saRub+"]", NettoieNomRepertoire( SansEspace({"sdReqDoc."+SansEspace(saRub)},sscExtérieur))) fin fin renvoyer saStructureDecode sinon TraceLog( "Erreur lors de la création du chemin d’accès des documents DecodeCheminDocSelonInter") fin fin renvoyer "" Procédure globale DecodeRepertoire // Résumé : // Syntaxe : //DecodeRepertoire ( est chaîne, est tableau) // // Paramètres : // sCheminEtFormat (chaîne ANSI) : // tabRep (tableau) : // Valeur de retour : // Aucune // // Exemple : // Indiquez ici un exemple d'utilisation. // procédure DecodeRepertoire(local sCheminEtFormat est une chaîne,tabRep est un tableau de Rep) sChaine est une chaîne = sCheminEtFormat//"D:\Documents\[CL_Nom] [CL_PKID]\Intervention [IN_PKID]" //Rep est une structure // sNomRep est une chaine // tabRub est un tableau de chaînes //fin //tabRep est un tableau de Rep pour toute chaîne sUnRep de sChaine séparée par ["\"] nPos est un entier = 0 si sUnRep<>"" alors unRep est un Rep unRep.sNomRep = sUnRep nIndice est un entier =TableauAjoute(tabRep,unRep) sNomRep est une chaîne = sUnRep sUneRubrique est une chaîne sUnePropriete est une chaîne nPosRub est un entier nTailleRub est un entier nPosPropr est un entier nTaillePropr est un entier nPosAnnexe est un entier sUneAnnexe est une chaîne nTailleAnnexe est un entier boucle //**Recherche d'une rubrique nPosRub = Position(sNomRep,"[") sUneRubrique = nPosRub>0 ? ExtraitChaîne(ExtraitChaîne(ExtraitChaîne(ExtraitChaîne( sNomRep,2,"[",DepuisDébut),1,"[",DepuisDébut),1,"]"),1,"]") sinon "" si nPosRub-1=Position(sNomRep,"#",nPosRub-1) _et_ nPosRub-1>0 alors tabRep[nIndice].sNomnIDRubRep = sUneRubrique fin nTailleRub = sUneRubrique<>"" ? Taille("["+sUneRubrique+"]") sinon 0 sNomRep = nPosRub>0 _et_ nTailleRub>0 ? ChaîneSupprime(sNomRep,nPosRub,nTailleRub 12/08/2026 Omika_S_Comm_DEV 184 Partie 3 › Collection de procédures › LIB_Service › Code ) sinon sNomRep //**Recherche d'une propriété d'une rubrique nPosPropr = Position(sNomRep,"{") sUnePropriete = nPosPropr>0 ? ExtraitChaîne(ExtraitChaîne(ExtraitChaîne(ExtraitChaîne( sNomRep,2,"{",DepuisDébut),1,"{",DepuisDébut),1,"}"),1,"}") sinon "" nTaillePropr = sUnePropriete<>"" ? Taille("{"+sUnePropriete+"}") sinon 0 sNomRep = nPosPropr>0 _et_ nTaillePropr>0 ? ChaîneSupprime(sNomRep,nPosPropr, nTaillePropr) sinon sNomRep //**Recherche d'une donnée annexe à une rubrique si Position(sNomRep,"[")<=0 _ou_ Position(sNomRep,"[") >= Position(sNomRep,"<") alors nPosAnnexe = Position(sNomRep,"<") sUneAnnexe = nPosAnnexe>0 ? ExtraitChaîne(ExtraitChaîne(ExtraitChaîne( ExtraitChaîne(sNomRep,2,"<",DepuisDébut),1,"<",DepuisDébut),1,">"),1,">") sinon "" nTailleAnnexe = sUneAnnexe<>"" ? Taille("<"+sUneAnnexe+">") sinon 0 sNomRep = nPosAnnexe>0 _et_ nTailleAnnexe>0 ? ChaîneSupprime(sNomRep, nPosAnnexe,nTailleAnnexe) sinon sNomRep fin si sUneRubrique<>EOT _et_ sUneRubrique<>"" alors UnFic est un Fic UnFic.saNomRubrique = sUneRubrique si sUnePropriete<>"" alors UnFic.saProprietee = sUnePropriete fin si sUneAnnexe<>"" alors UnFic.saAnnexe = "SELECT "+ExtraitChaîne(sUneAnnexe,1,"|")+" AS C1 FROM "+ ExtraitChaîne(ExtraitChaîne(sUneAnnexe,1,"|"),1,".") + " WHERE "+ExtraitChaîne( sUneAnnexe,2,"|")+"=%1" fin TableauAjoute(tabRep[nIndice].tabRub,UnFic) fin à faire tantque sUneRubrique<>"" _et_ sUneRubrique<>EOT fin fin 12/08/2026 Omika_S_Comm_DEV 185 Procédure globale DecodeRepSLAMM procédure DecodeRepSLAMM(SourceSQL est une Source de Données, sFormatRepDoc est une chaîne, bEnLecture est un booléen,nIdCategorie est un entier sur 8 octets) //[LI_CodeLieu] #[LI_PKID] - [LI_IDAdresse] - [LI_IDAdresse] ##INTERV\?\ //[IN_DateIntervention]{..Année} [IN_DateIntervention]{..Mois} [DO_IDTypeDossier] [IN_RefInterne] //\\slamm-ad01\share\Service entretien\Sites\ //9 quai Jean Moulin - 9 quai Jean Moulin - LYON ##INTERV\Photos\2022 8 Entretien DI000017-3 sCheminFichier est une chaîne ANSI //POUR TOUT SourceSQL sCheminFichier += SourceSQL.LI_CodeLieu sCheminFichier += " - " sCheminFichier += SourceSQL.AD_Ligne_4 sCheminFichier += " - " sCheminFichier += SourceSQL.AD_Ville si Contient(sFormatRepDoc,"##INTERV") alors sCheminFichier += " ##INTERV" fin sCheminFichier += "\" si nIdCategorie > 0 alors sCheminFichier += gtabCategorieDocRep[nIdCategorie] sinon si SourceSQL.DC_Categorie > 0 et bEnLecture alors sCheminFichier += gtabCategorieDocRep[SourceSQL.DC_Categorie] sinon Partie 3 › Collection de procédures › LIB_Service › Code si gtbaCategorieDoc_ID[1] > 0 alors sCheminFichier += gtabCategorieDocRep[gtbaCategorieDoc_ID[1]] sinon sCheminFichier += "Photos" fin fin sCheminFichier += "\" sCheminFichier += SourceSQL.IN_DateIntervention..Année sCheminFichier += " " sCheminFichier += SourceSQL.IN_DateIntervention..Mois sCheminFichier += " " si SourceSQL.DO_IDTypeDossier > 0 alors sCheminFichier += gtbaCategorieDossier[SourceSQL.DO_IDTypeDossier] fin sCheminFichier += " " sCheminFichier += SourceSQL.IN_RefInterne //FIN TraceLog("Répertoire SLAMM âpres decode:" + sCheminFichier) renvoyer sCheminFichier Procédure globale DemandeListeDoc procédure DemandeListeDoc(bufJSON est un Buffer, sd est une Source de Données) //Demande de Fichiers envoyée par un mobile stLst est un ST_LISTE_IDDOC bufFic est un Buffer saRep est une chaîne ANSI saCheminBase est une chaîne ANSI saChemin est une chaîne ANSI nIdInter est un entier sur 8 octets saRepRecherche est une chaîne ANSI Désérialise(stLst,bufJSON,psdJSON) //Pour chaque ID contenu dans le tableau de doc demandé si stLst.tblIdDoc..Occurrence>0 alors saStructureChemin est une chaîne ANSI saReqDocs est une chaîne ANSI saRepDocs est une chaîne ANSI (saStructureChemin, saReqDocs,saRepDocs) = DonneStructureCheminParam() pour i=1 _à_ stLst.tblIdDoc..Occurrence si stLst.tblIdDoc[i] >0 alors //Recherche des fichiers stDC est un ST_DOC stDC.nDC_PKID =stLst.tblIdDoc[i] si HLitRecherchePremier(gsdDocument,DC_PKID,stLst.tblIdDoc[i]) alors saRep = "" si SansEspace(gsdDocument.DC_Chemin) <> "" alors saRep = ComplèteRep(saRepDocs)+ComplèteRep(gsdDocument.DC_Chemin)+gsdDocument. DC_Nom fin si saRep <> "" _et_ pas fFichierExiste(saRep) alors saRep = "" 12/08/2026 Omika_S_Comm_DEV 187 Partie 3 › Collection de procédures › LIB_Service › Code fin si saRep = "" alors si nIdInter <> gsdDocument.DC_IDIntervention alors saCheminBase = DecodeCheminDocSelonInter(saStructureChemin,saReqDocs,gsd Document.DC_IDIntervention) fin nIdInter = gsdDocument.DC_IDIntervention saChemin = DonneCheminFichier(gsdDocument.DC_CleCategorie, saCheminBase) saRepRecherche = RetrouverRepertoire(saCheminBase,saRepDocs) saRep = ComplèteRep(saRepRecherche)+gsdDocument.DC_Nom si pas fFichierExiste(saRepRecherche) alors saRep = RechercheCheminUnDoc(saChemin,saRepDocs,gsdDocument.DC_Nom) fin fin si saRep<>"" _et_ fFichierExiste(saRep) alors bufFic = fChargeBuffer(saRep) stDC.saNom = gsdDocument.DC_Nom stDC.saType = "" stDC.nInterID = gsdDocument.DC_IDIntervention stDC.saDocGUID = gsdDocument.GUID stDC.saDateCreat = gsdDocument.DC_DateFichier stDC.nIdUser = gsdDocument.CreationUser stDC.nStatut = cDoc_OK gsdDocument.DC_Chemin = Remplace(saRep,ComplèteRep(saRepDocs),"") gsdDocument.DC_Chemin = Remplace(gsdDocument.DC_Chemin,gsdDocument.DC_Nom,"") HEnregistre(gsdDocument) TraceLog("Envoie de " +stDC.saNom + " vers :" +sd.MR_NumSerie ,cTrace_Info) sinon TraceLog("Fichier introuvable :" + saRep + gsdDocument.DC_Nom,cTrace_Debug) stDC.nStatut =cDoc_Inexistant fin sinon TraceLog("Doc déréférencé :" + stLst.tblIdDoc[i],cTrace_Debug) stDC.nStatut =cDoc_Inconnu fin saJSON est une chaîne ANSI Sérialise(stDC,saJSON,psdJSON) TraceLog("Ecrit TOMOB - Début : " + gsdDocument.DC_Nom,cTrace_Info) TraceLog("Taille du buffer : " + TailleVersChaîne( Taille(bufFic),tailleKo ),cTrace_Info) HRAZ(gsdTOMOB) gsdTOMOB.TM_buffer = bufFic gsdTOMOB.TM_Mobile = sd.MR_NumSerie gsdTOMOB.TM_JSON = saJSON gsdTOMOB.TM_Date = DateHeureSys() si sd.MR_CMD = cCMD_DocRpRecup alors gsdTOMOB.TM_CMD = "DOC_Rp" sinon gsdTOMOB.TM_CMD = "DOC" fin si pas HAjoute(gsdTOMOB) alors // Cette écriture peut être longue si le fichier contenu dans bufFic est gros et la liaison Internet lente. TraceLog("ERREUR : Le fichier n'a pas été transmis." + HErreurInfo(hErrMessage), cTrace_Exception) 12/08/2026 Omika_S_Comm_DEV 188 Partie 3 › Collection de procédures › LIB_Service › Code //On choisit ici de faire comme si le fichier avait été transmis, afin de ne pas boucler dessus. sinon TraceLog("Ecrit TOMOB - Fin",cTrace_Info) fin //Marque fait chaque élément du tableau en mettant sa valeur négative. Cela permet de reprendre ou on en était après un crash stLst.tblIdDoc[i] = -stLst.tblIdDoc[i] Sérialise(stLst,bufJSON,psdJSON) si HLitRecherchePremier(gsdMobReception,MR_PKID,sd.MR_PKID) alors gsdMobReception.MR_JSON=bufJSON HModifie(gsdMobReception) fin sinon TraceLog("Fichier déjà transféré : " + stLst.tblIdDoc[i]) fin fin fin MarqueDataTraitée(sd.MR_PKID) Procédure globale DemarreSurveillanceMessages // Résumé : // Syntaxe : // DemarreSurveillanceMessages () // // Paramètres : // Aucun // Valeur de retour : // Aucune // // Exemple : // Indiquez ici un exemple d'utilisation. // procédure DemarreSurveillanceMessages() ArreteLaSurveillanceDeToSRV() RecupereDonneesNonLu() // HSurErreur("RECEPT",hErrPerteConnexion,SurPerteDeConnexion) si HSurveille(gsdTOSRV,CB_Ajout_TOSRV,hNumEnrTous,hsAjout) alors gbSurveillanceActivée =Vrai sinon gbSurveillanceActivée=Faux TraceLog("La surveillance n'est pas activée: " + RC + ErreurInfo(errComplet),cTrace_Exception) fin Procédure globale DocEcrit procédure DocEcrit(bufJSON est un Buffer, sd est une Source de Données) stDoc est un ST_DOC Désérialise(stDoc,bufJSON,psdJSON) saStructureChemin est une chaîne ANSI saReqDocs est une chaîne ANSI saRepDocs est une chaîne ANSI nErr est un entier (saStructureChemin, saReqDocs,saRepDocs) = DonneStructureCheminParam() 12/08/2026 Omika_S_Comm_DEV 189 Partie 3 › Collection de procédures › LIB_Service › Code //Enregistrement d'une Image dans une intervention nIDCategDoc est un entier sur 8 octets si stDoc.saType = "PDF_RP" alors nIDCategDoc = DonneIdParamAvecCle(cCle_TypeDocRapport) sinon nIDCategDoc = DonneIdParamAvecCle(cCle_TypeDocImg) fin saCheminBase est une chaîne ANSI = DecodeCheminDocSelonInter(saStructureChemin,saReqDocs,stDoc. nInterID) saRep est une chaîne ANSI = ComplèteRep(saRepDocs)+ComplèteRep(saCheminBase) saRep = DonneCheminFichier(DonneCleParamAvecID(nIDCategDoc), saCheminBase) saRep = RetrouverRepertoire(saCheminBase,saRepDocs) si saRep<>"" _et_ fRepCrée(saRep) alors //Sauve le fichier si fSauveBuffer(saRep + stDoc.saNom ,sd.MR_Buffer) alors //Cré ou modifie si pas HLitRecherchePremier(gsdDocument,guid ,stDoc.saDocGUID) alors HRAZ(gsdDocument) gsdDocument.CreationDate = stDoc.saDateCreat gsdDocument.CreationUser = stDoc.nIdUser gsdDocument.GUID = stDoc.saDocGUID fin gsdDocument.DC_IDIntervention = stDoc.nInterID gsdDocument.DC_Nom = stDoc.saNom gsdDocument.DC_Categorie = nIDCategDoc gsdDocument.DC_CleCategorie = DonneCleParamAvecID(nIDCategDoc) gsdDocument.DC_DateFichier = stDoc.saDateCreat[1 à 8] gsdDocument.ModifDate = stDoc.saDateCreat gsdDocument.ModifUser = stDoc.nIdUser gsdDocument.DC_Chemin = Remplace(saRep,ComplèteRep(saRepDocs),"") si pas HEnregistre(gsdDocument) alors nErr=3 sinon MarqueDataTraitée(sd.MR_PKID) fin sinon nErr=2 fin sinon nErr=1 fin saERR est une chaîne ANSI si nErr<>0 alors TraceLog("TraiteDocRecu Erreur :"+ nErr) selon nErr cas 1 //Répertoire Intervention Inexistant saERR=ErreurInfo(errComplet) cas 2 //Pb de sauvegarde du buffer saERR=ErreurInfo(errMessage) cas 3 //Pb d'enregistrement du document saERR=HErreurInfo(hErrMessage) fin TraceLog(saERR,cTrace_Exception) //Report du traitement dans 2 minutes ReporteTraitement(sd.MR_PKID,2) // SauveDocumentDansRecup(stDoc) fin Procédure globale DocNoteEcrit 12/08/2026 Omika_S_Comm_DEV 190 Partie 3 › Collection de procédures › LIB_Service › Code procédure DocNoteEcrit(bufJSON est un Buffer, sd est une Source de Données) //Enregistrement d'un commentaire de document stDN est un ST_DOCNOTE Désérialise(stDN,bufJSON,psdJSON) si pas ErreurDétectée alors TraceLog("Doc NOTE") TraceLog("GUID =" + stDN.saGuidDoc) si HLitRecherchePremier(gsdDocument,guid,stDN.saGuidDoc) alors HRAZ(gsdDocumentNote) gsdDocumentNote.DN_IDDocument = gsdDocument.DC_PKID gsdDocumentNote.DN_Note = stDN.saNote gsdDocumentNote.CreationDate = stDN.saDate gsdDocumentNote.CreationUser = stDN.nAuteur gsdDocumentNote.GUID = stDN.saGuid HAjoute(gsdDocumentNote) fin sinon TraceLog("Enregistrement d'une Note de document"+RC +" Erreur " + ErreurInfo(errComplet)) fin MarqueDataTraitée(sd.MR_PKID) Procédure globale DonneCheminFichier procédure DonneCheminFichier(saCleCategorie est une chaîne ANSI, saCheminRub est une chaîne ANSI) si saCleCategorie <> "" _et_ Contient(saCheminRub,cRub_Categorie) ou Contient(saCheminRub, cRub_CategorieID) alors saRubCtgest une chaîne ANSI = DonneLibelleParamAvecCle(saCleCategorie) saRubCtgId est une chaîne ANSI = DonneLibelleParamAvecCle(saCleCategorie) +" #"+ DonneIdParamAvecCle(saCleCategorie) saCheminRub = Remplace(saCheminRub,cRub_Categorie,saRubCtg) saCheminRub = Remplace(saCheminRub,cRub_CategorieID,saRubCtgId) fin renvoyer saCheminRub Procédure globale DonneCleParamAvecID procédure DonneCleParamAvecID(local nIdParam est un entier sur 8 octets) si nIdParam > 0 _et_ gtbaIdParametre[nIdParam]..Existe = Vrai alors renvoyer gtbaIdParametre[nIdParam] fin renvoyer "" Procédure globale DonneDroitCategorieDoc // Résumé : // Syntaxe : //[ = ] DonneDroitCategorieDoc ( est entier sur 8 octets) // // Paramètres : // nIDCategorie (entier sur 8 octets) : // Valeur de retour : // multi-valeur : // Aucune // // Exemple : // Indiquez ici un exemple d'utilisation. // procédure DonneDroitCategorieDoc(local nIDCategorie est un entier sur 8 octets) sCodeDroit est une chaîne sNomRepertoire est une chaîne 12/08/2026 Omika_S_Comm_DEV 191 Partie 3 › Collection de procédures › LIB_Service › Code //stDroitCateg est un STParamCategDoc //sParametreJSON est une chaine = gpclListeCategorieDocument.RechercheEtDonneParametreDepuisId(nIDCategorie) //SI sParametreJSON<>"" ALORS //Désérialise(stDroitCateg,sParametreJSON,psdJSON) sCodeDroit = gtabCategorieDocDroit[nIDCategorie] sNomRepertoire = gtabCategorieDocRep[nIDCategorie]//stDroitCateg.sNomRepertoire //FIN renvoyer (sCodeDroit,sNomRepertoire) Procédure globale DonneIdParamAvecCle procédure DonneIdParamAvecCle(local saCle est une chaîne ANSI) si SansEspace(saCle) <> "" _et_ gtbaCleParametre[saCle]..Existe = Vrai alors renvoyer gtbaCleParametre[saCle] fin renvoyer 0 Procédure globale DonneLibelleParamAvecCle procédure DonneLibelleParamAvecCle(local saCle est une chaîne ANSI) si SansEspace(saCle) <> "" _et_ gtbaLibParametre[saCle]..Existe = Vrai alors renvoyer gtbaLibParametre[saCle] fin renvoyer 0 Procédure globale DonneRepertoireIntervention procédure DonneRepertoireIntervention(local saSNomClient est une chaîne,local nIDClient est un entier sur 8 octets,local nIDIntervention est un entier sur 8 octets) sNomRep est une chaîne si HLitRecherchePremier(gsdParametreApplication,PAP_Code,FormatRepDocument) alors sNomRep=gsdParametreApplication.PAP_Valeur sinon sNomRep="[CL_Nom] [CL_PKID]\Intervention [IN_PKID]" fin sNomRep = Remplace(sNomRep, "[IN_PKID]" ,nIDIntervention,MotComplet+SansCasse) sNomRep = Remplace(sNomRep, "[CL_Nom]" ,saSNomClient ,MotComplet+SansCasse) sNomRep = Remplace(sNomRep, "[CL_PKID]" ,nIDClient ,MotComplet+SansCasse) sNomRep = Remplace(sNomRep, "[LI_CodeLieu]" ,nIDClient ,MotComplet+SansCasse) sNomRep = Remplace(sNomRep, "[IN_RefInterne]",nIDClient ,MotComplet+SansCasse) sNomRep = Remplace(sNomRep, "[LI_PKID]" ,nIDClient ,MotComplet+SansCasse) sNomRep = ComplèteRep(sNomRep) TraceLog("DonneRepertoireIntervention : [" + sNomRep + "]") renvoyer sNomRep Procédure globale DonneRepertoireRacine procédure DonneRepertoireRacine() sRepRacine est une chaîne si HLitRecherche(gsdParametreApplication,PAP_Code,RepertoireDocument,hIdentique) alors sRepRacine = ComplèteRep(gsdParametreApplication.PAP_Valeur) fin renvoyer sRepRacine Procédure globale DonneRubSelonCheminDoc 12/08/2026 Omika_S_Comm_DEV 192 Partie 3 › Collection de procédures › LIB_Service › Code procédure DonneRubSelonCheminDoc(saStructureChemin est une chaîne ANSI) tbRub est un tableau de chaînes ANSI si saStructureChemin = "" alors renvoyer tbRub fin //*******Select********// pour toute chaîne saUnRep de saStructureChemin séparée par ["\"] nPos est un entier = 0 si saUnRep<>"" alors sNomRep est une chaîne = saUnRep sUneRubrique est une chaîne nPosRub est un entier nTailleRub est un entier boucle //**Recherche d'une rubrique nPosRub = Position(sNomRep,"[") sUneRubrique = nPosRub>0 ? ExtraitChaîne(ExtraitChaîne(ExtraitChaîne(ExtraitChaîne(sNomRep ,2,"[",DepuisDébut),1,"[",DepuisDébut),1,"]"),1,"]") sinon "" nTailleRub = sUneRubrique<>"" ? Taille("["+sUneRubrique+"]") sinon 0 sNomRep = nPosRub>0 _et_ nTailleRub>0 ? ChaîneSupprime(sNomRep,nPosRub,nTailleRub ) sinon sNomRep si sUneRubrique<>EOT _et_ sUneRubrique<>"" alors TableauAjoute(tbRub,sUneRubrique) fin à faire tantque sUneRubrique<>"" _et_ sUneRubrique<>EOT fin fin renvoyer tbRub Procédure globale DonneStructureCheminParam procédure DonneStructureCheminParam() saStructureChemin est une chaîne ANSI = "[LI_CodeLieu] #[LI_PKID]\[CL_Nom] #[CL_PKID]\[IN_RefInterne] #[IN_PKID]\"+cRub_CategorieID saReq est une chaîne ANSI = [ SELECT IN_RefInterne, IN_PKID, LI_CodeLieu , LI_PKID, CL_Nom, CL_PKID FROM Intervention LEFT OUTER JOIN Client ON (Client.CL_PKID=Intervention.IN_IDClient) LEFT OUTER JOIN Lieu ON (Lieu.LI_PKID=Intervention.IN_IDLieu) WHERE IN_PKID = {p_IdInter} ] saChemin est une chaîne ANSI = ComplèteRep(ComplèteRep(fRepExe())+"Documents_Intervention") saStructureChemin = ParametreLit(cParam_StructureCheminDoc,saStructureChemin,Faux) saReq = ParametreLit(cParam_ReqCheminDoc,saReq,Faux) saChemin = ParametreLit(cParam_CheminRepDocInter,saChemin,Faux) renvoyer (saStructureChemin, saReq,saChemin) Procédure globale FermetureDesConnexions procédure FermetureDesConnexions() HFermeConnexion(gcnxSrvWEB) HFermeConnexion(gcnxAPart) 12/08/2026 Omika_S_Comm_DEV 193 Partie 3 › Collection de procédures › LIB_Service › Code gbConnexionOuverte=Faux Procédure globale FermetureDuService // Résumé : // Syntaxe : // FermetureDuService () // // Paramètres : // Aucun // Valeur de retour : // Aucune // // Exemple : // Indiquez ici un exemple d'utilisation. // procédure FermetureDuService() TraceLog("Fermeture du Service",cTrace_Exception) Procédure globale InfoService procédure InfoService() quand exception dans s est une chaîne ANSI srep est une chaîne = DonneRepertoireRacine() si srep="" alors s="Répertoire racine non configuré" sinon s="Rep Racine : " + srep si fRépertoireExiste(srep) alors s+= RC + "Répertoire Existe." si fRepCrée(srep +"SysAPart") alors s+=RC + "SUCCES de la création du répertoire de test" si fRepSupprime(srep +"SysAPart") alors s+=RC + "SUCCES de la suppression du répertoire de test" sinon s+=RC +"ECHEC de la suppression du répertoire de test" s+=RC + ErreurInfo(errMessage) fin sinon s+=RC +"ECHEC de la création du répertoire de test" s+=RC + ErreurInfo(errMessage) fin sinon s+=RC + "Répertoire inexistant ou inaccessible." fin fin faire s+=RC + "EXCEPTION" + RC + ExceptionInfo(errComplet) fin renvoyer s Procédure globale InitialisationParametres procédure InitialisationParametres() quand exception dans //Paramètres Métiers sd est une Source de Données 12/08/2026 Omika_S_Comm_DEV 194 Partie 3 › Collection de procédures › LIB_Service › Code saReq est une chaîne ANSI = "SELECT PA_PKID,PA_CLE,PA_Categorie,PA_Libelle FROM ParametreMetier WHERE PA_Categorie IN ('"+ cParam_Civilite+"','"+cParam_TypeDossier+"','"+... cParam_StatutDossier+"','"+cparam_TypeLieu+"','"+cParam_RoleContact+"','"+cParam_TypeInter+"','"+ cParam_EtatInter+"','"+cParam_TypeRDV+"','"+cParam_StatusRDV+"','"+cParam_TypeDoc+... "','"+cParam_TypeSignCR+"','"+cParam_OrigAnnuRDV+"','"+cParam_MotifAnnuRDV+"','"+cparam_TypeTemps+ "') ORDER BY PA_CLE,PA_Categorie" si HExécuteRequêteSQL(sd, gcnxAPart,hRequêteDéfaut,saReq) alors pour tout sd gtbaCleParametre[sd.PA_CLE] = sd.PA_PKID gtbaLibParametre[sd.PA_CLE] = sd.PA_Libelle gtbaLibParametre[sd.PA_PKID] = sd.PA_Libelle gtbaIdParametre[sd.PA_PKID] = sd.PA_CLE fin sinon TraceLog("Erreur chargement de paramètres métier "+HErreurInfo(hErrComplet),cTrace_Exception) fin faire renvoyer Faux fin renvoyer Vrai Procédure globale InitPrincipalDuService procédure InitPrincipalDuService() quand exception dans gbInitialisationRéussie=Faux //Contrôle de la présence du fichier ini suFicLog est une chaîne Unicode = InitialiseFichierLog() si pas fFichierExiste(gsuFicIni) alors ServiceEcritEvénementJournal("Les données d'initialisation du service n'ont pas été trouvées "+ RC + gsuFicIni + RC + "La communication avec les mobiles n'est pas active.",ejErreur,1) FinService(fsArrêt) renvoyer Faux fin //Lecture des paramètres de connexion dans le fichier ini gsaBO_Serveur =INILit("ServeurHFSQL_1","MachineOuAdresseIP" ,"",gsuFicIni) gsaBO_Port =INILit("ServeurHFSQL_1","Port" ,"",gsuFicIni) gsaBO_NomBase =INILit("ServeurHFSQL_1","BaseDeDonnees" ,"",gsuFicIni) gsaSociete =INILit("SOCIETE","Societe" ,"",gsuFicIni) //Ajout de l'utilisateur ServiceMobile servant à la synchro mobile (Super Utilisateur) //Le mot de passe est calculé à partir du nom de la base de données // nPos est un entier = Position(gsaBO_NomBase,"_") // SI nPos > 1 ALORS // nPos -= 1 // FIN // saMp est une chaîne ANSI = Mdp3+"!"+Gauche(gsaBO_NomBase,nPos) //bufMDP est un buffer =Crypte("APart_"+gsaBO_NomBase,gsCleMdp,crypteRC516,encodePCS) // TraceLog("ServiceMobile Mdp:[ "+ bufMDP +" ]") 12/08/2026 Omika_S_Comm_DEV 195 Partie 3 › Collection de procédures › LIB_Service › Code //CONNEXION A LA BASE CLIENT DU BACK-OFFICE gcnxAPart..Provider = hAccèsHFClientServeur gcnxAPart..Serveur = gsaBO_Serveur + ":"+gsaBO_Port gcnxAPart..Utilisateur = cUserServiceMobile gcnxAPart..MotDePasse = "K9GI6esVFhD1YT" gcnxAPart..BaseDeDonnées = gsaBO_NomBase gcnxAPart..Cryptage = hCryptageRC5_16 si pas OuvreConnexionBase() alors TraceLog("OuvreConnexionBase a échoué : " + HErreurInfo(hErrComplet), cTrace_Exception) renvoyer Faux fin //Purge des anciens Log PurgeDesFichiersLog() TraceLog("Connexion réussie à la base BO") //La connexion au BO est réussie, on récupère les paramètres de fonctionnement du service gsaSW_Serveur =ParametreLit(cParam_CloudServeur) gsaSW_Port =ParametreLit(cParam_CloudPortData) gsaSW_NomBase =ParametreLit(cParam_CloudNomBase,cDefaut_NomBaseTrans) gsaSW_Cle =ParametreLit(cParam_CloudCle)//A crypter //Adresse du serveur de WebService gsaAdresseHTTP_WS =ParametreLit(cParam_WebServiceClient) ParametreEcrit(cParam_ServiceCommVersion,ExeInfo(exeVersion)) // //Le répertoire de log sera dans par défaut // gsuRepLog =ParametreLit("REP_LOG",gsRepData+"Log\") // fRepCrée(gsuRepLog) // // InitialiseFichierLog() //Purge la table MobLog PurgeTrace() //Connexion à la base HFSQL WEB gcnxSrvWEB..Provider =hAccèsHFClientServeur gcnxSrvWEB..Serveur =gsaSW_Serveur +":"+gsaSW_Port //Même compte et pass que dans la base BO gcnxSrvWEB..Utilisateur =cUserServiceMobile gcnxSrvWEB..MotDePasse ="K9GI6esVFhD1YT" gcnxSrvWEB..BaseDeDonnées =gsaSW_NomBase gcnxSrvWEB..Cryptage =hCryptageNon OuvreConnexionTOMOB() ParamCLOUD_Ecrit(cParam_FichierLog,UnicodeVersAnsi(suFicLog)) ParamCLOUD_Ecrit(cParam_ServiceCommVersion,ExeInfo(exeVersion)) ParamCLOUD_Ecrit(cParam_ServiceInit,DateHeureSys) WS_COM_MOBILE..Adresse=gsaAdresseHTTP_WS si WS_COM_MOBILE.Tesla()="OUI" alors TraceLog("Webservice Actif") sinon TraceLog("Webservice Inactif : " + gsaAdresseHTTP_WS,cTrace_Exception) fin //--------------------------------------------------------------------------- 12/08/2026 Omika_S_Comm_DEV 196 Partie 3 › Collection de procédures › LIB_Service › Code ChargeParametresMetiers() InitialisationParametres() gbInitialisationRéussie = Vrai renvoyer Vrai faire gbInitialisationRéussie = Faux TraceLog("Exception durant l'initialisation du service." + RC + ExceptionInfo(errComplet), cTrace_Exception) renvoyer Faux fin //fRepCrée(gsuRepLog) Procédure globale InitSurveillance // Résumé : // Syntaxe : //[ = ] InitSurveillance () // // Paramètres : // Aucun // Valeur de retour : // booléen : // Aucune // // Exemple : // Indiquez ici un exemple d'utilisation. // procédure InitSurveillance() SectionCritiqueDébut("InitSurveillance") //Pour ne pas avoir deux threads dans cette fonction bOk est un booléen =Faux quand exception dans si pas HLitPremier(gsdPARAM) alors si HOuvreConnexion(gcnxSrvWEB) alors gbConnexionCloudActive=Vrai DemarreSurveillanceMessages() bOk=Vrai sinon TraceLog("Erreur de connexion, Impossible d'initier la surveillance des messages.", cTrace_Exception) fin sinon DemarreSurveillanceMessages() bOk=Vrai fin faire TraceLog("InitSurveillance : Exception " + ExceptionInfo(errComplet),cTrace_Exception) fin SectionCritiqueFin("InitSurveillance") renvoyer bOk Procédure globale LanceTachesDeTraitementDocRecus procédure LanceTachesDeTraitementDocRecus() SectionCritiqueDébut("LANCETHREAD") si ThreadEtat("TRAITEDOC")=threadInexistant alors 12/08/2026 Omika_S_Comm_DEV 197 Partie 3 › Collection de procédures › LIB_Service › Code ThreadExécute("TRAITEDOC",threadCopieComplèteContexteHFSQL,TH_TraiteDocRecu) sinon ThreadEnvoieSignal("TRAITEDOC") fin SectionCritiqueFin("LANCETHREAD") Procédure globale MarqueDataTraitée procédure MarqueDataTraitée(nIdMobReception est un entier sur 8 octets) si HLitRecherchePremier(gsdMobReception,MR_PKID,nIdMobReception) alors gsdMobReception.MR_Fait=Vrai HModifie(gsdMobReception) fin Procédure globale MessageExterne procédure MessageExterne(bufJSON est un Buffer, sd est une Source de Données) TraceLog("cCMD_MsgExtEcrit",cTrace_Debug) stMSG est un ST_MsgExterneMail Désérialise(stMSG,bufJSON,psdJSON) si pas ErreurDétectée alors si pas HLitRecherchePremier(gsdMessageExterne,GUID,stMSG.saGUID) alors HRAZ(gsdMessageExterne) gsdMessageExterne.GUID = stMSG.saGUID fin | gsdMessageExterne.ME_IDIntervention | = stMSG.nIdInter | | | ------------------------------------- | ----------------- | --- | | gsdMessageExterne.ME_AdrExp | = stMSG.saAdrExp | | | gsdMessageExterne.ME_AdrDestinataires | = stMSG.saDest | | | gsdMessageExterne.ME_AdrCC | = stMSG.saDestCC | | | gsdMessageExterne.ME_AdrCCI | = stMSG.saDestCCI | | | gsdMessageExterne.ME_Objet | = stMSG.saSujet | | | gsdMessageExterne.ME_Message | = stMSG.bufCorp | | | gsdMessageExterne.ME_IDDocPJ | = stMSG.saPJ | | | gsdMessageExterne.ME_Envoyer | = stMSG.bEnvoye | | si pas stMSG.bEnvoye alors gsdMessageExterne.ME_Brouillon = Vrai fin si SansEspace(stMSG.saPJ) <> "" alors gsdMessageExterne.ME_PJ = Vrai fin | gsdMessageExterne.CreationDate | = DateHeureSys() | | | ------------------------------- | ---------------- | --- | | gsdMessageExterne.CreationUser | = stMSG.nIdUser | | | gsdMessageExterne.ME_EnvoyerMob | = Vrai | | si pas HEnregistre(gsdMessageExterne) alors TraceLog("cCMD_MsgExtEcrit Erreur "+RC+HErreurInfo(hErrComplet),cTrace_Debug) sinon TraceLog("cCMD_MsgExtEcrit ID "+gsdMessageExterne.ME_PKID) fin fin MarqueDataTraitée(sd.MR_PKID) Procédure globale NettoieNomRepertoire procédure NettoieNomRepertoire(sTexte est une chaîne) : chaîne | 12/08/2026 | Omika_S_Comm_DEV | 198 | | ---------- | ---------------- | --- | Partie 3 › Collection de procédures › LIB_Service › Code // Liste des caractères interdits sInterdits est une chaîne = "\/:*?""<>|[]!" sResultat est une chaîne = sTexte i est un entier // 1. Remplacement des caractères interdits par un espace pour i = 1 à Taille(sInterdits) sResultat = Remplace(sResultat, Milieu(sInterdits, i, 1), " ") fin // 2. Supprimer les points en fin de chaîne (interdit Windows) tantque Droite(sResultat, 1) = "." sResultat = Gauche(sResultat, Taille(sResultat) - 1) fin // 3. Supprimer espaces multiples tantque Position(sResultat, " ") > 0 sResultat = Remplace(sResultat, " ", " ") fin // 4. Espace vide sResultat = SansEspace(sResultat,sscExtérieur) renvoyer sResultat Procédure globale NormalizeSouple procédure NormalizeSouple(s est une chaîne) : chaîne s1 est une chaîne = Minuscule(s) s1 = SansAccent(s1) // Uniformiser séparateurs s1 = Remplace(s1, "-", " ") s1 = Remplace(s1, "_", " ") s1 = Remplace(s1, "\", " ") s1 = Remplace(s1, "/", " ") s1 = Remplace(s1, ".", " ") s1 = Remplace(s1, ",", " ") s1 = Remplace(s1, "(", " ") s1 = Remplace(s1, ")", " ") // Supprimer tout ce qui n'est pas lettre/chiffre/espace s2 est une chaîne = "" pour i = 1 _à_ Taille(s1) c est une chaîne = s1[[i]] si (c >= "a" et c <= "z") ou (c >= "0" et c <= "9") ou c = " " alors s2 += c fin fin // Nettoyer espaces multiples tantque Contient(s2, " ") s2 = Remplace(s2, " ", " ") fin renvoyer SansEspace(s2) Procédure globale NoteEcrit 12/08/2026 Omika_S_Comm_DEV 199 Partie 3 › Collection de procédures › LIB_Service › Code procédure NoteEcrit(bufJSON est un Buffer, sd est une Source de Données) tb est un tableau de ST_MSGINTERNE Désérialise(tb,bufJSON,psdJSON) si pas ErreurDétectée alors pour tout st de tb si pas HLitRecherchePremier(gsdMessageInterne,GUID,st.sAGuid) alors HRAZ(gsdMessageInterne) fin gsdMessageInterne.MI_Message = st.sANote gsdMessageInterne.MI_IDIntervention = st.nIdInter gsdMessageInterne.CreationDate = st.sADate gsdMessageInterne.CreationUser = st.nIdUser gsdMessageInterne.GUID = st.sAGuid HEnregistre(gsdMessageInterne) fin MarqueDataTraitée(sd.MR_PKID) fin Procédure globale OuvreConnexionBase procédure OuvreConnexionBase() saPass est une chaîne ANSI = BufferVersHexa(HashChaîne(HA_MD5_128,gcnxAPart..BaseDeDonnées), SansRegroupement) si pas HOuvreConnexion(gcnxAPart) alors TraceLog( "Le service de communication de l'application, n'a pas pu ouvrir la connexion au serveur HFSQL : " + gsaBO_Serveur + ":"+gsaBO_Port + RC + "La communication avec les mobiles n'est pas active.", cTrace_Exception) gbConnexionOuverte=Faux renvoyer Faux sinon gbConnexionOuverte=Vrai gbDeclarationExterneFaite = Faux fin si pas gbDeclarationExterneFaite alors //Déclaration Externe de tous les fichiers du répliqua afin de pouvoir faire des requêtes les utilisant. sPassSysteme est une chaîne ANSI = BufferVersHexa(HashChaîne(HA_MD5_128,Mdp3 + gcnxAPart.. BaseDeDonnées),SansRegroupement) saLst est une chaîne ANSI = HListeFichier(gcnxAPart) pour toute chaîne saFic de saLst séparée par RC WL.Trace(saFic) si ChaîneOccurrence(saFic,"\")=0 alors si saFic="ParametreSysteme.fic" alors si pas HPasse(ExtraitChaîne(saFic,1,"."),sPassSysteme) alors WL.Trace(HErreurInfo(hErrComplet)) fin sinon si pas HPasse(ExtraitChaîne(saFic,1,"."),saPass) alors WL.Trace(HErreurInfo(hErrComplet)) fin fin 12/08/2026 Omika_S_Comm_DEV 200 Partie 3 › Collection de procédures › LIB_Service › Code selon saFic cas "ParametreSysteme.fic" : si pas HPasse( gsdParametreSystem , sPassSysteme ) ou pas HPasse( ExtraitChaîne(saFic,1,"."), sPassSysteme ) alors Trace(HErreurInfo(hErrComplet)) cas "ParametreMetierEntete.fic" : Trace("HPasse ParametreMetierEntete ignoré") //SI PAS HPasse( gsdParametreMetierEntete , sPassSysteme ) OU PAS HPasse( ExtraitChaîne(saFic,1,"."), sPassSysteme ) ALORS Trace(HErreurInfo(hErrComplet)) cas "ParametreApplication.fic" : si pas HPasse( gsdParametreApplication , saPass ) ou pas HPasse( ExtraitChaîne(saFic,1,"."), saPass ) alors Trace(HErreurInfo( hErrComplet)) cas "ParametreMetier.fic" : si pas HPasse( gsdParametreMetier , saPass ) ou pas HPasse( ExtraitChaîne(saFic,1,"."), saPass ) alors Trace(HErreurInfo( hErrComplet)) cas "MobReception.fic" : si pas HPasse( gsdMobReception , saPass ) ou pas HPasse( ExtraitChaîne(saFic,1,"."), saPass ) alors Trace(HErreurInfo( hErrComplet)) cas "Document.fic" : si pas HPasse( gsdDocument , saPass ) ou pas HPasse( ExtraitChaîne(saFic,1,"."), saPass ) alors Trace(HErreurInfo( hErrComplet)) cas "DocumentNote.fic" : si pas HPasse( gsdDocumentNote , saPass ) ou pas HPasse( ExtraitChaîne(saFic,1,"."), saPass ) alors Trace(HErreurInfo( hErrComplet)) cas "Collaborateur.fic" : si pas HPasse( gsdCollaborateur , saPass ) ou pas HPasse( ExtraitChaîne(saFic,1,"."), saPass ) alors Trace(HErreurInfo( hErrComplet)) cas "SuiviDesTemps.fic" : si pas HPasse( gsdSuiviDesTemps , saPass ) ou pas HPasse( ExtraitChaîne(saFic,1,"."), saPass ) alors Trace(HErreurInfo( hErrComplet)) cas "CompteRendu.fic" : si pas HPasse( gsdCompteRendu , saPass ) ou pas HPasse( ExtraitChaîne(saFic,1,"."), saPass ) alors Trace(HErreurInfo( hErrComplet)) cas "MessageInterne.fic" : si pas HPasse( gsdMessageInterne , saPass ) ou pas HPasse( ExtraitChaîne(saFic,1,"."), saPass ) alors Trace(HErreurInfo( hErrComplet)) cas "MessageExterne.fic" : si pas HPasse( gsdMessageExterne , saPass ) ou pas HPasse( ExtraitChaîne(saFic,1,"."), saPass ) alors Trace(HErreurInfo( hErrComplet)) cas "RDV_Collaborateur.fic" : si pas HPasse( gsdPlanning_RDV , saPass ) ou pas HPasse( ExtraitChaîne(saFic,1,"."), saPass ) alors Trace(HErreurInfo( hErrComplet)) cas "RDV_Contact.fic" : si pas HPasse( gsdPlanning_RDV_Pers , saPass ) ou pas HPasse( ExtraitChaîne(saFic,1,"."), saPass ) alors Trace(HErreurInfo( hErrComplet)) cas "RDV_Planning.fic" : si pas HPasse( gsdPlanning , saPass ) ou pas HPasse( ExtraitChaîne(saFic,1,"."), saPass ) alors Trace(HErreurInfo( hErrComplet)) cas "Compteur.fic" : si pas HPasse( gsdCompteur , saPass ) ou pas HPasse( ExtraitChaîne(saFic,1,"."), saPass ) alors Trace(HErreurInfo( hErrComplet)) autre cas : si pas HPasse( ExtraitChaîne(saFic,1,"."), saPass ) alors Trace(HErreurInfo(hErrComplet)) fin selon saFic cas "ParametreSysteme.fic" : si pas HAnnuleDéclaration(gsdParametreSystem ) ou pas HAnnuleDéclaration(saFic ) alors Trace(HErreurInfo (hErrComplet)) cas "ParametreMetierEntete.fic" : Trace( "HAnnuleDéclaration ParametreMetierEntete ignoré") //SI PAS HAnnuleDéclaration(gsdParametreMetierEntete ) OU PAS HAnnuleDéclaration(saFic ) ALORS Trace(HErreurInfo(hErrComplet)) cas "ParametreApplication.fic" : si pas HAnnuleDéclaration(gsdParametreApplication ) ou pas HAnnuleDéclaration(saFic ) alors Trace(HErreurInfo (hErrComplet)) 12/08/2026 Omika_S_Comm_DEV 201 Partie 3 › Collection de procédures › LIB_Service › Code cas "ParametreMetier.fic" : si pas HAnnuleDéclaration(gsdParametreMetier ) ou pas HAnnuleDéclaration(saFic ) alors Trace(HErreurInfo (hErrComplet)) cas "MobReception.fic" : si pas HAnnuleDéclaration(gsdMobReception ) ou pas HAnnuleDéclaration(saFic ) alors Trace(HErreurInfo (hErrComplet)) cas "Document.fic" : si pas HAnnuleDéclaration(gsdDocument ) ou pas HAnnuleDéclaration(saFic ) alors Trace(HErreurInfo (hErrComplet)) cas "DocumentNote.fic" : si pas HAnnuleDéclaration(gsdDocumentNote ) ou pas HAnnuleDéclaration(saFic ) alors Trace(HErreurInfo (hErrComplet)) cas "Collaborateur.fic" : si pas HAnnuleDéclaration(gsdCollaborateur ) ou pas HAnnuleDéclaration(saFic ) alors Trace(HErreurInfo (hErrComplet)) cas "SuiviDesTemps.fic" : si pas HAnnuleDéclaration(gsdSuiviDesTemps ) ou pas HAnnuleDéclaration(saFic ) alors Trace( HErreurInfo(hErrComplet)) cas "CompteRendu.fic" : si pas HAnnuleDéclaration(gsdCompteRendu ) ou pas HAnnuleDéclaration(saFic ) alors Trace(HErreurInfo (hErrComplet)) cas "MessageInterne.fic" : si pas HAnnuleDéclaration(gsdMessageInterne ) ou pas HAnnuleDéclaration(saFic ) alors Trace(HErreurInfo (hErrComplet)) cas "MessageExterne.fic" : si pas HAnnuleDéclaration(gsdMessageExterne ) ou pas HAnnuleDéclaration(saFic ) alors Trace(HErreurInfo (hErrComplet)) cas "RDV_Collaborateur.fic" : si pas HAnnuleDéclaration(gsdPlanning_RDV ) ou pas HAnnuleDéclaration(saFic ) alors Trace(HErreurInfo (hErrComplet)) cas "RDV_Contact.fic" : si pas HAnnuleDéclaration(gsdPlanning_RDV_Pers ) ou pas HAnnuleDéclaration(saFic ) alors Trace(HErreurInfo (hErrComplet)) cas "RDV_Planning.fic" : si pas HAnnuleDéclaration(gsdPlanning ) ou pas HAnnuleDéclaration(saFic ) alors Trace(HErreurInfo (hErrComplet)) cas "Compteur.fic" : si pas HAnnuleDéclaration(gsdCompteur ) ou pas HAnnuleDéclaration(saFic ) alors Trace(HErreurInfo (hErrComplet)) autre cas : si pas HAnnuleDéclaration(saFic ) alors Trace(HErreurInfo(hErrComplet)) fin selon saFic cas "ParametreSysteme.fic" : si (pas HDéclareExterne("ParametreSysteme.fic" ,gsdParametreSystem ,gcnxAPart) ou pas HDéclareExterne(saFic , ExtraitChaîne(saFic,1,".") ,gcnxAPart)) _et_ HErreur() <> 702017 alors Trace( HErreurInfo(hErrComplet)) cas "ParametreMetierEntete.fic" : Trace( "HDéclareExterne ParametreMetierEntete ignoré") cas "ParametreApplication.fic" : si (pas HDéclareExterne( "ParametreApplication.fic" ,gsdParametreApplication ,gcnxAPart) ou pas HDéclareExterne(saFic,ExtraitChaîne(saFic,1,".") ,gcnxAPart)) _et_ HErreur() <> 702017 alors Trace(HErreurInfo(hErrComplet)) cas "ParametreMetier.fic" : si (pas HDéclareExterne("ParametreMetier.fic" ,gsdParametreMetier ,gcnxAPart) ou pas HDéclareExterne(saFic , ExtraitChaîne(saFic,1,".") ,gcnxAPart)) _et_ HErreur() <> 702017 alors Trace( HErreurInfo(hErrComplet)) cas "MobReception.fic" : si (pas HDéclareExterne("MobReception.fic" ,gsdMobReception ,gcnxAPart) ou pas HDéclareExterne(saFic , ExtraitChaîne(saFic,1,".") ,gcnxAPart)) _et_ HErreur() <> 702017 alors Trace( HErreurInfo(hErrComplet)) cas "Document.fic" : si (pas HDéclareExterne("Document.fic" ,gsdDocument ,gcnxAPart) ou pas HDéclareExterne(saFic , ExtraitChaîne(saFic,1,".") ,gcnxAPart)) _et_ HErreur() <> 702017 alors Trace( HErreurInfo(hErrComplet)) cas "DocumentNote.fic" : si (pas HDéclareExterne("DocumentNote.fic" 12/08/2026 Omika_S_Comm_DEV 202 Partie 3 › Collection de procédures › LIB_Service › Code ,gsdDocumentNote ,gcnxAPart) ou pas HDéclareExterne(saFic ,ExtraitChaîne(saFic,1,".") ,gcnxAPart)) _et_ HErreur() <> 702017 alors Trace(HErreurInfo(hErrComplet)) cas "Collaborateur.fic" : si (pas HDéclareExterne("Collaborateur.fic" ,gsdCollaborateur ,gcnxAPart) ou pas HDéclareExterne(saFic , ExtraitChaîne(saFic,1,".") ,gcnxAPart)) _et_ HErreur() <> 702017 alors Trace( HErreurInfo(hErrComplet)) cas "SuiviDesTemps.fic" : si (pas HDéclareExterne("SuiviDesTemps.fic" ,gsdSuiviDesTemps ,gcnxAPart) ou pas HDéclareExterne(saFic , ExtraitChaîne(saFic,1,".") ,gcnxAPart)) _et_ HErreur() <> 702017 alors Trace( HErreurInfo(hErrComplet)) cas "CompteRendu.fic" : si (pas HDéclareExterne("CompteRendu.fic" ,gsdCompteRendu ,gcnxAPart) ou pas HDéclareExterne(saFic , ExtraitChaîne(saFic,1,".") ,gcnxAPart)) _et_ HErreur() <> 702017 alors Trace( HErreurInfo(hErrComplet)) cas "MessageInterne.fic" : si (pas HDéclareExterne("MessageInterne.fic" ,gsdMessageInterne ,gcnxAPart) ou pas HDéclareExterne(saFic , ExtraitChaîne(saFic,1,".") ,gcnxAPart)) _et_ HErreur() <> 702017 alors Trace( HErreurInfo(hErrComplet)) cas "MessageExterne.fic" : si (pas HDéclareExterne("MessageExterne.fic" ,gsdMessageExterne ,gcnxAPart) ou pas HDéclareExterne(saFic , ExtraitChaîne(saFic,1,".") ,gcnxAPart)) _et_ HErreur() <> 702017 alors Trace( HErreurInfo(hErrComplet)) cas "RDV_Collaborateur.fic" : si (pas HDéclareExterne("RDV_Collaborateur.fic" ,gsdPlanning_RDV ,gcnxAPart) ou pas HDéclareExterne(saFic , ExtraitChaîne(saFic,1,".") ,gcnxAPart)) _et_ HErreur() <> 702017 alors Trace( HErreurInfo(hErrComplet)) cas "RDV_Contact.fic" : si (pas HDéclareExterne("RDV_Contact.fic" ,gsdPlanning_RDV_Pers ,gcnxAPart) ou pas HDéclareExterne(saFic , ExtraitChaîne(saFic,1,".") ,gcnxAPart)) _et_ HErreur() <> 702017 alors Trace( HErreurInfo(hErrComplet)) cas "RDV_Planning.fic" : si (pas HDéclareExterne("RDV_Planning.fic" ,gsdPlanning ,gcnxAPart) ou pas HDéclareExterne(saFic , ExtraitChaîne(saFic,1,".") ,gcnxAPart)) _et_ HErreur() <> 702017 alors Trace( HErreurInfo(hErrComplet)) cas "Compteur.fic" : si (pas HDéclareExterne("Compteur.fic" ,gsdCompteur ,gcnxAPart) ou pas HDéclareExterne(saFic , ExtraitChaîne(saFic,1,".") ,gcnxAPart)) _et_ HErreur() <> 702017 alors Trace( HErreurInfo(hErrComplet)) autre cas : si pas HDéclareExterne(saFic ,ExtraitChaîne(saFic,1,".") ,gcnxAPart) _et_ HErreur() <> 702017 alors Trace( HErreurInfo(hErrComplet)) fin fin fin gbDeclarationExterneFaite=Vrai //Ainsi on ne le refera pas. fin renvoyer Vrai Procédure globale OuvreConnexionTOMOB procédure OuvreConnexionTOMOB() HPass(gsdTOSRV,gsaSW_Cle) HPasse(gsdTOMOB,gsaSW_Cle) HPasse(gsdPARAM,gsaSW_Cle) HAnnuleDéclaration(gsdTOMOB) HAnnuleDéclaration(gsdTOSRV) HAnnuleDéclaration(gsdPARAM) HDéclareExterne("TOSRV.fic",gsdTOSRV,gcnxSrvWEB) HDéclareExterne("TOMOB.fic",gsdTOMOB,gcnxSrvWEB) HDéclareExterne("PARAMETRES.fic",gsdPARAM,gcnxSrvWEB) 12/08/2026 Omika_S_Comm_DEV 203 Partie 3 › Collection de procédures › LIB_Service › Code si pas HOuvreConnexion(gcnxSrvWEB) alors TraceLog("Erreur de connexion à la base WEB :" + HErreurInfo(hErrComplet),cTrace_Exception) renvoyer Faux sinon TraceLog("Connexion réussie à la base Cloud") renvoyer Vrai fin Procédure globale ParamCLOUD_Ecrit procédure ParamCLOUD_Ecrit(local saCle est une chaîne ANSI,local saValeurTexte est une chaîne ANSI) quand exception dans si pas HLitRecherchePremier(gsdPARAM,"CLE",saCle) alors HRAZ(gsdPARAM) fin gsdPARAM.CLE=saCle gsdPARAM.VALTEXT=saValeurTexte HEnregistre(gsdPARAM) renvoyer Vrai faire TraceLog("ParamCLOUD_Ecrit : [" + saCle +"]=["+ saValeurTexte + "] " + RC + ExceptionInfo( errComplet),cTrace_Exception) renvoyer Faux fin Procédure globale ParametreEcrit // procédure ParametreEcrit(local saNomParametre est chaîne ANSI,local saValeur est une chaîne ANSI , bCrypte est un booléen=Faux,sADescription est une chaîne ANSI="") quand exception dans si pas HLitRecherchePremier(gsdParametreApplication,PAP_Code,saNomParametre) alors HRAZ(gsdParametreApplication) gsdParametreApplication.PAP_Code=saNomParametre gsdParametreApplication.PAP_Description = sADescription fin si bCrypte alors bufValeur est un Buffer = saValeur gsdParametreApplication.PAP_Valeur=CrypteStandard(bufValeur, HashChaîne(HA_MD5_128,Mdp1+Mdp2+Mdp3), crypteAES128) sinon gsdParametreApplication.PAP_Valeur=saValeur fin si pas HEnregistre(gsdParametreApplication) alors saErreur est une chaîne ANSI = HErreurInfo(hErrComplet) TraceLog("Écriture paramètre a échoué : " + saErreur, cTrace_Exception) renvoyer saErreur sinon renvoyer "OK" fin faire TraceLog("Écriture paramètre a échoué : " + ExceptionInfo(errComplet), cTrace_Exception) renvoyer ExceptionInfo(errComplet) fin Procédure globale ParametreLit 12/08/2026 Omika_S_Comm_DEV 204 Partie 3 › Collection de procédures › LIB_Service › Code procédure ParametreLit(local saNomParametre est chaîne,local saParDefaut est chaîne="",bCrypte est un booléen=Faux) si pas HLitRecherchePremier(gsdParametreApplication,PAP_Code,saNomParametre) alors si saParDefaut<>"" alors HRAZ(gsdParametreApplication) gsdParametreApplication.PAP_Code=saNomParametre si bCrypte alors // bufCle est un Buffer = HashChaîne(HA_MD5_128,mdp1+mdp2+mdp3) bufTmp est un Buffer = saParDefaut gsdParametreApplication.PAP_Valeur=CrypteStandard( bufTmp, HashChaîne(HA_MD5_128,Mdp1+Mdp2 +Mdp3), crypteAES128) sinon gsdParametreApplication.PAP_Valeur=saParDefaut fin HAjoute(gsdParametreApplication) fin renvoyer saParDefaut sinon si bCrypte alors bufCrypte est un Buffer =gsdParametreApplication.PAP_Valeur si bufCrypte="" alors renvoyer "" //bufCle est un Buffer = HashChaîne(HA_MD5_128, mdp1+mdp2+mdp3) renvoyer DécrypteStandard(bufCrypte, HashChaîne(HA_MD5_128, Mdp1+Mdp2+Mdp3), crypteAES128) sinon renvoyer gsdParametreApplication.PAP_Valeur fin fin Procédure globale ParametreMetierEcrit procédure ParametreMetierEcrit(stParam est un ST_PARAMETRE,sMsgErreur est une chaîne) sMsgErreur="" quand exception dans si pas HLitRecherchePremier(gsdParametreMetier,PA_CodePA_Valeur,[stParam.sCle,stParam.sValeur]) alors HRAZ(gsdParametreMetier) fin gsdParametreMetier.PA_Code = stParam.sCle gsdParametreMetier.PA_Valeur = stParam.sValeur gsdParametreMetier.PA_Actif = stParam.bActif gsdParametreMetier.PA_CleLiaison = stParam.sCleLiaison gsdParametreMetier.PA_Invisible = stParam.bInvisible gsdParametreMetier.PA_Libelle = stParam.sDescript gsdParametreMetier.PA_LibelleCourt = stParam.sLibCourt gsdParametreMetier.PA_Ordre = stParam.nOrdre gsdParametreMetier.PA_Parametre = stParam.sParametre gsdParametreMetier.PA_Systeme = stParam.bSysteme HEnregistre(gsdParametreMetier) renvoyer Vrai faire sMsgErreur= ExceptionInfo(errComplet) renvoyer Faux fin Procédure globale ParametreMetierLit 12/08/2026 Omika_S_Comm_DEV 205 Partie 3 › Collection de procédures › LIB_Service › Code procédure ParametreMetierLit(stParam est un ST_PARAMETRE,sMsgErreur est une chaîne) sMsgErreur="" quand exception dans si HLitRecherchePremier(gsdParametreMetier,PA_CodePA_Valeur,[stParam.sCle,stParam.sValeur]) alors stParam.nPKID = gsdParametreMetier.PA_PKID stParam.sCle = gsdParametreMetier.PA_Code stParam.sValeur = gsdParametreMetier.PA_Valeur stParam.bActif = gsdParametreMetier.PA_Actif stParam.sCleLiaison = gsdParametreMetier.PA_CleLiaison stParam.bInvisible = gsdParametreMetier.PA_Invisible stParam.sDescript = gsdParametreMetier.PA_Libelle stParam.sLibCourt = gsdParametreMetier.PA_LibelleCourt stParam.nOrdre = gsdParametreMetier.PA_Ordre stParam.sParametre = gsdParametreMetier.PA_Parametre stParam.bSysteme = gsdParametreMetier.PA_Systeme stParam.sCleParam = gsdParametreMetier.PA_CLE stParam.sCategorie = gsdParametreMetier.PA_Categorie renvoyer Vrai sinon sMsgErreur="Paramètre inconnu" renvoyer Faux fin faire sMsgErreur = ExceptionInfo(errComplet) TraceLog("Erreur lors de la lecture du paramètre métier " + RC + sMsgErreur,cTrace_Exception) renvoyer Faux fin Procédure globale ParametreMetierSupprime procédure ParametreMetierSupprime(stParam est un ST_PARAMETRE,sMsgErreur est une chaîne) sMsgErreur = "" quand exception dans si pas HLitRecherchePremier(gsdParametreMetier,PA_CodePA_Valeur,[stParam.sCle,stParam.sValeur]) alors renvoyer Vrai sinon renvoyer HSupprime(gsdParametreMetier) fin faire sMsgErreur = ExceptionInfo(errComplet) TraceLog("Erreur lors de la suppression du paramètre métier" + RC + sMsgErreur,cTrace_Exception) renvoyer Faux fin Procédure globale ParametreSupprime procédure ParametreSupprime(local saNomParametre est chaîne) si HLitRecherchePremier(gsdParametreApplication,PAP_Code,saNomParametre) alors si pas HSupprime(gsdParametreApplication) alors renvoyer HErreurInfo(hErrComplet) fin fin renvoyer "" Procédure globale ParametreSystemEcrit 12/08/2026 Omika_S_Comm_DEV 206 Partie 3 › Collection de procédures › LIB_Service › Code procédure ParametreSystemEcrit(local saNomParametre est chaîne ANSI,local saValeur est une chaîne ANSI ,bCrypte est un booléen=Faux,sADescription est une chaîne ANSI="") quand exception dans si pas HLitRecherchePremier(gsdParametreSystem,PAS_Code,saNomParametre) alors HRAZ(gsdParametreSystem) gsdParametreSystem.PAS_Code=saNomParametre gsdParametreSystem.PAS_Description = sADescription fin si bCrypte alors bufValeur est un Buffer = saValeur gsdParametreSystem.PAS_Valeur=CrypteStandard(bufValeur, HashChaîne(HA_MD5_128,Mdp1+Mdp2+Mdp3), crypteAES128) sinon gsdParametreSystem.PAS_Valeur=saValeur fin HEnregistre(gsdParametreSystem) renvoyer "OK" faire renvoyer ExceptionInfo(errComplet) fin Procédure globale ParametreSystemLit procédure ParametreSystemLit(local saNomParametre est chaîne,local saParDefaut est chaîne="",bCrypte est un booléen=Faux) si pas HLitRecherchePremier(gsdParametreSystem,PAS_Code,saNomParametre) alors si saParDefaut<>"" alors HRAZ(gsdParametreSystem) gsdParametreSystem.PAS_Code=saNomParametre si bCrypte alors // bufCle est un Buffer = HashChaîne(HA_MD5_128,mdp1+mdp2+mdp3) bufTmp est un Buffer = saParDefaut gsdParametreSystem.PAS_Valeur=CrypteStandard( bufTmp, HashChaîne(HA_MD5_128,Mdp1+Mdp2+Mdp3 ), crypteAES128) sinon gsdParametreSystem.PAS_Valeur=saParDefaut fin HAjoute(gsdParametreSystem) fin renvoyer saParDefaut sinon si bCrypte alors bufCrypte est un Buffer =gsdParametreSystem.PAS_Valeur si bufCrypte="" alors renvoyer "" //bufCle est un Buffer = HashChaîne(HA_MD5_128, mdp1+mdp2+mdp3) renvoyer DécrypteStandard(bufCrypte, HashChaîne(HA_MD5_128, Mdp1+Mdp2+Mdp3), crypteAES128) sinon renvoyer gsdParametreSystem.PAS_Valeur fin fin Procédure globale ParametreSystemSupprime procédure ParametreSystemSupprime(local saNomParametre est chaîne) 12/08/2026 Omika_S_Comm_DEV 207 Partie 3 › Collection de procédures › LIB_Service › Code si HLitRecherchePremier(gsdParametreSystem,PAS_Code,saNomParametre) alors si pas HSupprime(gsdParametreSystem) alors renvoyer HErreurInfo(hErrComplet) fin fin renvoyer "" Procédure globale PurgeTrace procédure PurgeTrace() dDteLimite est une DateHeure = DateHeureSys() dDteLimite..jour -=10 HExécuteRequêteSQL("PURGE",LIB_Service.gcnxAPart,"DELETE FROM MobLog WHERE MobLog.ML_DateCreat< '" + dDteLimite + "'") Procédure globale RdvEcrit procédure RdvEcrit(bufJSON est un Buffer, sd est une Source de Données) TraceLog("cmd "+ sd.mr_cmd,cTrace_Debug) stRDV est un ST_RDV Désérialise(stRDV,bufJSON,psdJSON) TraceLog("dé sérialisation", cTrace_Info) si pas ErreurDétectée alors si pas HLitRecherchePremier(gsdPlanning_RDV,RVC_PKID,stRDV.nPKID) alors HRAZ(gsdPlanning_RDV) TraceLog("j'ai trouve le rdv", cTrace_Info) fin gsdPlanning_RDV.GUID = stRDV.saGUID gsdPlanning_RDV.RVC_CleStatut = DonneCleParamAvecID(stRDV.nIDStatut) gsdPlanning_RDV.RVC_DateDeb = stRDV.saDateDebut gsdPlanning_RDV.RVC_DateFin = stRDV.saDateFin gsdPlanning_RDV.RVC_Superposable = stRDV.bSuperposable HEnregistre(gsdPlanning_RDV) TraceLog("le rdv a été enregistre", cTrace_Info) si gsdPlanning_RDV.RVC_GUID_RDV <> "" alors si HLitRecherchePremier(gsdPlanning,GUID,gsdPlanning_RDV.RVC_GUID_RDV) alors gsdPlanning.RV_CleStatut = DonneCleParamAvecID(stRDV.nIDStatut) HEnregistre(gsdPlanning) fin saReqModif est une chaîne ANSI = [ UPDATE RDV_Collaborateur SET Archive = 1 WHERE RVC_GUID_RDV = '{p_Guid}' AND RVC_PKID <> {p_Id} ] saReqModif = Remplace(saReqModif,"{p_Guid}",gsdPlanning_RDV.RVC_GUID_RDV) saReqModif = Remplace(saReqModif,"{p_Id}",stRDV.nPKID) rq est une Source de Données si pas HExécuteRequêteSQL(rq,gcnxAPart,hRequêteDéfaut,saReqModif) alors TraceLog("Erreur :" + HErreurInfo(errComplet),cTrace_Exception) fin fin sinon TraceLog("Erreur :" + ErreurInfo(errComplet),cTrace_Exception) 12/08/2026 Omika_S_Comm_DEV 208 Partie 3 › Collection de procédures › LIB_Service › Code fin MarqueDataTraitée(sd.MR_PKID) Procédure globale RechercheCheminUnDoc procédure RechercheCheminUnDoc(saCheminComp est une chaîne ANSI, saRepDocs est une chaîne ANSI, saFichier est une chaîne ANSI) NomFichierEntier est une chaîne ANSI = ComplèteRep(saRepDocs)+ComplèteRep(saCheminComp)+saFichier si SansEspace(saCheminComp) <> "" alors si fFichierExiste(NomFichierEntier) alors renvoyer NomFichierEntier fin fin saRepTem est une chaîne ANSI = ComplèteRep(fRepExe())+ComplèteRep("TEMP") fRepCrée(saRepTem) | suCheminRep | est une chaîne Unicode | = saRepDocs | | | ------------------------------------------------------- | ------------------------------------------------- | ----------- | --- | | nPosRub | est un entier | | | | saUneRubrique | est une chaîne ANSI | | | | tbIds | est un tableau d'entiers sur 8 octets | | | | tbChemins | est un tableau de chaînes ANSI | | | | tbDocs | est un tableau de chaînes ANSI | | | | sOutFile est une chaîne | | | | | sScriptFile | est une chaîne | | | | i | est un entier | | | | sScript est une chaîne | | | | | sOutFile = saRepTem+"ps_out_" + DateHeureSys() + ".txt" | | | | | sScriptFile | = saRepTem+"ps_script_" + DateHeureSys() + ".ps1" | | | sScript = "$ErrorActionPreference = 'Stop'" + RC + ... "$root = '" + saRepDocs + "'" + RC + ... "$outFile = '" + sOutFile + "'" + RC + ... "$fileName = '" + saFichier + "'" + RC + ... "" + RC + ... "$paths = Get-ChildItem -LiteralPath $root -Recurse -File -Filter $fileName -ErrorAction SilentlyContinue |" + RC + ... " Select-Object -ExpandProperty FullName" + RC + ... "if ($paths) { $paths | Set-Content -LiteralPath $outFile } else { '' | Set-Content -LiteralPath $outFile }" + RC // Écrit le script sur disque si pas fSauveTexte(sScriptFile, sScript) alors TraceLog("Impossible d'écrire le script PowerShell : " + sScriptFile,cTrace_Exception) sinon // -ExecutionPolicy Bypass : permet d'ignorer les restrictions de signature // -File : indique le chemin du fichier à exécuter | sCommande | est une chaîne | = [ | | | --------- | -------------- | --- | --- | cmd.exe /c powershell.exe -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File "%1" ] sCommande = ChaîneConstruit(sCommande, sScriptFile) // Exécution si LanceAppli(sCommande,exeIconise) = Faux alors TraceLog("Impossible de lancer le script : " + ErreurInfo(),cTrace_Exception) sinon i = 0 tantque pas fFichierExiste(sOutFile) i += 1 Multitâche(100) | 12/08/2026 | | Omika_S_Comm_DEV | 209 | | ---------- | --- | ---------------- | --- | Partie 3 › Collection de procédures › LIB_Service › Code si i > 29 alors sortir fin fin si fFichierExiste(sOutFile) alors saResultat est une chaîne ANSI = fChargeTexte(sOutFile) pour tout chaîne saCh de saResultat séparée par RC si saCh <> "" _et_ fFichierExiste(saCh) alors TableauAjoute(tbDocs,saCh) fin fin sinon TraceLog("Commande exécutée, mais fichier de sortie introuvable : " + sOutFile, cTrace_Exception) fin fin fSupprime(sOutFile) fSupprime(sScriptFile) fin //Aucun document avec le mème nom trouvé si tbDocs..Occurrence <= 0 alors renvoyer "" fin si tbDocs..Occurrence > 1 alors pour tout chaîne saUnRep de saCheminComp séparée par ["\"] si Contient(saUnRep,"#") alors nPosRub = Position(saUnRep,"#")+1 saUneRubrique = nPosRub>0 ? Milieu(saUnRep,nPosRub, Taille(saUnRep)) sinon "" si Val(saUneRubrique) > 0 alors TableauAjoute(tbIds,Val(saUneRubrique)) fin fin fin fin si tbIds..Occurrence > 0 alors sOutFile = saRepTem+"ps_out_" + DateHeureSys() + ".txt" sScriptFile = saRepTem+"ps_script_" + DateHeureSys() + ".ps1" sScript = "$ErrorActionPreference = 'Stop'" + RC + ... "$root = '" + saRepDocs + "'" + RC + ... "$ids = @(" + TableauVersChaîne(tbIds, ",") + ")" + RC + ... "$outFile = '" + sOutFile + "'" + RC + ... "$candidates = @($root)" + RC + ... "foreach ($id in $ids) {" + RC + ... " $token = ""#$id""" + RC + ... " $nextCandidates = New-Object System.Collections.Generic.List[string]" + RC + ... " foreach ($cur in $candidates) {" + RC + ... " if (-not (Test-Path -LiteralPath $cur)) { continue }" + RC + ... " $matches = Get-ChildItem -LiteralPath $cur -Directory -ErrorAction SilentlyContinue |" + RC + ... " Where-Object { $_.Name -match ([regex]::Escape($token) + '(\s|$)') } |" + RC + ... " Sort-Object Name" + RC + ... " foreach ($m in $matches) { [void]$nextCandidates.Add($m.FullName) }" + RC + ... " }" + RC + ... " $candidates = $nextCandidates | Select-Object -Unique" + RC + ... " if ($candidates.Count -eq 0) { break }" + RC + ... "}" + RC + ... "" + RC + ... "$candidates | Set-Content -LiteralPath $outFile" + RC 12/08/2026 Omika_S_Comm_DEV 210 Partie 3 › Collection de procédures › LIB_Service › Code // Écrit le script sur disque si pas fSauveTexte(sScriptFile, sScript) alors Info("Impossible d'écrire le script PowerShell : " + sScriptFile) sinon // -ExecutionPolicy Bypass : permet d'ignorer les restrictions de signature // -File : indique le chemin du fichier à exécuter sCommande est une chaîne = [ cmd.exe /c powershell.exe -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File "%1" ] sCommande = ChaîneConstruit(sCommande, sScriptFile) // Exécution si LanceAppli(sCommande,exeIconise) = Faux alors TraceLog("Impossible de lancer le script : " + ErreurInfo(),cTrace_Exception) sinon i = 0 tantque pas fFichierExiste(sOutFile) i += 1 Multitâche(100) si i > 29 alors sortir fin fin si fFichierExiste(sOutFile) alors saResultat est une chaîne ANSI = fChargeTexte(sOutFile) pour tout chaîne saCh de saResultat séparée par RC si saCh <> "" _et_ fRépertoireExiste(saCh) alors TableauAjoute(tbChemins,saCh) fin fin sinon TraceLog("Commande exécutée, mais fichier de sortie introuvable : " + sOutFile, cTrace_Exception) fin fin fSupprime(sOutFile) fSupprime(sScriptFile) fin // Normalisation simple des chemins (sans trailing slash) pour i = 1 _à_ tbChemins..Occurrence tbChemins[i] = SansEspace(tbChemins[i]) si Droite(tbChemins[i], 1) = "\" alors tbChemins[i] = Gauche(tbChemins[i], Taille(tbChemins[i]) - 1) fin fin // Choisir le meilleur match : chemin candidat le plus long (plus spécifique) meilleurDoc est une chaîne ANSI = "" meilleureBase est une chaîne ANSI = "" nMeilleureLongueur est un entier = 0 pour iDoc = 1 _à_ tbDocs..Occurrence docPath est une chaîne ANSI = SansEspace(tbDocs[iDoc]) // Comparaison "case-insensitive" (serveur Windows) docPathU est une chaîne Unicode = Minuscule(docPath) pour iBase = 1 _à_ tbChemins..Occurrence basePath est une chaîne ANSI = tbChemins[iBase] basePathU est une chaîne Unicode = Minuscule(basePath) // Match si le doc est dans ce dossier (ou dans un sous-dossier) 12/08/2026 Omika_S_Comm_DEV 211 Partie 3 › Collection de procédures › LIB_Service › Code // -> docPath commence par basePath + "\" si Gauche(docPathU, Taille(basePathU) + 1) = basePathU + "\" alors // garder le plus spécifique (base la plus longue) si Taille(basePathU) > nMeilleureLongueur alors nMeilleureLongueur = Taille(basePathU) meilleurDoc = docPath meilleureBase = basePath sortir fin fin fin fin // Si on a trouvé un match, renvoyer le chemin complet du document si meilleurDoc <> "" alors renvoyer meilleurDoc fin fin meilleurScore est un entier = -1 meilleurTexte est une chaîne = "" pour i = 1 _à_ tbDocs..Occurrence sCand est une chaîne = tbDocs[i] score est un entier = ScoreSouple(saCheminComp, sCand) si score > meilleurScore alors meilleurScore = score meilleurTexte = sCand fin fin // Seuil minimal pour éviter les faux positifs si meilleurScore >= 15 alors renvoyer meilleurTexte fin renvoyer "" Procédure globale RecupereDonneesNonLu // Résumé : // Syntaxe : //[ = ] RecupereDonneesNonLu () // // Paramètres : // Aucun // Valeur de retour : // entier : // Aucune // // Exemple : // Indiquez ici un exemple d'utilisation. // procédure RecupereDonneesNonLu() nNb est un entier quand exception dans pour tout gsdTOSRV 12/08/2026 Omika_S_Comm_DEV 212 Partie 3 › Collection de procédures › LIB_Service › Code //Lecture de l'enregistrement Distant que l'on ajoute dans la table MobReception si pas HLitRecherchePremier(gsdMobReception,mr_idtosrv,gsdTOSRV.IDToSRV) alors HRAZ(gsdMobReception) gsdMobReception.MR_IDToSRV = gsdTOSRV.IDToSRV gsdMobReception.MR_JSON = gsdTOSRV.TS_JSON gsdMobReception.MR_CMD = gsdTOSRV.TS_CMD gsdMobReception.MR_Buffer = gsdTOSRV.TS_Buffer gsdMobReception.MR_NumSerie = gsdTOSRV.TS_Mobile gsdMobReception.MR_Fait = Faux gsdMobReception.MR_DateHeureRecep = DateHeureSys() HAjoute(gsdMobReception) nNb++ TraceLog("Réception :" + gsdTOSRV.TS_JSON) fin //Suppression de l'enregistrement distant si pas HSupprime(gsdTOSRV,hNumEnrEnCours) alors TraceLog("Erreur de suppression : " + HErreurInfo(hErrMessage)) fin fin //Suppression des enregistrement traités pour tout gsdMobReception avec MR_Fait=1 si HLitRecherchePremier(gsdTOSRV,IDToSRV,gsdMobReception.MR_IDToSRV) alors si HSupprime(gsdTOSRV) alors HSupprime(gsdMobReception) fin sinon HSupprime(gsdMobReception) fin fin faire TraceLog("RecupereDonneesNonLu" + RC +ExceptionInfo(errComplet),cTrace_Exception) fin renvoyer nNb Procédure globale RedemarreServiceMonitor // Résumé : // Syntaxe : //RedemarreServiceMonitor () // // Paramètres : // Aucun // Valeur de retour : // Aucune // // Exemple : // Indiquez ici un exemple d'utilisation. // procédure RedemarreServiceMonitor() quand exception dans si ServiceExiste(cServiceMonitor) alors 12/08/2026 Omika_S_Comm_DEV 213 Partie 3 › Collection de procédures › LIB_Service › Code si ServiceEtat(cServiceMonitor)=serviceEtatArrêté alors ServiceDémarre(cServiceMonitor) fin sinon // tracelog("Le service Monitor n'est pas présent.",cTrace_Debug) fin faire TraceLog("Erreur lors du redémarrage du ServiceComm"+ RC + ExceptionInfo(errComplet), cTrace_Exception) fin Procédure globale RemplaceRubriqueCheminFichier // Résumé : // Syntaxe : //[ = ] RemplaceRubriqueCheminFichier ( est entier, est tableau, est source de données, est chaîne, est chaîne, est entier sur 8 octets) // // Paramètres : // nMode (entier) : // tabRep (tableau) : // sreqsql (source de données) : // sFormatRepDoc (chaîne ANSI) : // sRepRacine (chaîne ANSI) : // nIDCategorie (entier sur 8 octets) : // Valeur de retour : // chaîne ANSI : // Aucune // // Exemple : // Indiquez ici un exemple d'utilisation. // // sRepertoireFichier : // sRepRacine (chaîne ANSI) : // sRepRacine (chaîne ANSI) : procédure RemplaceRubriqueCheminFichier(nMode est un entier,tabRep est un tableau de Rep,sreqsql est une Source de Données,sFormatRepDoc est une chaîne,sRepRacine est une chaîne,local nIDCategorie est un entier sur 8 octets)//,sRepRacine est une chaine = DonneRepertoireRacine() sNomProc est une chaîne ANSI ="RemplaceRubriqueCheminFichier" TraceLog(sNomProc + " : Mode=" + nMode + " / IDCategorie=" + nIDCategorie) sRepFichier est une chaîne //Il existe au moins un répertoire si tabRep..Occurrence>0 alors //Récupération des rubriques présent dans la source de données sListeRubEnreg est une chaîne = HListeRubrique(sreqsql) sRepTemp est une chaîne=sRepRacine+["\"] //Boucle sur l'ensemble des répertoires pour i = 1 _à_ tabRep..Occurrence //TraceLog(sNomProc + " IDCategorie=" + nIDCategorie) si nMode dans (0,9) alors sRepCherche est un chaîne sVariable est une chaîne //Le nom de la rubrique dans le nom du répertoire est bien présent dans la liste des rubriques de la source de données si Contient(tabRep[i].sNomnIDRubRep,"DC_Categorie") _et_ nIDCategorie>0 alors //TraceLog(sNomProc + " JUSTE AVANT IDCategorie=" + nIDCategorie) sVariable = sRepTemp+"*#"+SansEspace(NumériqueVersChaîne(nIDCategorie)) 12/08/2026 Omika_S_Comm_DEV 214 Partie 3 › Collection de procédures › LIB_Service › Code sinon si Contient(sListeRubEnreg,tabRep[i].sNomnIDRubRep) alors sVariable = sRepTemp+"*#"+SansEspace({sreqsql,tabRep[i].sNomnIDRubRep}) fin TraceLog(sNomProc + " : RepRecherche=" + sVariable ) sRepCherche = fRep(sVariable, frRépertoire) //TraceLog(sRepCherche<>"" ? sNomProc + " : RepRechercheTrouve=oui "+sRepCherche SINON sNomProc + " : RepRechercheTrouve=non"+sRepCherche ) si sRepCherche<>"" _et_ Contient(ExtraitChaîne(sRepCherche,1,"\",DepuisFin),ExtraitChaîne( sVariable,1,"*",DepuisFin),MotComplet) alors sFormatRepDoc= Remplace(sFormatRepDoc,tabRep[i].sNomRep,sRepCherche) sRepTemp += sRepCherche+["\"] sinon si nMode=9 alors si Contient(tabRep[i].sNomnIDRubRep,"DC_Categorie") alors sDroit est une chaîne sNomRep est une chaîne (sDroit,sNomRep) = DonneDroitCategorieDoc(nIDCategorie) TraceLog(sNomProc + " : RepCategorie=" + sNomRep ) sFormatRepDoc=Remplace(sFormatRepDoc,tabRep[i].sNomRep,sNomRep+" #"+SansEspace( NumériqueVersChaîne(nIDCategorie))) sRepTemp += sNomRep+" #"+SansEspace(nIDCategorie)+["\"] fin TraiteRubriqueRep(tabRep[i],sListeRubEnreg,sreqsql,sFormatRepDoc) // SI Contient(tabRep[i].sNomnIDRubRep,"DC_Categorie") ALORS // // sFormatRepDoc=Remplace(sFormatRepDoc,tabRep[i].sNomRep,sNomRep+" #"+SansEspace(nIDCategorie)) // FIN //sFormatRepDoc= Remplace(sFormatRepDoc,tabRep[i].sNomRep,sRepCherche) //fRepCrée(remplace(sVariable,"*","")) fin sinon //TraceLog(sNomProc + " Sortie SI IDCategorie=" + nIDCategorie) TraiteRubriqueRep(tabRep[i],sListeRubEnreg,sreqsql,sFormatRepDoc) fin fin //sRepFichier = sFormatRepDoc//ComplèteRep(sRepRacine+sFormatRepDoc) pour toute chaîne sUnRep de sFormatRepDoc séparée par ["\"] si sUnRep<>"" alors sUnRepTemp est une chaîne = Remplace(sUnRep,"/","-") sUnRepTemp = Remplace(sUnRepTemp,[":","*","""","<",">","|",RC]," ") sRepFichier+= SansEspace(sUnRepTemp)+"\" fin fin sinon sRepFichier = "" fin procédure interne TraiteRubriqueRep(stUnRep est un Rep,sListeRubEnreg est une chaîne,sdReq est une Source de Données,sFortRepDoc est une chaîne) //Boucle sur l'ensemble des rubriques spécifiés pour le répertoiree en cours pour j = 1 _à_ stUnRep.tabRub..Occurrence sNomRub est une chaîne = stUnRep.tabRub[j].saNomRubrique sNomPropriete est une chaîne = stUnRep.tabRub[j].saProprietee sAnnexe est une chaîne = stUnRep.tabRub[j].saAnnexe //Le nom de la rubrique dans le nom du répertoire est bien présent dans la liste des rubriques de la source de données 12/08/2026 Omika_S_Comm_DEV 215 Partie 3 › Collection de procédures › LIB_Service › Code si Contient(sListeRubEnreg,sNomRub) alors sNomRubFormat est une chaîne= "["+sNomRub+"]" sProprieteFormat est une chaîne = "{"+sNomPropriete+"}" si sAnnexe<>"" alors sAnnexeFormat est une chaîne = "<"+ExtraitChaîne(ExtraitChaîne(sAnnexe,1,"."),2, "SELECT ")+"."+ExtraitChaîne(ExtraitChaîne(sAnnexe,2,"."),1," AS")+"|"+ExtraitChaîne( ExtraitChaîne(sAnnexe,1,"="),2,"WHERE ")+">" sdAnnexe est une Source de Données si HExécuteRequêteSQL(sdAnnexe,hRequêteDéfaut,ChaîneConstruit(sAnnexe,{sdReq,sNomRub}) ) alors stUnRep.sNomRepFormate = Remplace(stUnRep.sNomRep,sNomRubFormat+sAnnexeFormat, sdAnnexe.C1) sFortRepDoc = Remplace(sFortRepDoc,sNomRubFormat+sAnnexeFormat,sdAnnexe. C1) sinon stUnRep.sNomRepFormate = Remplace(stUnRep.sNomRep,sNomRubFormat+sAnnexeFormat, "") sFortRepDoc = Remplace(sFortRepDoc,sNomRubFormat+sAnnexeFormat,"") fin sinon //Remplace les n stUnRep.sNomRepFormate = sNomPropriete="" ? Remplace(stUnRep.sNomRep,sNomRubFormat, {sdReq,sNomRub}) sinon Remplace(stUnRep.sNomRep,sNomRubFormat+sProprieteFormat,{sdReq, sNomRub+sNomPropriete}) sFortRepDoc = sNomPropriete="" ? Remplace(sFortRepDoc,sNomRubFormat,{ sdReq,sNomRub}) sinon Remplace(sFortRepDoc,sNomRubFormat+sProprieteFormat,{sdReq, sNomRub+sNomPropriete}) fin stUnRep.sNomRepFormate = SansEspace(stUnRep.sNomRepFormate) sFortRepDoc = SansEspace(sFortRepDoc) fin fin fin TraceLog(sNomProc + " : RepFinal=" + sRepFichier ) renvoyer sRepFichier Procédure globale RepIntervention procédure RepIntervention(nInterID est un entier sur 8 octets,nIdCategorie est un entier sur 8 octets) TraceLog("RepIntervention :" + nInterID) quand exception dans rq est une Source de Données saRQ est une chaîne ANSI =[ SELECT client.CL_Nom,client.CL_PKID,IN_IDLieu,IN_RefInterne ,LI_CodeLieu,LI_PKID,CL_CodeComptable FROM Intervention INNER JOIN Client ON Intervention.IN_IDClient=Client.CL_PKID, Intervention INNER JOIN Lieu ON Intervention.IN_IDLieu=Lieu.LI_PKID WHERE Intervention.IN_PKID= ] saRQ+=nInterID TraceLog("RepIntervention :" + Remplace(saRQ,RC," ")) si HExécuteRequêteSQL(rq,gcnxAPart,saRQ) alors si HLitPremier(rq)alors sRepRacine est une chaîne=DonneRepertoireRacine() si pas fRépertoireExiste(sRepRacine) alors TraceLog("Le répertoire racine des documents est inaccessible :" + sRepRacine) renvoyer "" fin 12/08/2026 Omika_S_Comm_DEV 216 Partie 3 › Collection de procédures › LIB_Service › Code TraceLog("Racine : " + sRepRacine) sRepertoireInterv est une chaîne // =ComplèteRep(sRepRacine+ DonneRepertoireIntervention(rq.CL_Nom ,rq.CL_PKID,nInterID)) si HLitRecherchePremier(gsdParametreApplication,PAP_Code,FormatRepDocument) alors sRepertoireInterv=ComplèteRep(sRepRacine) + gsdParametreApplication.PAP_Valeur sinon sRepertoireInterv=ComplèteRep(sRepRacine) + "[CL_Nom] [CL_PKID]\Intervention [IN_PKID]" fin sRepertoireInterv = Remplace(sRepertoireInterv,"[IN_PKID]" ,nInterID,MotComplet+ SansCasse) sRepertoireInterv = Remplace(sRepertoireInterv,"[CL_Nom]" ,rq.CL_Nom , MotComplet+SansCasse) sRepertoireInterv = Remplace(sRepertoireInterv,"[CL_PKID]" ,rq.CL_PKID , MotComplet+SansCasse) sRepertoireInterv = Remplace(sRepertoireInterv,"[LI_CodeLieu]" ,rq.LI_CodeLieu ,MotComplet+SansCasse) sRepertoireInterv = Remplace(sRepertoireInterv,"[IN_RefInterne]",rq.IN_RefInterne , MotComplet+SansCasse) sRepertoireInterv = Remplace(sRepertoireInterv,"[LI_PKID]" ,rq.LI_PKID , MotComplet+SansCasse) sRepertoireInterv = ComplèteRep(sRepertoireInterv) sRepertoireInterv += gtbaCategorieDoc[nIdCategorie] +"\" TraceLog("Répertoire :" + sRepertoireInterv) si pas fRépertoireExiste(sRepertoireInterv) alors TraceLog("Répertoire inexistant :" + sRepertoireInterv) si pas fRepCrée(sRepertoireInterv) alors TraceLog("Création impossible de " + sRepertoireInterv + RC + "ERREUR " + ErreurInfo(errComplet)) renvoyer "" fin fin renvoyer ComplèteRep(sRepertoireInterv) sinon TraceLog("ERREUR dans sRepertoireInterv :Le client de l'intervention " + nInterID + " n’a pas été trouvé",cTrace_Exception) fin sinon TraceLog("ERREUR dans sRepertoireInterv :" + HErreurInfo(hErrComplet),cTrace_Exception) fin renvoyer "" faire TraceLog("ERREUR dans sRepertoireInterv :" + ExceptionInfo(errComplet),cTrace_Exception) renvoyer "" fin Procédure globale RepInterventionDocByID // Résumé : // Syntaxe : //[ = ] RepInterventionDocByID ( est entier sur 8 octets [, est booléen [, est entier sur 8 octets [, est entier sur 8 octets]]]) // // Paramètres : // nInterID (entier sur 8 octets) : // bEnLecture (booléen - valeur par défaut=0) : // nIdCategorie (entier sur 8 octets - valeur par défaut=0) : // nIDDoc (entier sur 8 octets - valeur par défaut=0) : // Valeur de retour : // Type indéterminé : // Aucune 12/08/2026 Omika_S_Comm_DEV 217 Partie 3 › Collection de procédures › LIB_Service › Code // // Exemple : // Indiquez ici un exemple d'utilisation. // procédure RepInterventionDocByID(nInterID est un entier sur 8 octets,bEnLecture est un booléen=Faux, local nIdCategorie est un entier sur 8 octets=0, nIDDoc est un entier sur 8 octets=0) //nIdCategorie est un entier sur 8 octets,bEnLecture est un booléen=faux) sNomProc est une chaîne ANSI ="RepInterventionDocByID" TraceLog(sNomProc + " : " + nInterID) quand exception dans rq est une Source de Données saRQ est une chaîne ANSI =[ SELECT Client.*,Lieu.*,Intervention.*,Dossier.*,ParametreMetier.*,Document.*,Adresse.AD_Ligne_4, Adresse.AD_Ville FROM Intervention LEFT OUTER JOIN Client ON (Client.CL_PKID=Intervention.IN_IDClient) LEFT OUTER JOIN Lieu ON (Lieu.LI_PKID=Intervention.IN_IDLieu) Left OUTER JOIN Adresse ON (Adresse.AD_PKID=Lieu.LI_IDAdresse) LEFT OUTER JOIN Dossier ON (DO_PKID=IN_IDDossier) LEFT OUTER JOIN ParametreMetier ON (PA_PKID=IN_IDEtatIntervention) LEFT OUTER JOIN Document ON (Intervention.IN_PKID=Document.DC_IDIntervention) WHERE Intervention.IN_PKID =%1 %2 ] saRQ = ChaîneConstruit(saRQ,nInterID,nIDDoc>0 ? "AND DC_PKID="+nIDDoc sinon "") TraceLog(sNomProc + " : " + Remplace( saRQ,RC," ")) si HExécuteRequêteSQL(rq,gcnxAPart,hRequêteDéfaut+hModifieFichier,saRQ) alors si HLitPremier(rq)alors sRepRacine est une chaîne=DonneRepertoireRacine() si pas fRépertoireExiste(sRepRacine) alors TraceLog("Le répertoire racine des documents est inaccessible :" + sRepRacine, cTrace_Exception) renvoyer "" fin TraceLog("Racine : " + sRepRacine) sRepertoireInterv est une chaîne sFormatRepDoc est une chaîne si HLitRecherchePremier(gsdParametreApplication,PAP_Code,FormatRepDocument) alors sFormatRepDoc=gsdParametreApplication.PAP_Valeur //Exemple : sFormatRepDoc="[CL_Nom] [CL_PKID]\Intervention [IN_PKID]\?" //[LI_CodeLieu] - [LI_IDAdresse] - [LI_IDAdresse] ##INTERV\?\[IN_DateIntervention]{..Année} [IN_DateIntervention]{..Mois} [DO_IDTypeDossier] [IN_RefInterne] fin tabRep est un tableau de Rep si gsaSociete = cSocSLAMM alors sRepertoireInterv = DecodeRepSLAMM(rq,sFormatRepDoc,bEnLecture,nIdCategorie) sinon DecodeRepertoire(sFormatRepDoc,tabRep) //En Lecture, on si bEnLecture alors sRepertoireInterv = RemplaceRubriqueCheminFichier(0,tabRep,rq,sFormatRepDoc, sRepRacine,0) sinon 12/08/2026 Omika_S_Comm_DEV 218 Partie 3 › Collection de procédures › LIB_Service › Code sRepertoireInterv = RemplaceRubriqueCheminFichier(9,tabRep,rq,sFormatRepDoc, sRepRacine,nIdCategorie) fin fin TraceLog("Répertoire avant proc remplace:" + sRepertoireInterv) TraceLog("Répertoire racine:" + sRepertoireInterv) sRepertoireInterv = Remplace(sRepertoireInterv,sRepRacine,"") //Remplace(sRepertoireInterv,"?",sNomRep) //Remplace les caractères interdits dans le nommage d'un répertoire Windows sRepertoireInterv = Remplace(sRepertoireInterv,"/","-") sRepertoireInterv = Remplace(sRepertoireInterv,[":","*","""","<",">","|",RC]," ") //Ajout du répertoire racine en début de chaine après l'opération de remplacement car la racine peut contenir le caractère ":" Ex : "C:\Doc" sRepertoireInterv = sRepRacine + sRepertoireInterv //En écriture, on créé les répertoires correspondant aux catégories de documents <- C'est pas le moment. L'application BO le fera //SI PAS bEnLecture ALORS CreationRepertoireCategorieSiInexistant(sRepertoireInterv) TraceLog("Répertoire :" + sRepertoireInterv) si pas fRépertoireExiste(sRepertoireInterv) alors TraceLog("Répertoire inexistant :" + sRepertoireInterv) si pas fRepCrée(sRepertoireInterv) alors TraceLog("Création impossible de " + sRepertoireInterv + RC + "ERREUR " + ErreurInfo(errComplet),cTrace_Exception) renvoyer "" fin fin renvoyer ComplèteRep(sRepertoireInterv) sinon TraceLog("ERREUR dans "+sNomProc+" :Le client de l'intervention " + nInterID + " n’a pas été trouvé",cTrace_Exception) fin sinon TraceLog("ERREUR dans "+sNomProc+" :" + HErreurInfo(hErrComplet),cTrace_Exception) fin renvoyer "" faire TraceLog("ERREUR dans "+sNomProc+" :" + ExceptionInfo(errComplet),cTrace_Exception) renvoyer "" fin Procédure globale ReporteTraitement procédure ReporteTraitement(nIdMobReception est un entier sur 8 octets,nNbMinuteReport est un entier=2) //Report du traitement dans 2 minutes dhRecept est une DateHeure = DateHeureSys() dhRecept..Minute +=nNbMinuteReport si HLitRecherchePremier(gsdMobReception,MR_PKID,nIdMobReception) alors gsdMobReception.MR_DateHeureRecep=dhRecept HModifie(gsdMobReception) fin Procédure globale RetrouverRepertoire procédure RetrouverRepertoire(saCheminComp est une chaîne ANSI, local saRepDocs est une chaîne ANSI) nPosRub est un entier saUneRubrique est une chaîne ANSI 12/08/2026 Omika_S_Comm_DEV 219 Partie 3 › Collection de procédures › LIB_Service › Code saRepDocs = ComplèteRep(saRepDocs) pour tout chaîne saUnRep de saCheminComp séparée par ["\"] si fRepExiste(saRepDocs+saUnRep) alors saRepDocs = ComplèteRep(saRepDocs+saUnRep) sinon si Contient(saUnRep,"#") alors nPosRub = Position(saUnRep,"#")+1 saUneRubrique = nPosRub>0 ? Milieu(saUnRep,nPosRub, Taille(saUnRep)) sinon "" si Val(saUneRubrique) > 0 alors saRepCherche est une chaîne ANSI = fRep(ComplèteRep(saRepDocs)+"*#"+Val(saUneRubrique) ,frRépertoire) si saRepCherche <> "" alors saRepDocs = ComplèteRep(saRepDocs+saRepCherche) sinon saRepDocs = ComplèteRep(saRepDocs+saUnRep) fin fin sinon saRepDocs = ComplèteRep(saRepDocs+saUnRep) fin fin fin renvoyer saRepDocs Procédure globale RéinitialiseReplication procédure RéinitialiseReplication() quand exception dans si pas HOuvreConnexion(gcnxAPart) alors TraceLog("Abandon"+ RC+ HErreurInfo(hErrMessage),cTrace_Exception) renvoyer Faux fin HFermeConnexion(gcnxSrvWEB) gsaSW_Serveur =ParametreLit(cParam_CloudServeur) gsaSW_Port =ParametreLit(cParam_CloudPortData) gcnxSrvWEB..Serveur = gsaSW_Serveur+":"+gsaSW_Port gcnxSrvWEB..BaseDeDonnées="" si pas HOuvreConnexion(gcnxSrvWEB) alors TraceLog("Abandon"+ RC+ HErreurInfo(hErrMessage),cTrace_Exception) renvoyer Faux fin nCLOUD_PortReplic est un entier =ParametreLit(cParam_CloudPortReplication , cDefaut_PortReplication) nCLOUD_IdServeur est un entier =ParametreLit(cParam_CloudIdServeur , cDefaut_CLoudServeurID) nCLOUD_Priorite est un entier =ParametreLit(cParam_CloudPriorite , cDefaut_CloudPriorite) saCLOUD_CodeReplic est une chaîne ANSI =ParametreLit(cParam_CloudCle , cDefaut_ReplicCle,Vrai) nMAITRE_PortReplic est un entier =ParametreLit(cParam_LocalPortReplication , cDefaut_PortReplication) nMAITRE_IdServeurest un entier =ParametreLit(cParam_LocalIdServeur , cDefaut_LocalServeurID) 12/08/2026 Omika_S_Comm_DEV 220 Partie 3 › Collection de procédures › LIB_Service › Code nMAITRE_Priorite est un entier =ParametreLit(cParam_LocalPriorite , cDefaut_LocalPriorite) //saMAITRE_User est une chaîne ANSI ="AdminReplication" //saMAITRE_Pass est une chaîne ANSI ="AdminReplication" TraceLog("Arrêt des réplications en cours") listeRS est un tableau de hRSConfig listeRS = HRSListeConfig(gcnxAPart) pour tout RFConf de listeRS TraceLog(RFConf..Serveur) si pas HRSSupprimeConfig(gcnxAPart,RFConf) alors TraceLog("Erreur :" + ErreurInfo(errComplet)) renvoyer Faux fin fin TraceLog("Interdit l’accès a la base de données") HInterditAccèsBaseDeDonnées(gcnxSrvWEB,gsaBO_NomBase) TraceLog("Déconnecte les clients") HDéconnecteClient(gcnxSrvWEB,"",0) TraceLog("Supprime la base courante") saSLstBases est une chaîne = HListeBaseDeDonnées(gcnxSrvWEB,hLstNormal) TraceLog(saSLstBases) si ChaîneOccurrence(saSLstBases,gsaBO_NomBase)>0 alors si pas HSupprimeBaseDeDonnées(gcnxSrvWEB,gsaBO_NomBase,hSupprimeJournal) alors TraceLog(ErreurInfo(),cTrace_Exception) HFinInterditAccèsBaseDeDonnées(gcnxSrvWEB,gsaBO_NomBase) renvoyer Faux fin fin HFinInterditAccèsBaseDeDonnées(gcnxSrvWEB,gsaBO_NomBase) TraceLog("Initialise la réplication") si pas HRSInit(gcnxAPart, hrsMaître, nMAITRE_IdServeur, saCLOUD_CodeReplic, nMAITRE_PortReplic, nMAITRE_Priorite) alors TraceLog(ErreurInfo(),cTrace_Exception) renvoyer Faux fin si pas HRSInit(gcnxSrvWEB, hrsAbonné, nCLOUD_IdServeur, saCLOUD_CodeReplic, nCLOUD_PortReplic, nCLOUD_Priorite) alors TraceLog(ErreurInfo()) renvoyer Faux fin //LA connexion doit être fermée pour permettre la mise en place de la synchro HFermeConnexion(gcnxSrvWEB) // Définition de la réplication ConfigRéplic est un hRSConfig ConfigRéplic..Bidirectionnelle = Faux ConfigRéplic..Serveur = gsaSW_Serveur +":"+nCLOUD_PortReplic Ajoute(ConfigRéplic..Fichier, gsaBO_NomBase) //Ajoute(ConfigRéplication1..Fichier, "-" + gsNomBase + "\FichierÀExclure.fic") ConfigRéplic..RésolutionConflitModification = hrcmPlusPrioritaire ConfigRéplic..MotDePasse = saCLOUD_CodeReplic ConfigRéplic..Description ="Réplication des données à destination des appareils mobiles."+RC+ "Mise en place sur le serveur : " + gsaSW_Serveur + RC + "Le " + DateVersChaîne(DateHeureSys, maskDateSystème) 12/08/2026 Omika_S_Comm_DEV 221 Partie 3 › Collection de procédures › LIB_Service › Code PlanifReplication est une hPlanification //Planification Vide indique une réplication en continu //Exemple : Planification de la réplication (tous les jours à 23h00) //MaPlanification..Mois = "*" //MaPlanification..JourDeLaSemaine = "*" //MaPlanification..Heure = "23" //MaPlanification..Minute = "0" ConfigRéplic..Planification = PlanifReplication TraceLog("Copie les données et active la réplication") // Ajout de la réplication avec copie des fichiers si pas HRSAjouteConfig(gcnxAPart, ConfigRéplic, hrsCopie) alors TraceLog(ErreurInfo(),cTrace_Exception) renvoyer Faux sinon TraceLog("Réplication Activée") renvoyer Vrai fin faire TraceLog("EXCEPTION lors de l'initialisation de la réplication." +RC + ExceptionInfo(errComplet), cTrace_Exception) renvoyer Faux fin // //HFermeConnexion(gcnxSrvWEB) Procédure globale ScoreSouple procédure ScoreSouple(saRef est une chaîne, saCandidat est une chaîne) sRefN est une chaîne = NormalizeSouple(saRef) sCandN est une chaîne = NormalizeSouple(saCandidat) tRefest un tableau de chaînes = TokensSouples(sRefN) tCand est un tableau de chaînes = TokensSouples(sCandN) si tRef..Occurrence = 0 ou tCand..Occurrence = 0 alors renvoyer 0 fin score est un entier = 0 pour tout tokRef de tRef pour tout tokCand de tCand // match exact si tokRef = tokCand alors score += 10 sortir // inclusion (ex: "moulin" vs "jean moulin") si Contient(tokCand, tokRef) ou Contient(tokRef, tokCand) alors score += 5 sortir fin fin fin // Bonus si la référence est incluse globalement si Contient(sCandN, sRefN) ou Contient(sRefN, sCandN) alors score += 10 fin 12/08/2026 Omika_S_Comm_DEV 222 Partie 3 › Collection de procédures › LIB_Service › Code fin renvoyer score Procédure globale SurPerteDeConnexion // Résumé : // Syntaxe : //[ = ] SurPerteDeConnexion () // // Paramètres : // Aucun // Valeur de retour : // entier : // Aucune // // Exemple : // Indiquez ici un exemple d'utilisation. // procédure SurPerteDeConnexion() TraceLog("Perte de connexion...",cTrace_Exception) renvoyer opFinTraitement Procédure globale SurveilleConnexionServeurDistant // Résumé : // Syntaxe : //[ = ] SurveilleConnexionServeurDistant () // // Paramètres : // Aucun // Valeur de retour : // booléen : // Aucune // // Exemple : // Indiquez ici un exemple d'utilisation. // procédure SurveilleConnexionServeurDistant() selon HEtatServeur(gsaSW_Serveur+":"+gsaSW_Port) cas hArrêté TraceLog("Serveur CLOUD arrêté",cTrace_Exception) gbConnexionCloudActive=Faux cas hDémarré TraceLog("Serveur CLOUD démarré") gbConnexionCloudActive=Vrai cas hInaccessible TraceLog("Serveur CLOUD inaccessible",cTrace_Exception) gbConnexionCloudActive=Faux autre cas TraceLog("Etat serveur CLOUD indéterminé",cTrace_Exception) gbConnexionCloudActive=Faux fin renvoyer gbConnexionCloudActive Procédure globale TempsEcrit procédure TempsEcrit(bufJSON est un Buffer, sd est une Source de Données) stTpsPas est un ST_TEMPS_PASSE_RDV_V2 12/08/2026 Omika_S_Comm_DEV 223 Partie 3 › Collection de procédures › LIB_Service › Code Désérialise(stTpsPas,bufJSON,psdJSON) si pas ErreurDétectée alors saReq est une chaîne ANSI = [ select RDV_Collaborateur.RVC_PKID, RDV_Planning.RV_CleType from RDV_Collaborateur inner join RDV_Planning on RDV_Planning.GUID = RDV_Collaborateur.RVC_GUID_RDV where RDV_Collaborateur.GUID = ] saReq += "'"+stTpsPas.saGuidRdv+"'" sdRDV est une Source de Données si pas HExécuteRequêteSQL(sdRDV,gcnxAPart,saReq) alors TraceLog("Erreur :" + HErreurInfo(errComplet),cTrace_Exception) retour fin si pas sdRDV.RVC_PKID > 0 alors //RDV inconnu. Possible que la saisie des temps arrive avant le RDV TraceLog("GUID RDV_Collaborateur Inconnu. Report du traitement") ReporteTraitement(sd.MR_PKID,2) sinon sMSGErr est une chaîne duUneDuree est une Durée dhHeureD est une DateHeure dhHeuref est une DateHeure si sMSGErr="" alors pour tout stTps de stTpsPas.tblTemps //Tableau de ST_TEMPS_PASSE si stTps.saHeureDebut <> "" et stTps.saHeureFin <> "" alors dhHeureD= stTps.saHeureDebut dhHeuref= stTps.saHeureFin duUneDuree = (dhHeuref-dhHeureD) si HLitRecherchePremier(gsdCollaborateur,CO_PKID,stTps.nIdCollab) alors HLitRecherchePremier(gsdSuiviDesTemps,GUID,stTps.saGuid) si pas HTrouve(gsdSuiviDesTemps) alors HRAZ(gsdSuiviDesTemps) fin gsdSuiviDesTemps.GUID = stTps.saGuid gsdSuiviDesTemps.SDT_DateDebut = stTps.saHeureDebut gsdSuiviDesTemps.SDT_DateHeureFin = stTps.saHeureFin gsdSuiviDesTemps.SDT_IDIntervention = stTpsPas.nIdIntervention gsdSuiviDesTemps.SDT_IDCollaborateur = stTps.nIdCollab gsdSuiviDesTemps.SDT_IDTypeTemps = stTps.nIdTypeTps gsdSuiviDesTemps.SDT_CleType = DonneCleParamAvecID(stTps.nIdTypeTps ) gsdSuiviDesTemps.SDT_Ponderation = (gsdCollaborateur.CO_Ponderation=0 ? 1 sinon gsdCollaborateur.CO_Ponderation) gsdSuiviDesTemps.SDT_NbMinutes = duUneDuree..EnMinutes gsdSuiviDesTemps.SDT_Libelle = stTps.saNote gsdSuiviDesTemps.SDT_IDRdv = gsdPlanning_RDV.RVC_PKID gsdSuiviDesTemps.SDT_IDTypeRdv = DonneIdParamAvecCle(sdRDV.RV_CleType ) gsdSuiviDesTemps.SDT_CleTypeRDV = sdRDV.RV_CleType 12/08/2026 Omika_S_Comm_DEV 224 Partie 3 › Collection de procédures › LIB_Service › Code gsdSuiviDesTemps.SDT_GUID_Rdv_Colb = stTpsPas.saGuidRdv HEnregistre(gsdSuiviDesTemps) //FIN sinon //Collaborateur inconnu TraceLog("Collaborateur Inconnu : " + stTps.nIdCollab + " Données perdues", cTrace_Exception) fin fin fin //Pour tout MarqueDataTraitée(sd.MR_PKID) sinon TraceLog("Erreur :" +sMSGErr) fin fin sinon //Surement une erreur de dé-sérialisation TraceLog("Erreur :" + ErreurInfo(errComplet),cTrace_Exception) fin Procédure globale TH_TraiteDocRecu procédure TH_TraiteDocRecu() //scTraiteDoc est une SectionCritique //utiliser scTraiteDoc dans //Début de la section critique quand exception dans TraceLog("Démarrage du Thread TH_TraiteDocRecu PID :" + ExeDonnePID(exeTID)) saRep est une chaîne ANSI nErr est un entier bufJSON est un Buffer sd est une Source de Données saERR est une chaîne ANSI saRQ est une chaîne ANSI =[ SELECT MobReception.MR_PKID AS MR_PKID, MobReception.MR_IDToSRV AS MR_IDToSRV, MobReception.MR_JSON AS MR_JSON, MobReception.MR_CMD AS MR_CMD, MobReception.MR_Buffer AS MR_Buffer, MobReception.MR_NumSerie AS MR_NumSerie, MobReception.MR_Fait AS MR_Fait, MobReception.MR_DateHeureRecep AS MR_DateHeureRecep FROM MobReception WHERE MobReception.MR_Fait = 0 AND MobReception.MR_DateHeureRecep <= SYSDATE ORDER BY MR_DateHeureRecep ASC ] //TraceLog("Init TH_TraiteDocRecu") boucle si ConnexionsEtabliesAuxBases() alors si pas HExécuteRequêteSQL(sd,gcnxAPart,saRQ) alors ThreadFin() fin pour tout sd bufJSON=sd.MR_JSON nErr=0 12/08/2026 Omika_S_Comm_DEV 225 Partie 3 › Collection de procédures › LIB_Service › Code selon sd.MR_CMD cas cCMD_ReInitReplic gbInitReplicationEnCours=Vrai TraceLog("Ré-Initialisation de la réplication") //On marque la commande faite immédiatement pour éviter des relances intempestives de la synchro. MarqueDataTraitée(sd.MR_PKID) INIEcrit(cIniSectionMonitor,cIniCleTempo,NumériqueVersChaîne(10*60*100), gsuFicIni) //Tempo d'une heure pour le service monitor INIEcrit(cIniSectionMonitor,cIniCleCommande,"TEMPO",gsuFicIni) //Arrêt de la surveillance ArreteLaSurveillanceDeToSRV() si RéinitialiseReplication() alors HFermeConnexion(gcnxSrvWEB) HFermeConnexion(gcnxAPart) gbInitialisationRéussie=Faux gbInitReplicationEnCours=Faux TraceLog("Sortie du Thread TH_TraiteDocRecu") //On sort de la thread qui sera relancée par la boucle de service ThreadFin() sinon gbInitialisationRéussie = Faux gbInitReplicationEnCours=Faux fin cas cCMD_MajSComm,cCMD_MajSMonitor stRep est un ST_REP_SYSTEM stRep.saCMD=sd.MR_CMD //On réceptionne un fichier "ServiceComm.wdl" //On l'enregistre dans le dossier \ProgramData\APart\bin suNomFic est une chaîne Unicode selon sd.MR_CMD cas cCMD_MajSMonitor suNomFic= gsuRepBin + cServiceMonitor + ".new" cas cCMD_MajSComm suNomFic= gsuRepBin + cNomService + ".new" fin si sd.MR_Buffer ="" alors stRep.saErr="E1001" stRep.saMSG="Buffer vide" TraceLog("Demande de mise à jour sans fichier",cTrace_Exception) sinon si pas fSauveBuffer(suNomFic,sd.MR_Buffer) alors stRep.saMSG="ERREUR lors de l'enregistrement de la mise à jour : " + ErreurInfo(errMessage) stRep.saErr="E1000" TraceLog(stRep.saMSG,cTrace_Exception) sinon stRep.saErr="E0000" stRep.saMSG="Mise en place du fichier : " + suNomFic TraceLog("Mise à jour enregistrée dans :" + suNomFic,cTrace_Info) fin fin Sérialise(stRep,bufJSON,psdJSON) HRAZ(gsdTOMOB) 12/08/2026 Omika_S_Comm_DEV 226 Partie 3 › Collection de procédures › LIB_Service › Code gsdTOMOB.TM_Mobile = cDST_System gsdTOMOB.TM_Date = DateHeureSys() gsdTOMOB.TM_CMD =sd.MR_CMD gsdTOMOB.TM_JSON =bufJSON HAjoute(gsdTOMOB) MarqueDataTraitée(sd.MR_PKID) selon sd.MR_CMD cas cCMD_MajSMonitor ServiceArrête(cServiceMonitor) nEtat est un entier nEtat=ServiceAttendEtat(cServiceMonitor,serviceEtatArrêté,20s) si nEtat=serviceEtatArrêté alors ServiceDémarre(cServiceMonitor) fin //Mise à jour du serviceComm. Il s’arrête et sera relancé par le ServiceMonitor cas cCMD_MajSComm FinService(fsDéfaillance) fin cas cCMD_PauseEtQuit nNbSecondes est un entier = Val(sd.MR_JSON) //durée TraceLog("Pause et Quitte ( "+ sd.MR_JSON + "s )",cTrace_Info ) //On marque la commande faite immédiatement pour éviter des relances intempestives de la synchro. MarqueDataTraitée(sd.MR_PKID) INIEcrit(cIniSectionMonitor,cIniCleTempo,NumériqueVersChaîne((nNbSecondes+60) *100),gsuFicIni) //Tempo en ms égale au temps de pause + 1 minute INIEcrit(cIniSectionMonitor,cIniCleCommande,"TEMPO",gsuFicIni) //Arrêt de la surveillance ArreteLaSurveillanceDeToSRV() HFermeConnexion(gcnxSrvWEB) HFermeConnexion(gcnxAPart) ThreadPause(nNbSecondes*100) //Attente FinService(fsDéfaillance) //Arrêt du Service avec un signal de défaillance qui invite le système à relancer le service avant le Service Monitor cas cCMD_DocEcrit DocEcrit(bufJSON,sd) cas cCMD_DocNoteEcrit DocNoteEcrit(bufJSON,sd) cas cCMD_TempsEcrit_V2 TempsEcrit(bufJSON,sd) cas cCMD_RDVValidation ValidationRDV(bufJSON,sd) cas cCMD_RDVAnnulation 12/08/2026 Omika_S_Comm_DEV 227 Partie 3 › Collection de procédures › LIB_Service › Code AnnulerRDV(bufJSON,sd) cas cCMD_CREcrit CompteRenduEcrit(bufJSON,sd) cas cCMD_CREcrit_V2 CompteRenduEcrit(bufJSON,sd) cas cCMD_ServiceActif,cCMD_ServiceInfo //Réponse au Chien de Garde signalant le bon fonctionnement du Service HRAZ(gsdTOMOB) gsdTOMOB.TM_Mobile = cDST_System gsdTOMOB.TM_Date = DateHeureSys() gsdTOMOB.TM_CMD ="MIAOU" gsdTOMOB.TM_JSON = InfoService() HAjoute(gsdTOMOB) MarqueDataTraitée(sd.MR_PKID) cas cCMD_ListeDocDmd, cCMD_DocRpRecup DemandeListeDoc(bufJSON,sd) cas cCMD_NoteEcrit NoteEcrit(bufJSON,sd) cas cCMD_MsgExtEcrit MessageExterne(bufJSON,sd) cas cCMD_RdvEcrit , cCMD_RdvAPlanifierEcrit RdvEcrit(bufJSON,sd) cas cCMD_ParamEcrit // TraceLog("Ecrit Paramètre") // saEtat est une chaîne ANSI // saMsg est une chaîne ANSI // saErreurest une chaîne ANSI // stParam est un ST_PARAMETRE // Désérialise(stParam,bufJSON,psdJSON) // SI ErreurDétectée ALORS // saEtat="ERREUR" // saErreur = ErreurInfo(errComplet) // // sinon // saMsg ="CMD :" + cCMD_ParamEcrit // saEtat="OK" // // selon stParam.stype // cas "S" // saEtat= ParametreSystemEcrit(stParam.sCle,stParam.sValeur,stParam.bCrypte,stParam.sDescript) // CAS "A" // saEtat=ParametreEcrit(stParam.sCle,stParam.sValeur,stParam.bCrypte,stParam.sDescript) // cas "M" // si pas ParametreMetierEcrit(stParam,saErreur) alors // saEtat="ERREUR" // FIN // AUTRE CAS // saEtat="ERREUR" // FIN // fin // si saEtat<>"OK" alors // saMsg= "CMD :" + cCMD_ParamEcrit + RC + bufJSON + RC + saErreur // TraceLog(saMsg,cTrace_Exception) // fin // // 12/08/2026 Omika_S_Comm_DEV 228 Partie 3 › Collection de procédures › LIB_Service › Code // //Renvoie une réponse au demandeur // HRAZ(gsdTOMOB) // gsdTOMOB.TM_Mobile = cDST_System // gsdTOMOB.TM_Date = DateHeureSys() // gsdTOMOB.TM_CMD = saEtat // gsdTOMOB.TM_JSON = saMsg // HAjoute(gsdTOMOB) // // MarqueDataTraitée(sd.MR_PKID) cas cCMD_ParamLit TraceLog("Lit Paramètre") saEtat est une chaîne ANSI saMsg est une chaîne ANSI saErreurest une chaîne ANSI stParam est un ST_PARAMETRE Désérialise(stParam,bufJSON,psdJSON) si ErreurDétectée alors saEtat="ERREUR" saErreur = ErreurInfo(errComplet) sinon saEtat="OK" selon stParam.sType cas "S" stParam.sValeur=ParametreSystemLit(stParam.sCle,stParam.sValeur, stParam.bCrypte) cas "A" stParam.sValeur=ParametreLit(stParam.sCle,stParam.sValeur, stParam.bCrypte) cas "M" si pas ParametreMetierLit(stParam,saErreur) alors saMsg ="CMD :" + cCMD_ParamLit + RC + bufJSON + RC + saErreur saEtat="ERREUR" fin autre cas saMsg ="CMD :" + cCMD_ParamLit saEtat="ERREUR" fin fin si saEtat="OK" alors Sérialise(stParam,saMsg,psdJSON) sinon saMsg= "CMD :" + cCMD_ParamLit + RC + bufJSON + RC + saErreur TraceLog(saMsg,cTrace_Exception) fin //Renvoie une réponse au demandeur HRAZ(gsdTOMOB) gsdTOMOB.TM_Mobile = cDST_System gsdTOMOB.TM_Date = DateHeureSys() gsdTOMOB.TM_CMD = saEtat gsdTOMOB.TM_JSON = saMsg HAjoute(gsdTOMOB) MarqueDataTraitée(sd.MR_PKID) cas cCMD_ParamSuppr TraceLog("Supprime Paramètre") saEtat est une chaîne ANSI = "OK" saMsg est une chaîne ANSI saErreurest une chaîne ANSI stParam est un ST_PARAMETRE 12/08/2026 Omika_S_Comm_DEV 229 Partie 3 › Collection de procédures › LIB_Service › Code Désérialise(stParam,bufJSON,psdJSON) si ErreurDétectée alors saEtat="ERREUR" saErreur = ErreurInfo(errComplet) sinon selon stParam.sType cas "S" saMsg=ParametreSystemSupprime(stParam.sCle) cas "A" saMsg=ParametreSupprime(stParam.sCle) cas "M" si pas ParametreMetierSupprime(stParam,saERR) alors saEtat="ERREUR" fin autre cas saEtat="ERREUR" fin fin si saEtat="OK" alors saMsg ="CMD :" + cCMD_ParamSuppr sinon saMsg= "CMD :" + cCMD_ParamSuppr + RC + bufJSON + RC + saErreur TraceLog(saMsg,cTrace_Exception) fin //Renvoie une réponse au demandeur HRAZ(gsdTOMOB) gsdTOMOB.TM_Mobile = cDST_System gsdTOMOB.TM_Date = DateHeureSys() gsdTOMOB.TM_CMD = saEtat gsdTOMOB.TM_JSON = saMsg HAjoute(gsdTOMOB) MarqueDataTraitée(sd.MR_PKID) cas cCMD_MonitorPause //Indique une valeur de temporisation en centièmes de secondes au Service Monitor //Celui ci scrute cette valeur avant toute action //Si cette valeur existe dans le fichier APart.ini, il l'efface puis s'applique la temporisation indiquée avec ServiceTemporise(nMilliSecondes) //Afin d'éviter un problème, cette temporisation ne pourra excéder 1h soit 3 600s -> 360 000 cs TraceLog("Commande de temporisation du service Monitor :" +sd.MR_JSON , cTrace_Debug) INIEcrit(cIniSectionMonitor,cIniCleTempo,sd.MR_JSON,gsuFicIni) INIEcrit(cIniSectionMonitor,cIniCleCommande,"TEMPO",gsuFicIni) MarqueDataTraitée(sd.MR_PKID) cas cCMD_MonitorArrete si ServiceExiste(cServiceMonitor) alors si ServiceArrête(cServiceMonitor) alors TraceLog("Arrêt du Service Monitor",cTrace_Debug) sinon TraceLog("ERREUR Lors de l'arrêt du Service Monitor"+ RC + ErreurInfo(errComplet),cTrace_Debug) fin sinon TraceLog("Le Service Monitor n'existe pas",cTrace_Debug) 12/08/2026 Omika_S_Comm_DEV 230 Partie 3 › Collection de procédures › LIB_Service › Code fin MarqueDataTraitée(sd.MR_PKID) cas cCMD_MonitorRedemarre si ServiceExiste(cServiceMonitor) alors si ServiceRedémarre(cServiceMonitor) alors TraceLog("Redémarrage du Service Monitor",cTrace_Debug) sinon TraceLog("ERREUR Lors du Redémarrage du Service Monitor"+ RC + ErreurInfo(errComplet),cTrace_Debug) fin sinon TraceLog("Le Service Monitor n'existe pas",cTrace_Debug) fin MarqueDataTraitée(sd.MR_PKID) cas cCMD_BUG //Provoque un plantage du service via une division par 0 Utilisé pour la mise au point de la surveillance du service TraceLog("BUG",cTrace_Debug) MarqueDataTraitée(sd.MR_PKID) n est un entier =1/0 cas cCMD_Quitter MarqueDataTraitée(sd.MR_PKID) TraceLog("Fin du service",cTrace_Debug) FinService(fsArrêt) cas cCMD_NiveauTrace ChangeNiveauTraceCourante(Val(sd.MR_JSON)) MarqueDataTraitée(sd.MR_PKID) cas cCMD_ExecSQL stCmd est un ST_COMMANDE saMsg est une chaîne ANSI saEtat est une chaîne ANSI Désérialise(stCmd,bufJSON,psdJSON) si stCmd.saScript<>"" alors si HExécuteRequêteSQL("EXE",gcnxAPart,stCmd.saScript) alors saMsg="Exécution réussie" saEtat="OK" sinon saMsg="Échec de la requête :" + HErreurInfo(hErrComplet) saEtat="ERREUR" fin sinon saMsg="Requête vide" saEtat="ERREUR" fin si saEtat<>"OK" alors TraceLog(saMsg,cTrace_Exception) fin //Renvoie une réponse au demandeur HRAZ(gsdTOMOB) gsdTOMOB.TM_Mobile = cDST_System gsdTOMOB.TM_Date = DateHeureSys() gsdTOMOB.TM_CMD = saEtat gsdTOMOB.TM_JSON = saMsg HAjoute(gsdTOMOB) MarqueDataTraitée(sd.MR_PKID) cas cCMD_ExecWL stCmd est un ST_COMMANDE 12/08/2026 Omika_S_Comm_DEV 231 Partie 3 › Collection de procédures › LIB_Service › Code saMsg est une chaîne ANSI saEtat est une chaîne ANSI Désérialise(stCmd,bufJSON,psdJSON) si stCmd.saScript<>"" alors sRésultatCompile est une chaîne = Compile("Proc_dynamique", stCmd. saScript) selon sRésultatCompile cas "" saMsg = ExécuteTraitement("Proc_dynamique", trtProcédure) saEtat="OK" cas "ERR" saMsg = "Compilation impossible." + RC + ErreurInfo() saEtat="ERREUR" autre cas saMsg = sRésultatCompile saEtat="ERREUR" fin sinon saMsg="Script vide" saEtat="ERREUR" fin si saEtat<>"OK" alors TraceLog(saMsg,cTrace_Exception) fin //Renvoie une réponse au demandeur HRAZ(gsdTOMOB) gsdTOMOB.TM_Mobile = cDST_System gsdTOMOB.TM_Date = DateHeureSys() gsdTOMOB.TM_CMD = saEtat gsdTOMOB.TM_JSON = saMsg HAjoute(gsdTOMOB) MarqueDataTraitée(sd.MR_PKID) autre cas //Commande Inconnue TraceLog("Commande Inconnue : " +sd.MR_CMD,cTrace_Debug ) MarqueDataTraitée(sd.MR_PKID) fin fin fin HFermeConnexion(gcnxAPart) ThreadAttendSignal(Infini) fin //Boucle faire TraceLog("TH_TraiteDocRecu : " + sd.MR_CMD + " : ERREUR" + ExceptionInfo(errComplet), cTrace_Exception) MarqueDataTraitée(sd.MR_PKID) fin //fin //Section Critique Procédure globale TokensSouples 12/08/2026 Omika_S_Comm_DEV 232 Partie 3 › Collection de procédures › LIB_Service › Code procédure TokensSouples(s est une chaîne) tousMotsest un tableau de chaînes ChaîneVersTableau(s,tousMots," ") tokens est un tableau de chaînes pour tout mot de tousMots si Taille(mot) >= 3 alors // ignore "de", "du", "la", "9" seul, etc. TableauAjoute(tokens, mot) fin fin renvoyer tokens Procédure globale ValidationRDV procédure ValidationRDV(bufJSON est un Buffer, sd est une Source de Données) TraceLog("Validation de rendez-vous") stVR est un ST_VALIDATION_RDV Désérialise(stVR,bufJSON,psdJSON) si pas ErreurDétectée alors si stVR.saGuid <>"" _et_ HLitRecherchePremier(gsdPlanning_RDV,GUID,stVR.saGuid) alors nIdRdvFait est un entier sur 8 octets = DonneIdParamAvecCle(cCle_RDVFait) si nIdRdvFait > 0 alors gsdPlanning_RDV.RVC_CleStatut = cCle_RDVFait si HEnregistre(gsdPlanning_RDV) alors si HLitRecherchePremier(gsdPlanning,GUID,gsdPlanning_RDV.RVC_GUID_RDV) alors gsdPlanning.RV_CleStatut = cCle_RDVFait HEnregistre(gsdPlanning) fin MarqueDataTraitée(sd.MR_PKID) sinon si HErreur()>0 TraceLog("Erreur :" + HErreurInfo(errComplet),cTrace_Exception) fin sinon saMsg est une chaîne="CMD :" + sd.MR_CMD + RC + bufJSON + RC + "Paramètre inconnu" TraceLog(saMsg) fin sinon TraceLog("RDV introuvable : CMD :" + sd.MR_CMD + RC + bufJSON ) fin fin 12/08/2026 Omika_S_Comm_DEV 233 Partie 3 › Collection de procédures › LIB_InterfaceComposant › Code LIB_InterfaceComposant Code Procédure globale BoucleService procédure BoucleService() BouclePrincipaleDuService() 12/08/2026 Omika_S_Comm_DEV 234 Partie 3 › Collection de procédures › LIB_DEBUG › Code LIB_DEBUG Code Déclaration de LIB_DEBUG gcnxD_ServeurLicence est une Connexion gcnxD_ServeurWSCom est une Connexion gcnxD_Service est une Connexion gtbaListeUsers est un tableau associatif de ST_MOB_IDENTITE gsaPortWSCOM est une chaîne ANSI gsaServeurWSCOM est une chaîne ANSI gID est un ST_MOB_IDENTITE gnIdColbEnCours est un entier sur 8 octets Procédure globale D_OuvreConnexionHFSQL procédure D_OuvreConnexionHFSQL() quand exception dans LIB_Service.gcnxAPart = LIB_DEBUG.gcnxD_ServeurWSCom LIB_Service.gcnxSrvWEB = LIB_DEBUG.gcnxD_Service gsaPortWSCOM = LIB_DEBUG.gsaPortWSCOM gsaServeurWSCOM = LIB_DEBUG.gsaServeurWSCOM si OuvreConnexionBase() alors si OuvreConnexionTOMOB() alors renvoyer Vrai fin fin faire Erreur("ERREUR OuvreConnexionsHF " + ExceptionInfo(errComplet) ) renvoyer Faux fin renvoyer Faux Procédure globale D_OuvreConnexionHFSQLLicence procédure D_OuvreConnexionHFSQLLicence(saMP est une chaîne ANSI) HChangeConnexion("*",LIB_DEBUG.gcnxD_ServeurLicence) HOuvreConnexion(LIB_DEBUG.gcnxD_ServeurLicence) //Déclaration Externe de tous les fichiers du répliqua saLst est une chaîne ANSI = HListeFichier(LIB_DEBUG.gcnxD_ServeurLicence) pour toute chaîne saFic de saLst séparée par RC si ChaîneOccurrence(saFic,"\")=0 alors si pas HPasse(ExtraitChaîne(saFic,1,"."),saMP) alors Erreur(HErreurInfo(hErrComplet)) fin si pas HDéclareExterne(saFic,ExtraitChaîne(saFic,1,"."),LIB_DEBUG.gcnxD_ServeurLicence) alors Erreur(HErreurInfo(hErrComplet)) fin fin fin Procédure globale D_RecupIdentiteLicence 12/08/2026 Omika_S_Comm_DEV 235 Partie 3 › Collection de procédures › LIB_DEBUG › Code procédure D_RecupIdentiteLicence() TableauSupprimeTout(LIB_DEBUG.gtbaListeUsers) pstUnId est un ST_MOB_IDENTITE dynamique saReqLicences est une chaîne ANSI = [ SELECT * FROM Licence INNER JOIN ClientBase ON ClientBase.CL_PKID = Licence.LI_IDClient WHERE LI_Active = 1 AND LI_IDCollaborateur > 0 AND LI_IDUser > 0 ] sdLicences est une Source de Données saCle est une chaîne ANSI si pas HExécuteRequêteSQL(sdLicences,LIB_DEBUG.gcnxD_ServeurLicence,hRequêteDéfaut,saReqLicences) alors Erreur("Erreur D_RecupIdentiteLicence " + HErreurInfo(hErrComplet)) sinon pour tout sdLicences pstUnId = allouer un ST_MOB_IDENTITE pstUnId.saLicence = sdLicences.LI_Numero pstUnId.saIdMob = sdLicences.LI_IDMobile pstUnId.nIdUser = sdLicences.LI_IDUser pstUnId.saNumPort = LIB_DEBUG.gsaPortWSCOM pstUnId.saBaseData = LIB_DEBUG.gsaServeurWSCOM pstUnId.saBaseSync = LIB_DEBUG.gsaServeurWSCOM pstUnId.saIdClient = sdLicences.LI_IDClient saCle = SansEspace(sdLicences.LI_UserNom,sscExtérieur)+" "+SansEspace(sdLicences.LI_UserPrenom, sscExtérieur)+" "+sdLicences.CL_Nom LIB_DEBUG.gtbaListeUsers[saCle] = pstUnId fin fin renvoyer Vrai 12/08/2026 Omika_S_Comm_DEV 236 Partie 4 › Table des matières Partie 4 Table des matières | 12/08/2026 | Omika_S_Comm_DEV | 237 | | ---------- | ---------------- | --- | Partie 4 › Table des matières Projet Omika_S_Comm_DEV Partie 1 Projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Informations générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Liste des éléments du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Erreurs, warnings et informations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Statistiques sur le code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Composants créés depuis le projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Composants inclus dans le projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Partie 2 Fenêtre WINDEV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 FEN_Connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Image 11 Informations générales 11 Informations sur les champs 13 Code 41 Code des champs 41 Procédures 44 FEN_Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Image 45 Informations générales 47 Informations sur les champs 49 Code 143 Code des champs 144 Procédures 153 Partie 3 Collection de procédures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 COL_GestionDuLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Code 163 LIB_Globales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Code 166 LIB_ParametrageMobiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Code 167 LIB_Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Code 168 LIB_InterfaceComposant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Code 234 LIB_DEBUG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 12/08/2026 Omika_S_Comm_DEV 238 Partie 4 › Table des matières Code 235 | 12/08/2026 | Omika_S_Comm_DEV | 239 | | ---------- | ---------------- | --- |