CorpRH Pro — WinDev Express | Projet 09 : Gestion des Employés
WINDEV EXPRESS
PROJET 09 — GESTION DES EMPLOYÉS
Guide complet adapté à WinDev Express (Version Gratuite)
⚠️ VERSION ADAPTÉE — Sans états imprimables — Compatible WinDev Express
Élément Détail
Application CorpRH Pro — Gestion RH
Version WinDev Express (Gratuite et illimitée)
Fenêtres 5 fenêtres (adaptées aux limites Express)
Base de données HFSQL Classic (inclus dans Express)
États imprimables Remplacés par affichage écran (compatible Express)
Code WLangage 100% compatible Express
Guide WinDev Express — Projet 09 — Version gratuite et illimitée
CorpRH Pro — WinDev Express | Projet 09 : Gestion des Employés
CE QUI EST ADAPTÉ POUR WINDEV EXPRESS
Fonctionnalité Version complète WinDev Express Solution adaptée
Gabarit de fenêtre ✅ Oui ❌ Limité On crée le design manuellement
dans chaque fenêtre
États imprimables ✅ Complet ❌ Très limité On remplace par une fenêtre
d'aperçu à l'écran
Requêtes jointure ✅ Oui ⚠️Limité On fait les jointures par code
WLangage
HFSQL ✅ Oui ✅ Oui Aucun changement nécessaire
Code WLangage ✅ Oui ✅ Oui Aucun changement nécessaire
Tables liées ✅ Oui ✅ Oui Aucun changement nécessaire
Exécutable .exe ✅ Oui ❌ Non On teste en mode débogage F5
❌ Les états imprimables (impression papier) ne sont pas disponibles dans WinDev Express. On les
remplace par des fenêtres d'aperçu à l'écran qui montrent les mêmes informations.
✅ Tout le reste du projet (base de données, fenêtres, code WLangage, tables, listes) fonctionne
parfaitement dans WinDev Express.
ÉTAPE
Télécharger et Installer WinDev Express
1
1.1 — Télécharger
1. Ouvre ton navigateur internet
2. [Link] sur :
3. Clique sur "Téléchargements" dans le menu
4. Cherche "WinDev Express" — clique sur "Télécharger gratuitement"
5. Remplis le formulaire : Nom, Prénom, Email, Pays → Valide
6. Ouvre ton email → clique le lien reçu de PC SOFT
7. Le fichier téléchargé fait environ 3 à 5 Go — attends la fin complète
1.2 — Installer
8. Double-clique sur le fichier téléchargé
9. Clique "Suivant" à chaque étape
10. Accepte les conditions d'utilisation
11. Clique "Installer" — attends 15 à 30 minutes
12. WinDev Express est installé !
1.3 — Premier lancement
13. Double-clique sur l'icône WinDev Express sur ton bureau
14. Il te demande d'activer → clique "Utiliser WinDev Express gratuitement"
15. L'environnement WinDev s'ouvre
✅ WinDev Express est gratuit et illimité dans le temps. Tu peux travailler dessus autant que tu veux.
Guide WinDev Express — Projet 09 — Version gratuite et illimitée
CorpRH Pro — WinDev Express | Projet 09 : Gestion des Employés
ÉTAPE
Créer le Projet
2
16. Dans l'écran d'accueil de WinDev, clique "Nouveau projet"
17. Choisis "Application Windows" → clique Suivant
18. Remplis les informations :
Champ Valeur exacte à saisir
Nom du projet Projet09_GestionEmployes
Répertoire C:\WinDev\Projets\ (ou un dossier facile à retrouver)
Type d'application Application Windows
Langue Français
19. Clique "Terminer"
✅ Le tableau de bord du projet s'ouvre. Tu vois les onglets : Fenêtres, Analyse, États. C'est bon !
⚠️ Dans WinDev Express, ne crée pas plus de 5 à 6 fenêtres pour éviter les blocages. Notre projet en a
exactement 5 — c'est parfait.
ÉTAPE
Créer l'Analyse (Base de données HFSQL)
3
L'analyse c'est le schéma de ta base de données. On va créer 3 tables.
3.1 — Ouvrir l'éditeur d'analyse
20. Dans le tableau de bord, clique sur l'onglet "Analyse"
21. Clique "Créer l'analyse du projet"
22. Nom : Analyse_GestionEmployes → OK
3.2 — Créer la table SERVICES (en premier)
23. Clic droit dans l'éditeur → "Nouveau fichier de données"
24. Nom du fichier : SERVICES → Suivant
25. Ajoute ces rubriques une par une :
Rubrique Type Taille Options importantes
ID_Service Entier — ✅ Clé unique ✅ Identifiant automatique
Nom_Service Chaîne 80 —
Responsable Chaîne 100 —
26. Clique Terminer
3.3 — Créer la table EMPLOYES
27. Clic droit → "Nouveau fichier de données" → Nom : EMPLOYES → Suivant
28. Ajoute ces rubriques :
Guide WinDev Express — Projet 09 — Version gratuite et illimitée
CorpRH Pro — WinDev Express | Projet 09 : Gestion des Employés
Rubrique Type Taille Options
ID_Emp Entier — ✅ Clé unique ✅ Identifiant automatique
Nom Chaîne 60 —
Prenom Chaîne 60 —
Poste Chaîne 80 —
ID_Service Entier — Clé étrangère (on lie après)
Salaire Réel 10,2 —
DateEmbauche Date — —
29. Clique Terminer
3.4 — Créer la table CONGES
30. Clic droit → "Nouveau fichier de données" → Nom : CONGES → Suivant
31. Ajoute ces rubriques :
Rubrique Type Taille Options
ID_Conge Entier — ✅ Clé unique ✅ Identifiant automatique
ID_Emp Entier — Clé étrangère (on lie après)
Type Chaîne 50 Ex : Annuel, Maladie, Sans solde
DateDebut Date — —
DateFin Date — —
Nb_Jours Entier — —
Statut Chaîne 20 Ex : En attente, Approuvé, Refusé
32. Clique Terminer
3.5 — Dessiner les liaisons entre les tables
33. Dans la barre d'outils de l'analyse, clique sur l'outil "Liaison" (icône flèche)
34. Liaison 1 — SERVICES vers EMPLOYES :
• Clique sur la table SERVICES
• Glisse la souris vers la table EMPLOYES
• Cardinalité gauche : 1,1 — Cardinalité droite : 0,N
• Rubriques liées : ID_Service ↔ ID_Service → OK
35. Liaison 2 — EMPLOYES vers CONGES :
• Clique sur la table EMPLOYES
• Glisse vers la table CONGES
• Cardinalité gauche : 1,1 — Cardinalité droite : 0,N
• Rubriques liées : ID_Emp ↔ ID_Emp → OK
3.6 — Générer l'analyse
36. Appuie sur la touche F5 du clavier
37. WinDev génère les fichiers physiques de la base
✅ Si tu vois le message "Génération terminée" — parfait ! Passe à l'étape suivante.
⚠️ Si WinDev te demande de mettre à jour les fichiers existants → clique OUI à tout.
Guide WinDev Express — Projet 09 — Version gratuite et illimitée
CorpRH Pro — WinDev Express | Projet 09 : Gestion des Employés
ÉTAPE
Créer les 5 Fenêtres
4
Dans WinDev Express, on crée 5 fenêtres (sans gabarit — on fait le design manuellement).
Ordre Nom fenêtre Rôle Priorité
1 FEN_ACCUEIL Menu principal + statistiques Créer en premier
2 FEN_SERVICES Gérer les services Simple — bon pour débuter
3 FEN_EMPLOYE_FORM Formulaire ajout/modification Modale — créer avant
FEN_EMPLOYES
4 FEN_EMPLOYES Liste de tous les employés Table principale
5 FEN_CONGES Demande congé + solde + Tout en un pour Express
recherche
⚠️ Dans WinDev Express : les états imprimables sont remplacés par la fenêtre FEN_CONGES qui
affiche tout à l'écran.
FENÊTRE 1 — FEN_ACCUEIL
Comment créer la fenêtre
38. Menu Fichier → Nouveau → Fenêtre
39. Choisis "Fenêtre classique" (pas de gabarit dans Express)
40. Nom : FEN_ACCUEIL → OK
41. Taille recommandée : 900 × 600 pixels
Champs à poser sur la fenêtre
Nom du champ Type WinDev Texte affiché Position
LIB_Titre Libellé CorpRH Pro — Gestion des En haut, centré, grand
Employés
LIB_Date Libellé (vide — rempli par code) Coin haut droite
SAI_NbEmployes Saisie non modifiable 0 Zone statistiques
SAI_NbServices Saisie non modifiable 0 Zone statistiques
SAI_NbCongesAttente Saisie non modifiable 0 Zone statistiques
BTN_Employes Bouton 👥 Gérer les Employés Centre gauche
BTN_Services Bouton 🏢 Gérer les Services Centre milieu
BTN_Conges Bouton 📅 Congés & Recherche Centre droite
BTN_Quitter Bouton ❌ Quitter En bas
Code — Événement Initialisation de la fenêtre
Double-clique sur la fenêtre (zone vide) → onglet Initialisation → colle ce code :
// Afficher la date du jour
LIB_Date = "Aujourd'hui : " + DateVersChaîne(DateDuJour(), "JJ/MM/AAAA")
// Compter et afficher les statistiques
SAI_NbEmployes = HCompte(EMPLOYES)
SAI_NbServices = HCompte(SERVICES)
// Compter les congés en attente
HFiltre(CONGES, "Statut = 'En attente'")
SAI_NbCongesAttente = HCompte(CONGES)
Guide WinDev Express — Projet 09 — Version gratuite et illimitée
CorpRH Pro — WinDev Express | Projet 09 : Gestion des Employés
HFiltre(CONGES, "")
Code des boutons
// BTN_Employes — événement Clic
OuvreFenêtre(FEN_EMPLOYES)
// BTN_Services — événement Clic
OuvreFenêtre(FEN_SERVICES)
// BTN_Conges — événement Clic
OuvreFenêtre(FEN_CONGES)
// BTN_Quitter — événement Clic
SI OuiNon("Voulez-vous quitter l'application ?") = Oui ALORS
FermeApplication()
FIN
Guide WinDev Express — Projet 09 — Version gratuite et illimitée
CorpRH Pro — WinDev Express | Projet 09 : Gestion des Employés
FENÊTRE 2 — FEN_SERVICES
Comment créer la fenêtre
42. Fichier → Nouveau → Fenêtre classique
43. Nom : FEN_SERVICES → OK
44. Taille : 800 × 500 pixels
Champs à poser
Nom Type Description
TABLE_Services Table liée à Affiche tous les services
SERVICES
SAI_NomService Saisie Saisir le nom du service
SAI_Responsable Saisie Saisir le responsable
BTN_Ajouter Bouton Ajouter le service saisi
BTN_Modifier Bouton Modifier le service sélectionné
BTN_Supprimer Bouton Supprimer le service sélectionné
BTN_Fermer Bouton Fermer la fenêtre
⚠️ Pour lier TABLE_Services : Double-clique → Contenu → Source = Fichier → SERVICES → ajoute
colonnes : ID_Service, Nom_Service, Responsable
Code Initialisation
TABLE_Services.Affiche(taInit)
Code BTN_Ajouter
// Vérifier que les champs sont remplis
SI SAI_NomService = "" ALORS
Erreur("Le nom du service est obligatoire.")
RETOUR
FIN
// Ajouter dans la base
SERVICES.Nom_Service = SAI_NomService
[Link] = SAI_Responsable
HAjoute(SERVICES)
// Vider les champs et rafraîchir
SAI_NomService = ""
SAI_Responsable = ""
TABLE_Services.Affiche(taInit)
Info("Service ajouté avec succès !")
Code BTN_Modifier
nLigne est un entier = TABLE_Services
SI nLigne = -1 ALORS
Erreur("Sélectionnez un service dans la liste.")
RETOUR
FIN
SI SAI_NomService = "" ALORS
Erreur("Saisissez le nouveau nom.")
RETOUR
FIN
nID est un entier = TABLE_Services.ID_Service[nLigne]
Guide WinDev Express — Projet 09 — Version gratuite et illimitée
CorpRH Pro — WinDev Express | Projet 09 : Gestion des Employés
HLit(SERVICES, ID_Service, nID)
SERVICES.Nom_Service = SAI_NomService
[Link] = SAI_Responsable
HModifie(SERVICES)
TABLE_Services.Affiche(taInit)
Info("Service modifié avec succès !")
Code BTN_Supprimer
nLigne est un entier = TABLE_Services
SI nLigne = -1 ALORS RETOUR FIN
nID est un entier = TABLE_Services.ID_Service[nLigne]
// Vérifier qu'aucun employé n'utilise ce service
HFiltre(EMPLOYES, "ID_Service = " + nID)
SI HCompte(EMPLOYES) > 0 ALORS
Erreur("Ce service a des employés. Impossible de supprimer.")
HFiltre(EMPLOYES, "")
RETOUR
FIN
HFiltre(EMPLOYES, "")
SI OuiNon("Supprimer ce service ?") = Oui ALORS
HSupprime(SERVICES, nID)
TABLE_Services.Affiche(taInit)
FIN
Code TABLE_Services — événement Clic sur une ligne
Quand l'utilisateur clique sur un service, les champs se remplissent automatiquement :
nLigne est un entier = TABLE_Services
SI nLigne <> -1 ALORS
SAI_NomService = TABLE_Services.Nom_Service[nLigne]
SAI_Responsable = TABLE_Services.Responsable[nLigne]
FIN
Code BTN_Fermer
FermeFenêtre()
Guide WinDev Express — Projet 09 — Version gratuite et illimitée
CorpRH Pro — WinDev Express | Projet 09 : Gestion des Employés
FENÊTRE 3 — FEN_EMPLOYE_FORM (Formulaire modal)
Cette fenêtre s'ouvre pour ajouter ou modifier un employé. Elle reçoit un paramètre ID.
Comment créer la fenêtre
45. Fichier → Nouveau → Fenêtre classique
46. Nom : FEN_EMPLOYE_FORM → OK
47. Taille : 500 × 400 pixels
48. Dans les propriétés de la fenêtre → Style → coche "Fenêtre modale"
Champs à poser
Nom Type Description
SAI_Nom Saisie Nom de l'employé
SAI_Prenom Saisie Prénom de l'employé
SAI_Poste Saisie Poste occupé
LST_Service Liste déroulante Service de l'employé
SAI_Salaire Saisie numérique Salaire en FCFA
SAI_DateEmbauche Saisie de type Date Date d'entrée
BTN_Enregistrer Bouton Sauvegarder
BTN_Annuler Bouton Annuler et fermer
⚠️ Dans les Déclarations globales de FEN_EMPLOYE_FORM, ajoute : gnID est un entier
Code Initialisation (avec paramètre pnID)
PROCÉDURE FIN_INIT(pnID est un entier)
gnID = pnID
// Remplir la liste des services
LST_Service = ""
HLitPremier(SERVICES, ID_Service)
TANTQUE PAS HEnDehors(SERVICES)
LST_Service.AjouteLigne(SERVICES.Nom_Service, SERVICES.ID_Service)
HLitSuivant(SERVICES, ID_Service)
FIN
SI pnID = -1 ALORS
// Mode AJOUT
Titre = "Ajouter un employé"
SAI_DateEmbauche = DateDuJour()
SINON
// Mode MODIFICATION — charger les données
Titre = "Modifier un employé"
HLit(EMPLOYES, ID_Emp, pnID)
SAI_Nom = [Link]
SAI_Prenom = [Link]
SAI_Poste = [Link]
SAI_Salaire = [Link]
SAI_DateEmbauche = [Link]
// Sélectionner le bon service dans la liste
LST_Service = ListeChercheValeur(LST_Service, 2, EMPLOYES.ID_Service)
FIN
Code BTN_Enregistrer
// Vérifications obligatoires
SI SAI_Nom = "" ALORS Erreur("Nom obligatoire.") : RETOUR FIN
Guide WinDev Express — Projet 09 — Version gratuite et illimitée
CorpRH Pro — WinDev Express | Projet 09 : Gestion des Employés
SI SAI_Prenom = "" ALORS Erreur("Prénom obligatoire.") : RETOUR FIN
SI SAI_Poste = "" ALORS Erreur("Poste obligatoire.") : RETOUR FIN
SI LST_Service = -1 ALORS Erreur("Choisissez un service.") : RETOUR FIN
SI SAI_Salaire <= 0 ALORS Erreur("Salaire invalide.") : RETOUR FIN
// Récupérer l'ID du service sélectionné
nIDService est un entier = ListeValeurAssociée(LST_Service, LST_Service)
SI gnID = -1 ALORS
// AJOUT d'un nouvel employé
[Link] = SAI_Nom
[Link] = SAI_Prenom
[Link] = SAI_Poste
EMPLOYES.ID_Service = nIDService
[Link] = SAI_Salaire
[Link] = SAI_DateEmbauche
HAjoute(EMPLOYES)
Info("Employé ajouté avec succès !")
SINON
// MODIFICATION de l'employé existant
HLit(EMPLOYES, ID_Emp, gnID)
[Link] = SAI_Nom
[Link] = SAI_Prenom
[Link] = SAI_Poste
EMPLOYES.ID_Service = nIDService
[Link] = SAI_Salaire
[Link] = SAI_DateEmbauche
HModifie(EMPLOYES)
Info("Employé modifié avec succès !")
FIN
FermeFenêtre()
Code BTN_Annuler
FermeFenêtre()
Guide WinDev Express — Projet 09 — Version gratuite et illimitée
CorpRH Pro — WinDev Express | Projet 09 : Gestion des Employés
FENÊTRE 4 — FEN_EMPLOYES
Comment créer la fenêtre
49. Fichier → Nouveau → Fenêtre classique
50. Nom : FEN_EMPLOYES → OK
51. Taille : 1000 × 600 pixels
Champs à poser
Nom Type Description
SAI_Recherche Saisie Recherche en temps réel par nom
TABLE_Employes Table mémoire Liste des employés (remplie par code)
BTN_Ajouter Bouton Ouvre FEN_EMPLOYE_FORM en mode ajout
BTN_Modifier Bouton Ouvre FEN_EMPLOYE_FORM pour modifier
BTN_Supprimer Bouton Supprime l'employé sélectionné
BTN_Fermer Bouton Ferme la fenêtre
⚠️ TABLE_Employes est une table MÉMOIRE (pas liée directement). On la remplit par code pour éviter
les problèmes de jointure dans Express.
Colonnes à ajouter manuellement dans TABLE_Employes : ID_Emp | Nom | Prénom | Poste | Service |
Salaire | Date embauche
Code Initialisation
// Charger tous les employés au démarrage
ChargerEmployes("")
Procédure locale ChargerEmployes
Crée une procédure locale dans la fenêtre (menu Fenêtre → Procédures locales → Nouveau) :
PROCÉDURE LOCALE ChargerEmployes(sFiltreNom est une chaîne)
TABLE_Employes = "" // Vider la table
HLitPremier(EMPLOYES, Nom)
TANTQUE PAS HEnDehors(EMPLOYES)
// Appliquer le filtre si nécessaire
SI sFiltreNom = "" OU [Link] CONTIENT sFiltreNom
OU [Link] CONTIENT sFiltreNom ALORS
// Récupérer le nom du service
HLit(SERVICES, ID_Service, EMPLOYES.ID_Service)
sService est une chaîne = SERVICES.Nom_Service
// Ajouter la ligne dans la table
TABLE_Employes.AjouteLigne(
EMPLOYES.ID_Emp,
[Link],
[Link],
[Link],
sService,
[Link],
DateVersChaîne([Link], "JJ/MM/AAAA")
)
FIN
HLitSuivant(EMPLOYES, Nom)
FIN
Guide WinDev Express — Projet 09 — Version gratuite et illimitée
CorpRH Pro — WinDev Express | Projet 09 : Gestion des Employés
Code SAI_Recherche — événement Modification
ChargerEmployes(SAI_Recherche)
Code BTN_Ajouter
OuvreFenêtreModale(FEN_EMPLOYE_FORM, -1)
ChargerEmployes(SAI_Recherche) // Rafraîchir la liste
Code BTN_Modifier
nLigne est un entier = TABLE_Employes
SI nLigne = -1 ALORS
Erreur("Sélectionnez un employé dans la liste.")
RETOUR
FIN
nID est un entier = TABLE_Employes.ID_Emp[nLigne]
OuvreFenêtreModale(FEN_EMPLOYE_FORM, nID)
ChargerEmployes(SAI_Recherche)
Code BTN_Supprimer
nLigne est un entier = TABLE_Employes
SI nLigne = -1 ALORS
Erreur("Sélectionnez un employé.")
RETOUR
FIN
nID est un entier = TABLE_Employes.ID_Emp[nLigne]
// Vérifier s'il a des congés enregistrés
HFiltre(CONGES, "ID_Emp = " + nID)
SI HCompte(CONGES) > 0 ALORS
Erreur("Cet employé a des congés. Impossible de supprimer.")
HFiltre(CONGES, "")
RETOUR
FIN
HFiltre(CONGES, "")
SI OuiNon("Supprimer cet employé ?") = Oui ALORS
HSupprime(EMPLOYES, nID)
ChargerEmployes(SAI_Recherche)
Info("Employé supprimé.")
FIN
Code BTN_Fermer
FermeFenêtre()
Guide WinDev Express — Projet 09 — Version gratuite et illimitée
CorpRH Pro — WinDev Express | Projet 09 : Gestion des Employés
FENÊTRE 5 — FEN_CONGES (Congés + Solde + Recherche)
Cette fenêtre unique remplace les états imprimables et la fenêtre de recherche. Elle contient 3 onglets.
Comment créer la fenêtre
52. Fichier → Nouveau → Fenêtre classique
53. Nom : FEN_CONGES → OK
54. Taille : 1000 × 650 pixels
55. Ajoute un champ Onglet avec 3 onglets :
• Onglet 1 : Demande de Congé
• Onglet 2 : Solde des Congés
• Onglet 3 : Recherche
Onglet 1 — Demande de Congé : champs à poser
Nom Type Description
LST_Employe Liste déroulante Sélectionner l'employé
LST_TypeConge Liste déroulante Type : Annuel, Maladie, Sans solde, Maternité
SAI_DateDebut Saisie Date Date de début
SAI_DateFin Saisie Date Date de fin
SAI_NbJours Saisie non modifiable Calculé automatiquement
SAI_SoldeActuel Saisie non modifiable Solde restant de l'employé
TABLE_CongesRecents Table mémoire Historique des demandes récentes
BTN_ValiderConge Bouton Enregistrer la demande
Onglet 2 — Solde : champs à poser
Nom Type Description
LST_FiltreService Liste déroulante Filtrer par service
TABLE_Soldes Table mémoire Colonnes : Nom, Prénom, Service, Consommés,
Restants
BTN_ActualiserSolde Bouton Recharger les soldes
Onglet 3 — Recherche : champs à poser
Nom Type Description
SAI_TermeRecherche Saisie Terme à rechercher
RAD_CritereRecherche Bouton radio Par nom / Par service
TABLE_Resultats Table mémoire Résultats de la recherche
BTN_Chercher Bouton Lancer la recherche
Code Initialisation de FEN_CONGES
// Onglet 1 — Remplir liste employés
LST_Employe = ""
HLitPremier(EMPLOYES, ID_Emp)
TANTQUE PAS HEnDehors(EMPLOYES)
LST_Employe.AjouteLigne([Link] + " " + [Link], EMPLOYES.ID_Emp)
HLitSuivant(EMPLOYES, ID_Emp)
FIN
// Onglet 1 — Types de congé
LST_TypeConge.AjouteLigne("Congé annuel")
Guide WinDev Express — Projet 09 — Version gratuite et illimitée
CorpRH Pro — WinDev Express | Projet 09 : Gestion des Employés
LST_TypeConge.AjouteLigne("Congé maladie")
LST_TypeConge.AjouteLigne("Congé sans solde")
LST_TypeConge.AjouteLigne("Congé maternité")
LST_TypeConge = 1
SAI_NbJours = 0
// Onglet 2 — Remplir filtre service
LST_FiltreService.AjouteLigne("Tous les services")
HLitPremier(SERVICES, ID_Service)
TANTQUE PAS HEnDehors(SERVICES)
LST_FiltreService.AjouteLigne(SERVICES.Nom_Service)
HLitSuivant(SERVICES, ID_Service)
FIN
LST_FiltreService = 1
// Charger les soldes et l'historique
ChargerSoldes("")
ChargerHistorique()
// Onglet 3 — Radio bouton par défaut
RAD_CritereRecherche = 1
Code SAI_DateDebut et SAI_DateFin — événement Modification
Colle ce code dans les 2 événements Modification :
SI SAI_DateDebut <> "" ET SAI_DateFin <> "" ALORS
nJours est un entier = SAI_DateFin - SAI_DateDebut + 1
SI nJours > 0 ALORS
SAI_NbJours = nJours
SINON
SAI_NbJours = 0
Erreur("La date de fin doit être après la date de début.")
FIN
FIN
Code LST_Employe — événement Sélection
// Afficher le solde actuel de l'employé sélectionné
nIDEmp est un entier = ListeValeurAssociée(LST_Employe, LST_Employe)
SI nIDEmp > 0 ALORS
nConsommes est un entier = 0
HFiltre(CONGES, "ID_Emp = " + nIDEmp + " ET Statut = 'Approuvé'")
HLitPremier(CONGES, ID_Conge)
TANTQUE PAS HEnDehors(CONGES)
nConsommes += CONGES.Nb_Jours
HLitSuivant(CONGES, ID_Conge)
FIN
HFiltre(CONGES, "")
SAI_SoldeActuel = 30 - nConsommes
FIN
Code BTN_ValiderConge
nIDEmp est un entier = ListeValeurAssociée(LST_Employe, LST_Employe)
SI nIDEmp <= 0 ALORS Erreur("Sélectionnez un employé.") : RETOUR FIN
SI SAI_DateDebut = "" OU SAI_DateFin = "" ALORS
Erreur("Les dates sont obligatoires.")
RETOUR
FIN
SI SAI_NbJours <= 0 ALORS Erreur("Dates invalides.") : RETOUR FIN
CONGES.ID_Emp = nIDEmp
[Link] = LST_TypeConge
[Link] = SAI_DateDebut
[Link] = SAI_DateFin
CONGES.Nb_Jours = SAI_NbJours
[Link] = "En attente"
Guide WinDev Express — Projet 09 — Version gratuite et illimitée
CorpRH Pro — WinDev Express | Projet 09 : Gestion des Employés
HAjoute(CONGES)
Info("Demande de congé enregistrée avec succès !")
ChargerHistorique() // Rafraîchir l'historique
ChargerSoldes("") // Rafraîchir les soldes
Procédure locale ChargerHistorique
PROCÉDURE LOCALE ChargerHistorique()
TABLE_CongesRecents = ""
HLitDernier(CONGES, ID_Conge) // Du plus récent au plus ancien
TANTQUE PAS HEnDehors(CONGES)
HLit(EMPLOYES, ID_Emp, CONGES.ID_Emp)
sNomEmp est une chaîne = [Link] + " " + [Link]
TABLE_CongesRecents.AjouteLigne(
sNomEmp,
[Link],
DateVersChaîne([Link], "JJ/MM/AAAA"),
DateVersChaîne([Link], "JJ/MM/AAAA"),
CONGES.Nb_Jours,
[Link]
)
HLitPrécédent(CONGES, ID_Conge)
FIN
Procédure locale ChargerSoldes
PROCÉDURE LOCALE ChargerSoldes(sFiltreService est une chaîne)
TABLE_Soldes = ""
nDroit est un entier = 30
HLitPremier(EMPLOYES, Nom)
TANTQUE PAS HEnDehors(EMPLOYES)
// Récupérer le service
HLit(SERVICES, ID_Service, EMPLOYES.ID_Service)
sService est une chaîne = SERVICES.Nom_Service
// Appliquer le filtre service si nécessaire
SI sFiltreService = "" OU sFiltreService = "Tous les services"
OU sService = sFiltreService ALORS
// Calculer les jours consommés
nConsommes est un entier = 0
HFiltre(CONGES, "ID_Emp = " + EMPLOYES.ID_Emp + " ET Statut = 'Approuvé'")
HLitPremier(CONGES, ID_Conge)
TANTQUE PAS HEnDehors(CONGES)
nConsommes += CONGES.Nb_Jours
HLitSuivant(CONGES, ID_Conge)
FIN
HFiltre(CONGES, "")
TABLE_Soldes.AjouteLigne(
[Link],
[Link],
sService,
nConsommes,
nDroit - nConsommes
)
FIN
HLitSuivant(EMPLOYES, Nom)
FIN
Code LST_FiltreService — événement Sélection
ChargerSoldes(LST_FiltreService)
Guide WinDev Express — Projet 09 — Version gratuite et illimitée
CorpRH Pro — WinDev Express | Projet 09 : Gestion des Employés
Code BTN_Chercher
sCherche est une chaîne = SAI_TermeRecherche
SI sCherche = "" ALORS Erreur("Saisissez un terme.") : RETOUR FIN
TABLE_Resultats = ""
HLitPremier(EMPLOYES, Nom)
TANTQUE PAS HEnDehors(EMPLOYES)
HLit(SERVICES, ID_Service, EMPLOYES.ID_Service)
bAjouter est un booléen = Faux
SELON RAD_CritereRecherche
CAS 1 : // Par nom
SI [Link] CONTIENT sCherche OU [Link] CONTIENT sCherche ALORS
bAjouter = Vrai
FIN
CAS 2 : // Par service
SI SERVICES.Nom_Service CONTIENT sCherche ALORS
bAjouter = Vrai
FIN
FIN
SI bAjouter ALORS
TABLE_Resultats.AjouteLigne(
[Link] + " " + [Link],
[Link],
SERVICES.Nom_Service,
[Link]
)
FIN
HLitSuivant(EMPLOYES, Nom)
FIN
SI TABLE_Resultats.Occurrence = 0 ALORS
Info("Aucun résultat pour : " + sCherche)
FIN
Guide WinDev Express — Projet 09 — Version gratuite et illimitée
CorpRH Pro — WinDev Express | Projet 09 : Gestion des Employés
ÉTAPE
Configurer et Tester l'Application
5
5.1 — Définir la fenêtre de démarrage
56. Menu Projet → Configuration des projets
57. Onglet "Exécution"
58. Fenêtre initiale → sélectionne FEN_ACCUEIL
59. Clique OK
5.2 — Lancer et tester
60. Appuie sur F5 pour lancer en mode test
61. L'application s'ouvre sur FEN_ACCUEIL
62. Commence par saisir des données dans cet ordre :
• Étape A : Ouvre FEN_SERVICES → Ajouter 3 services (Informatique, RH, Finance)
• Étape B : Ouvre FEN_EMPLOYES → Ajouter 5 employés dans ces services
• Étape C : Ouvre FEN_CONGES → Créer 3 demandes de congé
• Étape D : Vérifie les soldes dans l'onglet 2 de FEN_CONGES
• Étape E : Teste la recherche dans l'onglet 3
✅ Si les statistiques de FEN_ACCUEIL restent à 0 après ajout de données → ferme et réouvre
FEN_ACCUEIL pour rafraîchir.
ÉTAPE
Erreurs Fréquentes et Solutions
⚠
Erreur Cause Solution
"Fichier non trouvé" Analyse pas générée Appuie sur F5 dans l'éditeur d'analyse
Table toujours vide AjouteLigne manquant Vérifie la procédure ChargerEmployes()
"Variable gnID inconnue" Non déclarée Ajoute dans Déclarations globales : gnID est
un entier
Liste déroulante vide Pas de services créés Crée d'abord des services dans
FEN_SERVICES
Calcul jours incorrect Oubli du +1 Utilise : SAI_DateFin - SAI_DateDebut + 1
Erreur sur HFiltre Guillemets incorrects Vérifie les guillemets simples autour des
chaînes
"Impossible de supprimer" Contrainte de liaison Normal : supprime d'abord les congés, puis
l'employé
Solde affiche un chiffre Plus de 30j consommés Données de test incorrectes — vérifier les
négatif congés
✅ RÉCAPITULATIF FINAL — PROJET 09 EXPRESS
Élément Statut Description
Analyse HFSQL ✅ 3 tables SERVICES + EMPLOYES + CONGES avec
liaisons
FEN_ACCUEIL ✅ Tableau de bord Stats + navigation vers les 3 fenêtres
Guide WinDev Express — Projet 09 — Version gratuite et illimitée
CorpRH Pro — WinDev Express | Projet 09 : Gestion des Employés
Élément Statut Description
FEN_SERVICES ✅ CRUD complet Ajouter / Modifier / Supprimer services
FEN_EMPLOYE_FORM ✅ Formulaire Ajout et modification avec validations
modal
FEN_EMPLOYES ✅ Liste + Table mémoire + filtre par nom
recherche
FEN_CONGES ✅ 3 onglets Demande congé + Solde + Recherche
États imprimables ♻️Remplacés Aperçu à l'écran via TABLE_Soldes et
TABLE_CongesRecents
✅ Ton application CorpRH Pro est 100% compatible WinDev Express. Toutes les fonctionnalités sont
présentes !
Guide WinDev Express — Projet 09 — Version gratuite et illimitée