379 KiB
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é : <indiquez ici ce que fait la procédure> Syntaxe : BoucleService () Paramètres : Aucun Valeur de retour : Aucune Exemple : Indiquez ici un exemple d'utilisation. 1 - Collections de procédures navigateur accessibles <Pas de procédure navigateur disponible dans ce composant> 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 <Pas de fenêtre disponible dans ce composant> 4 - Etats accessibles <Pas d'état disponible dans ce composant> 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 | <Défaut> | ||||
| Grisé : Utiliser couleur perso. | Non | ||||
| Grisé : Algo pour images | <Défaut> | ||||
| 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 | <Défaut> | ||||
| Grisé : Utiliser couleur perso. | Non | ||||
| Grisé : Algo pour images | <Défaut> | ||||
| 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 suNomFic5 à 13<saMax alors fSupprime(suNomCompletFic,frLectureSeule) fin fin faire TraceLog("ERREUR dans PurgeDesFichiersLog : " + ExceptionInfo(errComplet),cTrace_Exception) fin Procédure globale TraceLog procédure TraceLog(local saMSG est une chaîne ANSI, nNiveauTrace est un entier=cTrace_Info) SectionCritiqueDébut("TRACE") si nNiveauTrace >= 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é : <indiquez ici ce que fait la procédure> // 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é : <indiquez ici ce que fait la procédure> // Syntaxe : //CB_Ajout_TOSRV (, , ) // // Paramètres : // sNomFichier : <indiquez ici le rôle de sNomFichier> // nNumRec : <indiquez ici le rôle de nNumRec> // nAction : <indiquez ici le rôle de 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é : <indiquez ici ce que fait la procédure> // Syntaxe : //[ <Résultat> = ] CreaCompteur (<P_CPTCode>) // // Paramètres : // P_CPTCode : <indiquez ici le rôle de P_CPTCode> // Valeur de retour : // multi-valeur : // Aucune // // Exemple : // Indiquez ici un exemple d'utilisation. // // sMSGErr (chaîne ANSI) : <indiquez ici le rôle de sMSGErr> 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é : <indiquez ici ce que fait la procédure> // Syntaxe : //DecodeRepertoire ( est chaîne, est tableau) // // Paramètres : // sCheminEtFormat (chaîne ANSI) : <indiquez ici le rôle de sCheminEtFormat> // tabRep (tableau) : <indiquez ici le rôle de tabRep> // 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]<Adresse.AD_Ligne_4|AD_PKID> -
[LI_IDAdresse]<Adresse.AD_Ville|AD_PKID> ##INTERV?
//[IN_DateIntervention]{..Année} [IN_DateIntervention]{..Mois}
[DO_IDTypeDossier]<ParametreMetier.PA_Libelle|PA_PKID> [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é : <indiquez ici ce que fait la procédure> // 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é : <indiquez ici ce que fait la procédure> // Syntaxe : //[ <Résultat> = ] DonneDroitCategorieDoc ( est entier sur 8 octets) // // Paramètres : // nIDCategorie (entier sur 8 octets) : <indiquez ici le rôle de clModele> // 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é : <indiquez ici ce que fait la procédure> // 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é : <indiquez ici ce que fait la procédure> // Syntaxe : //[ <Résultat> = ] 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 = s1i 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é : <indiquez ici ce que fait la procédure> // Syntaxe : //[ <Résultat> = ] 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é : <indiquez ici ce que fait la procédure> // 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é : <indiquez ici ce que fait la procédure> // Syntaxe : //[ <Résultat> = ] RemplaceRubriqueCheminFichier ( est entier, est tableau, <sreqsql
est source de données, est chaîne, est chaîne, est entier sur 8 octets) // // Paramètres : // nMode (entier) : <indiquez ici le rôle de nMode> // tabRep (tableau) : <indiquez ici le rôle de tabRep> // sreqsql (source de données) : <indiquez ici le rôle de sreqsql> // sFormatRepDoc (chaîne ANSI) : <indiquez ici le rôle de sFormatRepDoc> // sRepRacine (chaîne ANSI) : <indiquez ici le rôle de sRepRacine> // nIDCategorie (entier sur 8 octets) : <indiquez ici le rôle de nIDCategorie> // Valeur de retour : // chaîne ANSI : // Aucune // // Exemple : // Indiquez ici un exemple d'utilisation. // // sRepertoireFichier : <indiquez ici le rôle de sRepertoireFichier> // sRepRacine (chaîne ANSI) : <indiquez ici le rôle de sRepRacine> // sRepRacine (chaîne ANSI) : <indiquez ici le rôle de sRepRacine> 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é : <indiquez ici ce que fait la procédure> // Syntaxe : //[ <Résultat> = ] 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) : <indiquez ici le rôle de nInterID> // bEnLecture (booléen - valeur par défaut=0) : <indiquez ici le rôle de bEnLecture> // nIdCategorie (entier sur 8 octets - valeur par défaut=0) : <indiquez ici le rôle de sNomRep> // nIDDoc (entier sur 8 octets - valeur par défaut=0) : <indiquez ici le rôle de nIDDoc> // 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]<Adresse.AD_Ligne_4|AD_PKID> - [LI_IDAdresse]<Adresse.AD_Ville|AD_PKID> ##INTERV?[IN_DateIntervention]{..Année} [IN_DateIntervention]{..Mois} [DO_IDTypeDossier]<ParametreMetier.PA_Libelle|PA_PKID> [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é : <indiquez ici ce que fait la procédure> // Syntaxe : //[ <Résultat> = ] 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é : <indiquez ici ce que fait la procédure> // Syntaxe : //[ <Résultat> = ] 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(1060100), 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(nNbSecondes100) //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 |
|---|