|
FOROS PROFESIONALES WINDEV, WEBDEV y WINDEV Mobile |
| | | | | |
| Rafraichissement d'une table fichier en réseau |
| Iniciado por johan, 28,ago. 2007 20:49 - 2 respuestas |
| |
| | | |
|
| |
| Publicado el 28,agosto 2007 - 20:49 |
bien le bonjour,
je souhaite qu'en cas d'effacement d'un enregistrement sur un poste, les tables fichiers des autres postes se rafraississent. Idem en cas d'ajout d'un enregistrement.
aucune idée...
merci pour vos réponses. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 28,agosto 2007 - 23:12 |
Principe : rafraichir l'affichage à chaque action sur le fichier // ========================================================= Soit une table fichier Table_CLIENTS reliée au fichier CLIENTS
//=============== Déclarations globales de Table_Clients:============= gfnNumTimer est un entier // Numéro du timer de rafraichissement gfnInterRaf est un entier = 1500 // Temps entre 2 rafraichissements en centièmes gfbGererRafAuto est un booléen = Faux // Gestion du rafraîchissement gnNumVersionFichier est un entier = HVersion(CLIENTS) // Version du fichier (pour rafraîchissement)
// Activation du rafraichissement automatique GererRafraichissement(Vrai) // procédure locale // ============================================================ // PROCEDURES LOCALES =========================================== // ============================================================ // Gestion du rafraichissement automatique PROCEDURE GererRafraichissement(bRaffAuto=Faux)
// On mémorise si l'on doit gérer le rafraîchissement gfbGererRafAuto = bRaffAuto
// Est-ce qu'un timer est activé ? SI gfnNumTimer > 0 ALORS // Doit-on rafraichir en automatique ? SI gfbGererRafAuto = Vrai ALORS // Lancement du timer gfnNumTimer = TimerSys("Rafraichir",gfnInterRaf) SINON // Arrêt du timer FinTimerSys(gfnNumTimer) gfnNumTimer= 0 FIN SINON // Doit-on rafraichir en automatique ? SI gfbGererRafAuto = Vrai ALORS // Lancement du timer gfnNumTimer = TimerSys("Rafraichir",gfnInterRaf) FIN FIN // ============================================== // ================================================ // Méthode appelée par le timer de raffraichissement PROCEDURE Rafraichir() // Arrêt du timer FinTimerSys(gfnNumTimer)
// Si l'utilisateur n'est pas en cours de saisie SI TableSaisieEnCours(Table)=Faux ALORS // Si l'utilisateur n'a pas fait de modifications // Est-ce que le fichier a été modifié ? SI gnNumVersionFichier < HVersion(CLIENTS) ALORS // On mémorise le numéro de version du fichier gnNumVersionFichier = HVersion(CLIENTS)
// Mise à jour de l'affichage de la table TableAffiche(Table,taCourantBandeau) // Autres champs liés ? QUAND EXCEPTION DANS ExécuteTraitement("RADAffiche",trtProcédure) FAIRE // Exception correspondant à une procédure inconnue ? SI ExceptionInfo(errCode)<> 1027 ALORS EXCEPTION FIN FIN FIN
// On relance le timer SI gfbGererRafAuto = Vrai ALORS gfnNumTimer = TimerSys("Rafraichir",gfnInterRaf) FIN // ====================================================== //===================================================== // Gestion du rafraichissement automatique PROCEDURE SuspendreRafraichissement(bSuspendre=Vrai)
// Suspendre le rafraichissement si celui-ci est géré ou le relancer SI bSuspendre = Vrai ALORS SI gfnNumTimer<>0 ALORS FinTimerSys(gfnNumTimer)// on arrête le timer en cours gfnNumTimer = 0 SINON // On doit réactiver le timer si celui-ci est géré SI gfbGererRafAuto=Vrai ALORS SI gfnNumTimer<>0 ALORS FinTimerSys(gfnNumTimer)// on arrête le timer en cours gfnNumTimer = TimerSys("Rafraichir",gfnInterRaf) FIN FIN // ============================================================= // ============================================================ //========================================================== // A chaque clic sur un bouton : Nouveau, Modifier, Supprimer on fait :
// On arrête le rafraichissement automatique de la fenêtre SuspendreRafraichissement(Vrai)
// traitement ....
// On relance le rafraichissement automatique de la fenêtre SuspendreRafraichissement(Faux) // ======= exemple de modif sur fichier Clients ================
// Si c'est la ligne de saisie/sélection, on ne peut pas la supprimer SI TableSelect(Table)>TableOccurrence(Table) ALORS Info("La ligne sélectionnée permet la saisie directe dans la table","Cette ligne ne peut être modifiée") RETOUR FIN
// rafraichissement de la table avant la modification // dans le cas où une modification à été faite sur un autre poste TableAffiche(Table,taCourantBandeau)
// On arrête le rafraichissement automatique de la fenêtre SuspendreRafraichissement(Vrai)
// ouverture de la fiche du fichier CLIENTS en mode modification SI Ouvre("Fiche_CLIENTS","Modif") ALORS // rafraichissement de la table si un enregistrement a été modifié TableAffiche(Table,taCourantBandeau) FIN // On relance le rafraichissement automatique de la fenêtre SuspendreRafraichissement(Faux)
//==================== FIN ================================
Ces codes sont copiées du RAD complet de Windev |
| |
| |
| | | |
|
| | |
| |
| Publicado el 01,septiembre 2020 - 12:24 |
Bonjour ! pour ceux qui veulent rafraîchissement de données sous réseau ou en mode client serveur HFSQL il existe une fonction qui gère tous cela le lien : que ce soit pour windev 20 a 24 : https://doc.pcsoft.fr/fr-FR/?1000022407&name=hsurveille_fonction&verdisp=200
HSurveille (Fonction) : Exemple // Lance la surveillance du fichier de données Commande // La procédure TraiteCommande est appelée pour tout ajout d'enregistrement dans le fichier de données
HSurveille(Commande, TraiteCommande, hNumEnrTous, hsAjout)
biensure si vous voulez gerer l'ajout la modification ainsi la suppression il suffit de metre :
HSurveille(Commande, TraiteCommande, hNumEnrTous, hsAjout+ hsModification + hsSuppression)
en suite il faut déclarer une procedure local juste apres pour faire les traitements necéssaires.
Bon Dev |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|