Cours WinDev fichier de données en PDF (Intermédiaire)
WinDev: Travailler avec un fichier de données. Guide pratique sur la création et la gestion d'un fichier HyperFileSQL (.fic) dans WinDev : analyse, génération, liaison IHM et opérations CRUD. Procédures et extraits de code pour concevoir des applications locales fiables, synchroniser des tables mémoire et produire des états imprimables.
🎯 Ce que vous allez apprendre
-
Configuration de l'environnement et accès HFSQL
Vérifier l'installation de WinDev, configurer l'accès HFSQL (paramètres de serveur pour le mode Client/Serveur) et définir les chemins de développement. Préparer
HSubstDirpour les chemins de données lors des tests locaux et valider les droits d'écriture sur le répertoire contenant les fichiers.fic. -
Gestionnaire d'analyse et génération
Comprendre le rôle de l'analyse WinDev pour décrire les fichiers et synchroniser la structure des rubriques avec l'IHM. Générer l'analyse et relancer la génération pour propager les modifications aux fenêtres et aux champs tout en préservant les index et les liaisons.
-
Création et configuration d'un fichier HyperFileSQL Classic
Choix du format HFSQL, définition des rubriques, identifiant automatique et clés. Créer le fichier Mouvement.fic avec des rubriques de type Date, Texte et Réel, et paramétrer l'identifiant pour garantir l'unicité des enregistrements.
-
Compatibilité HFSQL Classic & Client/Serveur
Principes de compatibilité entre HFSQL Classic (fichiers locaux) et HFSQL Client/Serveur : structure des rubriques transférable, différences sur la gestion des connexions, verrouillage et performance. Indications sur quand préférer le mode Client/Serveur (concurrence, montée en charge) et adaptations côté code et indexation.
-
Tables mémoire et liaison IHM
Concevoir une table mémoire en affichage vertical, associer colonnes aux rubriques et alimenter la table par programmation. Utiliser les fonctions de table (par ex.
TableAjouteLigne) pour juxtaposer les enregistrements physiques et les afficher dynamiquement. -
Opérations CRUD en WLanguage
Parcourir un fichier avec la boucle
Pour tout Mouvement, insérer avecHAjoute(Mouvement), rechercher et supprimer par identifiant puis synchroniser l'affichage. Implémenter les boutons Ajouter, Supprimer et Quitter avec les séquences d'accès fichier adéquates. -
Synchronisation et traitements réutilisables
Résoudre le décalage entre fichier physique et table mémoire en relançant des traitements existants via
ExécuteTraitement(depart,trtPriseFocus)ou en forçant un rechargement à la prise de focus. Synchroniser la structure des données après modification de l'analyse pour éviter les divergences IHM/fichier. -
Procédures locales et calculs métier
Créer des procédures (ex:
Calcsolde) pour scanner le fichier et calculer des agrégats (solde = débit – crédit). Distinguer procédures locales et globales et intégrer ces calculs dans l'IHM pour afficher un solde dynamique.
📑 Sommaire du document
- Introduction à HFSQL
- Création de l'analyse
- Manipulation des données (CRUD)
- États et Impressions
- Optimisation et Index
- Administration et visualisation
💡 Pourquoi choisir ce cours ?
Rédigé par Jean‑Luc Baptiste, le document suit une démarche opératoire : assistant de création, paramétrage de l'analyse, construction d'une IHM et extraits de code WLanguage pour chaque action courante. L'approche privilégie des procédures testées (création de fichier, indexation, synchronisation) et des séquences exploitables en environnement de développement WinDev afin de réduire le temps d'intégration et limiter les incohérences IHM/fichier.
👤 À qui s'adresse ce cours ?
- Public cible : développeurs et étudiants réalisant des applications locales sous WinDev (interfaces IHM, gestion de fichiers HFSQL, projets métiers) qui cherchent des procédures concrètes pour CRUD, affichage et impression d'états.
- Prérequis : connaissance des Cours WinDev Numéro 1 et 2, familiarité avec l'IDE WinDev (création de projet et fenêtres), notions de WLanguage et compréhension basique des concepts d'analyse et d'identifiants automatiques.
❓ Foire Aux Questions (FAQ)
Comment forcer la réactualisation d'une table mémoire après une insertion depuis une fenêtre de saisie ?
Exécuter au retour un traitement qui recharge la table (par ex. appeler le traitement de prise de focus via ExécuteTraitement(depart,trtPriseFocus)) ou relire le fichier avec une boucle Pour tout Mouvement pour rattacher les enregistrements à la table mémoire.
Quelle est la différence pratique entre procédure locale et procédure globale dans WinDev ?
Une procédure locale est visible uniquement par les objets de la fenêtre courante, utile pour des calculs UI comme Calcsolde. Une procédure globale est accessible depuis tout le projet, adaptée aux utilitaires réutilisables qui manipulent des fichiers HFSQL ou génèrent des états partagés.
Diagnostic et résolution des erreurs (70001, verrous)
- Erreur 70001 (accès fichier)
- Vérifier les droits d'accès sur le répertoire, l'existence du fichier
.ficet la cohérence des chemins (utiliserHSubstDiren test). Contrôler les permissions et relancer l'application après correction. - Fichier verrouillé par un autre processus
- Identifier le processus via le Centre de Contrôle HFSQL ou les outils système, libérer le verrou ou redémarrer le service HFSQL. En Client/Serveur, vérifier les connexions actives et les verrous transactionnels.
- Index corrompu
- Exécuter une réparation d'index depuis le Centre de Contrôle HFSQL ou WDMAP, puis réindexer. Sauvegarder les données avant toute opération corrective.
- Droits insuffisants
- Attribuer les droits d'écriture/lecture au compte exécutant l'application et vérifier les stratégies de sécurité du serveur HFSQL en mode Client/Serveur.
Administration avancée avec le Centre de Contrôle HFSQL
Le Centre de Contrôle HFSQL centralise la gestion des utilisateurs, des sauvegardes et des réplications en mode Client/Serveur. Il permet d'afficher les connexions actives, d'extraire des sauvegardes planifiées, d'exécuter des restaurations et de suivre les statistiques d'accès.
Gestion des utilisateurs : créer des comptes, affecter des rôles et restreindre l'accès aux bases en attribuant des droits de lecture/écriture distincts. Mettre en place des groupes métier (ex. opérateurs, administrateurs) et limiter l'étendue des actions (export, suppression, réparation).
Sauvegardes planifiées : définir des jobs de sauvegarde automatisés avec rétention, tester régulièrement les restaurations sur un environnement de préproduction et chiffrer les sauvegardes si les politiques de sécurité l'exigent. Documenter la procédure de restauration et conserver des logs de sauvegarde pour audit.
Administration et visualisation avec WDMAP
WDMAP facilite l'inspection physique des fichiers .fic : visualiser les rubriques, éditer ou exporter des enregistrements, et tester des corrections hors application. Pour un diagnostic rapide : afficher les index, lancer une réparation et exporter un échantillon CSV. Ces opérations aident à valider la structure et à isoler les problèmes avant de modifier le code applicatif.
Installation et Administration du Serveur HFSQL
Préparer l'infrastructure avant le déploiement réduit les risques opérationnels. Vérifier la compatibilité du serveur, la disponibilité des ports réseau et la configuration de stockage. Planifier l'architecture disque et la stratégie de sauvegarde en fonction du volume de données et du SLA attendu.
- Prérequis système : OS supporté par WinDev/HFSQL, espace disque adapté aux fichiers
.fic, droits administrateur pour l'installation. - Réseau : ports HFSQL ouverts, latence contrôlée entre clients et serveur, stratégie de firewall pour limiter les accès.
- Sécurité et maintenance : comptes de service dédiés, politique de sauvegarde régulière, surveillance des logs et plan de restauration.
- Mots-clés intégrés : base de données HFSQL, administration serveur, installation WinDev, maintenance
.fic.
Installation du moteur HFSQL
Installer le moteur HFSQL en mode service, choisir l'utilisateur système approprié et définir le répertoire de stockage des bases. Configurer les paramètres réseau (ports, mode SSL si disponible) et les limites de connection simultanée. Vérifier les permissions sur les répertoires de données et effectuer une sauvegarde initiale après configuration. Tester les connexions clients depuis l'IDE WinDev et valider les performances de base avant tout passage en production.
Cas d'usage : Migration HFSQL Classic vers Client/Serveur
La migration de HFSQL Classic vers HFSQL Client/Serveur s'envisage pour répondre à une montée en charge ou à des besoins de concurrence. Étapes typiques : audit des fichiers existants, estimation du nombre d'utilisateurs concurrents, préparation d'un environnement de test, migration de l'analyse et des index, validation des procédures d'accès et adaptation des points d'entrée réseau. Après migration, surveiller les verrous, optimiser les index et vérifier les performances des requêtes. Prévoir des tests de montée en charge et une période de basculement avec possibilité de retour en arrière si des anomalies apparaissent.
Dépannage : Erreurs d'accès et corruption d'index (.fic)
Diagnostiquer en deux étapes : d'abord identifier si le problème est d'origine système (permissions, verrou OS) ou applicative (erreur de code, mauvaise gestion des transactions). En cas de corruption d'index, exporter un échantillon, réparer via WDMAP ou le Centre de Contrôle HFSQL, puis réindexer et tester sur un environnement de préproduction. Conserver des sauvegardes incrémentales pour permettre un retour en arrière rapide.
Astuce pour la gestion des fichiers physiques : utiliser fCopieFichier pour copier ou renommer des fichiers .fic lors d'opérations de maintenance (par ex. création d'archives avant réparation). Associer cette méthode à un remplacement de chemin via HSubstDir pour tester des jeux de données alternatifs sans impacter l'environnement de production.
Conseils d'accessibilité et bonnes pratiques
- Nommer clairement les champs et les boutons (libellés visibles) et fournir des
aria-labelpertinents pour les contrôles personnalisés. - Gérer l'ordre de tabulation et conserver le focus après un traitement afin de faciliter la navigation clavier.
- Fournir des messages d'erreur lisibles, des indicateurs de chargement et des alternatives clavier pour les interactions complexes.
- Vérifier le contraste des couleurs, proposer des raccourcis clavier et documenter les comportements accessibles pour les lecteurs d'écran.
Exemple minimal (WLanguage)
Pour tout Mouvement
// ajouter chaque enregistrement à la table mémoire
TableAjouteLigne(MaTable, Mouvement)
FIN
// insertion dans le fichier
HAjoute(Mouvement)