DOSSIER DE DEVELOPPEMENT DU PROJET Provision_D 18/02/2021 Partie 1 › Projet 18/

DOSSIER DE DEVELOPPEMENT DU PROJET Provision_D 18/02/2021 Partie 1 › Projet 18/02/2021 2 Provision_D Partie 1 Projet Partie 1 › Projet 18/02/2021 3 Provision_D Projet Code Initialisation de Provision_D // Les variables globales au projet (public) Vpj_AfficheID est un booléen Vpj_Indice est un entier Vpj_MessageSupprime est un booléen Vpj_AfficheID = Faux Vpj_MessageSupprime = Vrai Partie 2 › Fenêtre WINDEV 18/02/2021 4 Provision_D Partie 2 Fenêtre WINDEV Partie 2 › Fenêtre WINDEV 18/02/2021 5 Provision_D FEN_Compteur_liste Code Déclarations globales de FEN_Compteur_liste PROCÉDURE MaFenêtre() // déclaration des variables dispo partout dans la fenêtre car on est dans la declaration globale Vl_compteur est une entier sur 8 octets Vl_action est une chaîne Fin d'initialisation de FEN_Compteur_liste TA_Compteur.COL_CPT_ID..Visible=Vpj_AfficheID // la procedure permet d'afficher la liste des enregistrements pl_Afficheliste(Vl_compteur) DonneFocus(TA_Compteur) FEN_Compteur_liste Code des champs Clic sur BTN_Afficher SI TA_Compteur.COL_CPT_ID <> 0 ALORS Ouvre(FEN_Compteur_fiche,Vl_compteur,"AFFI") // la procedure permet d'afficher la liste des enregistrements pl_Afficheliste(Vl_compteur) DonneFocus(TA_Compteur) SINON Erreur("Il n'y a pas d'enregistrement sélectionné, Affichage impossible." ) FIN Clic sur BTN_Modifier SI TA_Compteur.COL_CPT_ID <> 0 ALORS Ouvre(FEN_Compteur_fiche,Vl_compteur,"MODI") pl_Afficheliste(Vl_compteur) DonneFocus(TA_Compteur) SINON Erreur("Il n'y a pas d'enregistrement sélectionné, Modification impossible." ) FIN Clic sur BTN_Nouveau Partie 2 › Fenêtre WINDEV › FEN_Compteur_liste › Code des champs 18/02/2021 6 Provision_D // ouvre la fenêtre compteur fiche Ouvre(FEN_Compteur_fiche,Vl_compteur,"NOUV") // la procedure permet d'afficher la liste des enregistrements pl_Afficheliste(Vl_compteur) // Donne le focus à un champ d'une fenêtre, d'une page à une fenêtre DonneFocus(TA_Compteur) Clic sur BTN_Supprimer SI TA_Compteur.COL_CPT_ID <> 0 ALORS Ouvre(FEN_Compteur_fiche, Vl_compteur,"SUPP") // la procedure permet d'afficher la liste des enregistrements pl_Afficheliste(Vl_compteur) DonneFocus(TA_Compteur) SINON Erreur("Il n'y a pas d'enregistrement sélectionné, Suppression impossible." ) FIN Sélection d'une ligne de TA_Compteur Vl_compteur = TA_Compteur.COL_CPT_ID Vpj_Indice = TableSelect(TA_Compteur) Bouton gauche double-clic (WM_LBUTTONDBLCLK) sur TA_Compteur Vl_compteur = TA_Compteur.COL_CPT_ID Vpj_Indice = TableSelect(TA_Compteur) SI Vl_action="CHOI" ALORS Ferme() FIN FEN_Compteur_liste Procédures Procédure locale pl_Afficheliste PROCÉDURE pl_Afficheliste(v_compteur) // Supprime toutes les lignes dans : •un champ Table mémoire, un champ Table hiérarchique mémoire, une table affichée dans un champ Combo. TableSupprimeTout(TA_Compteur) // HLibèreRequête(REQ_Compteur_liste) REQ_Compteur_liste.P_CP_Actif=Null // Déclare une requête au moteur HFSQL et exécute cette requête HExécuteRequête(REQ_Compteur_liste) SI ErreurDétectée() ALORS Erreur() ; RETOUR // Affichage FichierVersTableMémoire(TA_Compteur,REQ_Compteur_liste) Partie 2 › Fenêtre WINDEV › FEN_Compteur_liste › Procédures 18/02/2021 7 Provision_D // // Dé-sélectionne les lignes dans le champ Table "TA_Compteur" TableSelectMoins(TA_Compteur) // si indice =0 alors retour SI Vpj_Indice=0 ALORS RETOUR SINON // Se place dans le tableau sur la valeur POUR TOUTE LIGNE DE TA_Compteur SI TA_Compteur.COL_CPT_ID=v_compteur ALORS TableSelectPlus(TA_Compteur,TA_Compteur) FIN FIN // si aucune sélection, se place sur le 1 SI HNbEnr(REQ_Compteur_liste) > 0 ALORS SI TableSelect(TA_Compteur) < 1 ALORS TableSelectPlus(TA_Compteur,1) v_compteur=TA_Compteur.COL_CPT_ID FIN FIN FIN Partie 2 › Fenêtre WINDEV › FEN_Compteur_fiche › Code 18/02/2021 8 Provision_D FEN_Compteur_fiche Code Déclarations globales de FEN_Compteur_fiche PROCÉDURE MaFenêtre(LOCAL vl_Compteur ,LOCAL Vl_action) HSurErreur(Compteur,hErrBlocage,pg_bloquer) vl_NumEnr est un entier Vl_blocage est une chaîne Fin d'initialisation de FEN_Compteur_fiche SAI_CPT_ID..Visible=Vpj_AfficheID // En création SI Vl_action="NOUV" ALORS FEN_Compteur_fiche..Titre="Nouveau Compteur" //SC_adm..Etat=AffichageSeulement HRAZ(Compteur) FichierVersEcran() FIN // En modification ou suppression SI Vl_action="MODI" OU Vl_action="SUPP" ALORS // lecture de l'enregistrement et recherche son No d'enregistrement HLitRecherchePremier(Compteur,CPT_ID,vl_Compteur) vl_NumEnr = HNumEnr(Compteur) // test de blocage Vl_blocage = HInfoBlocage(Compteur,vl_NumEnr) SI pg_locked(Vl_blocage) ALORS Ferme() SINON // pas de blocage // je le lis et je le bloque HLitRecherchePremier(Compteur,CPT_ID,vl_Compteur,hBlocageEcriture) SI HTrouve(Compteur) ALORS SI Vl_action="MODI" ALORS FEN_Compteur_fiche..Titre="Modifie le Compteur" FIN SI Vl_action="SUPP" ALORS FEN_Compteur_fiche..Titre = "Supprime le Compteur" GR_Affiche..Etat = AffichageSeulement FIN // Initialise automatiquement les champs d'une fenêtre ou d'une page avec :•les valeurs des rubriques associées dans l'enregistrement en cours (chargé en mémoire) du fichier de données FichierVersEcran() FIN FIN FIN // En consultation SI Vl_action="AFFI" ALORS FEN_Compteur_fiche..Titre="Affiche le Compteur" Partie 2 › Fenêtre WINDEV › FEN_Compteur_fiche › Code 18/02/2021 9 Provision_D // lecture de l'enregistrement et recherche son No d'enregsitrement HLitRecherchePremier(Compteur,CPT_ID,vl_Compteur) SI PAS HTrouve(Compteur) ALORS Erreur(ErreurInfo()) Ferme() SINON FichierVersEcran() GR_Affiche..Etat=AffichageSeulement FIN FIN FEN_Compteur_fiche Code des champs Clic sur BTN_Annuler SI Vl_action="MODI" OU Vl_action="SUPP" ALORS // Débloque un enregistrement précédemment bloqué HDébloqueNumEnr(Compteur) FIN Clic sur BTN_Valider Vl_MotifID est un entier sur 8 octets = 0 Vl_MotifLibelle est une chaîne = "" SI Vl_action="NOUV" OU Vl_action="MODI" ALORS // Le nom Compteur ne peut pas etre vide SI SansEspace(SAI_CPT_Compteur) = "" ALORS Erreur("Le nom du Compteur doit être renseigné.","Ressaisir !") DonneFocus(SAI_CPT_Compteur) RETOUR FIN // vérification intégrité HLibèreRequête(REQ_Compteur_VI) REQ_Compteur_VI.P_CPT_ID = SAI_CPT_ID REQ_Compteur_VI.P_CPT_Compteur= SAI_CPT_Compteur SI PAS HExécuteRequête(REQ_Compteur_VI,hRequêteDéfaut) ALORS RETOUR SINON // Positionne sur le premier enregistrement d'un fichier de données en fonction d'une rubrique de parcours. L'enregistrement est lu et les variables HFSQL (par exemple Client.Nom, // c'est-à-dire la rubrique Nom du fichier Client) sont mises à jour. HLitPremier(REQ_Compteur_VI) // Renvoie le nombre d'enregistrements d'un fichier de données, d'une requête ou d'une vue HFSQL : enregistrements actifs, rayés, supprimés, etc. SI HNbEnr(REQ_Compteur_VI) > 0 ALORS Erreur("L' information " + SAI_CPT_Compteur + " existe déjà, ressaisir") DonneFocus(SAI_CPT_Compteur) RETOUR Partie 2 › Fenêtre WINDEV › FEN_Compteur_fiche › Code des champs 18/02/2021 10 Provision_D SINON EcranVersFichier() SI Vl_action="NOUV" ALORS HAjoute(Compteur) FIN SI Vl_action="MODI" ALORS //// SI Vpj_MotifEnModif=Vrai ALORS //// TANTQUE Vl_MotifID=0 //// (Vl_MotifID,Vl_MotifLibelle) = OuvrePopupPosition(FEN_PPMotif_fiche,poSelonChamp,SAI_CPT_Compteur,"",Vl_action) //// SI Vl_MotifID=0 ALORS //// Erreur("Le motif est obligatoire","Sélectionner à nouveau.") //// FIN //// FIN //// FIN //// pg_traceG("Compteur",Compteur.CPT_ID,Compteur.CPT_Compteur,"",0,"",Vl_action,"",Vl_Mot ifID,Vl_MotifLibelle) HModifie(Compteur) HDébloqueNumEnr(Compteur,hNumEnrEnCours) FIN vl_Compteur=Compteur.CPT_ID FIN FIN FIN SI Vl_action="SUPP" ALORS Vl_nbo est un entier = 0 // vl_key est une chaine // supprime enregistrement SI OuiNon(Non,"Confirmez la suppression du Compteur affichée " + SAI_CPT_Compteur) = Oui ALORS // Vérification dans CatCompteur //// vl_key=HFiltreIdentique(CatCompteur,CCP_CPT_ID,vl_Compteur) //// // //// SI vl_key<>"" ALORS //// HLitPremier(CatCompteur,vl_key) //// SI PAS HEnDehors(CatCompteur) ALORS //// Vl_nbo=1 //// SINON //// Vl_nbo=0 //// FIN //// FIN //// HDésactiveFiltre(CatCompteur) SI Vl_nbo = 0 ALORS //// SI Vpj_MotifEnSuppression=Vrai ALORS //// TANTQUE Vl_MotifID=0 //// (Vl_MotifID,Vl_MotifLibelle) = OuvrePopupPosition(FEN_PPMotif_fiche,poSelonChamp,SAI_CPT_Compteur,"",Vl_action) //// SI Vl_MotifID=0 ALORS //// Erreur("Le motif est obligatoire","Sélectionner à nouveau.") //// FIN //// FIN //// FIN //// pg_traceG("Compteur",Compteur.CPT_ID,Compteur.CPT_Compteur,"",0,"",Vl_action,"",Vl_MotifID ,Vl_MotifLibelle) Partie 2 › Fenêtre WINDEV › FEN_Compteur_fiche › Code des champs 18/02/2021 11 Provision_D HSupprime(Compteur) vl_Compteur=0 SI Vpj_MessageSupprime=Vrai ALORS Info("Le Compteur "+SAI_CPT_Compteur+" est supprimée.") FIN SINON Erreur("Le Compteur "+SAI_CPT_Compteur+" est utilisée. Suppression impossible." ) FIN FIN FIN Ferme() Partie 2 › Fenêtre WINDEV › FEN_Societe_liste › Code 18/02/2021 12 Provision_D FEN_Societe_liste Code Déclarations globales de FEN_Societe_liste PROCÉDURE MaFenêtre() Vl_societe est un entier sur 8 octets Vl_action est une chaîne Fin d'initialisation de FEN_Societe_liste // La propriété Visible permet de gérer la visibilité d'un élément. Cette propriété est utilisable sur : •les champs d'une fenêtre, d'une page ou d'un état TA_Societe.COL_SO_ID..Visible=Vpj_AfficheID pl_Afficheliste(Vl_societe) DonneFocus(TA_Societe) FEN_Societe_liste Code des champs Clic sur BTN_Afficher SI TA_Societe.COL_SO_ID <> 0 ALORS Ouvre(FEN_Societe_fiche,Vl_societe,"AFFI") pl_Afficheliste(Vl_societe) DonneFocus(TA_Societe) SINON Erreur("Il n'y a pas d'enregistrement sélectionné, Affichage impossible." ) FIN Clic sur BTN_Ajouter Ouvre(FEN_Societe_fiche,Vl_societe,"NOUV") pl_Afficheliste(Vl_societe) DonneFocus(TA_Societe) Clic sur BTN_Modifier SI TA_Societe.COL_SO_ID <> 0 ALORS Ouvre(FEN_Societe_fiche,Vl_societe,"MODI") pl_Afficheliste(Vl_societe) Partie 2 › Fenêtre WINDEV › FEN_Societe_liste › Code des champs 18/02/2021 13 Provision_D DonneFocus(TA_Societe) SINON Erreur("Il n'y a pas d'enregistrement sélectionné, Modification impossible." ) FIN Clic sur BTN_Supprimer SI TA_Societe.COL_SO_ID<> 0 ALORS Ouvre(FEN_Societe_fiche, Vl_societe,"SUPP") pl_Afficheliste(Vl_societe) DonneFocus(TA_Societe) SINON Erreur("Il n'y a pas d'enregistrement sélectionné, Suppression impossible." ) FIN Sélection d'une ligne de TA_Societe Vl_societe = TA_Societe.COL_SO_ID // indice de la ligne sélectionne Vpj_Indice = TableSelect(TA_Societe) Bouton gauche double-clic (WM_LBUTTONDBLCLK) sur TA_Societe Vl_societe = TA_Societe.COL_SO_ID Vpj_Indice = TableSelect(TA_Societe) SI Vl_action="CHOI" ALORS Ferme() FIN FEN_Societe_liste Procédures Procédure locale pl_Afficheliste PROCÉDURE pl_Afficheliste(v_societe) // RAZ supprime contenu entier de la table TableSupprimeTout(TA_Societe) // Libère les ressources d'une requête HLibèreRequête(REQ_Societe_liste) // REQ_Societe_liste.P_SOC_Actif=Null //// Initialise la requête HExécuteRequête(REQ_Societe_liste) SI ErreurDétectée() ALORS Erreur() ; RETOUR // Remplit un champ de type "Table mémoire" avec tous les enregistrements d'un fichier de données, d'une vue HFSQL ou d'une requête FichierVersTableMémoire(TA_Societe,REQ_Societe_liste) // // Dé-sélectionne toutes les lignes dans le champ Table "TA_SOCIETE" TableSelectMoins(TA_Societe) Partie 2 › Fenêtre WINDEV › FEN_Societe_liste › Procédures 18/02/2021 14 Provision_D SI Vpj_Indice=0 ALORS RETOUR SINON // Se place dans le tableau sur la valeur POUR TOUTE LIGNE DE TA_Societe SI TA_Societe.COL_SO_ID=v_societe ALORS TableSelectPlus(TA_Societe,TA_Societe) FIN FIN // si aucune sélection, se place sur le 1 SI HNbEnr(REQ_Societe_liste) > 0 ALORS SI TableSelect(TA_Societe) < 1 ALORS TableSelectPlus(TA_Societe,1) v_societe=TA_Societe.COL_SO_ID FIN FIN FIN Partie 2 › Fenêtre WINDEV › FEN_Societe_fiche › Code 18/02/2021 15 Provision_D FEN_Societe_fiche Code Déclarations globales de FEN_Societe_fiche PROCÉDURE MaFenêtre(LOCAL Vl_Societe ,LOCAL Vl_action) HSurErreur(Société,hErrBlocage,pg_bloquer) vl_NumEnr est un entier sVl_blocage est une chaîne Fin d'initialisation de FEN_Societe_fiche // affiche id de la Societe a vrai SAI_SOC_ID..Visible=Vpj_AfficheID // En création SI Vl_action="NOUV" ALORS FEN_Societe_fiche..Titre="Nouveau Societe" // SC.adm..Etat=AffichageSeulement HRAZ(Société) FichierVersEcran() FIN // En modification ou suppression SI Vl_action="MODI" OU Vl_action="SUPP" ALORS // lecture de l'enregistrement et recherche son No d'enregistrement HLitRecherchePremier(Société,SOC_ID,Vl_Societe) // Renvoie le numéro de l'enregistrement en cours dans le fichier de données HFSQL vl_NumEnr = HNumEnr(Société) // test de blocage sVl_blocage = HInfoBlocage(Société,vl_NumEnr) SI pg_locked(sVl_blocage) ALORS Ferme() SINON // pas de blocage // je le lis et je le bloque HLitRecherchePremier(Société,SOC_ID,Vl_Societe,hBlocageEcriture) SI HTrouve(Société) ALORS SI Vl_action="MODI" ALORS FEN_Societe_fiche..Titre="Modifie la Societe" FIN SI Vl_action="SUPP" ALORS FEN_Societe_fiche..Titre = "Supprime la societe " GR_Affiche..Etat = AffichageSeulement FIN FichierVersEcran() FIN FIN FIN // En consultation SI Vl_action="AFFI" ALORS // le nom de la fenêtre devient affiche la societe Partie 2 › Fenêtre WINDEV › FEN_Societe_fiche › Code 18/02/2021 16 Provision_D FEN_Societe_fiche..Titre="Affiche la Societe " // lecture de l'enregistrement et recherche son No d’enregistrement HLitRecherchePremier(Société,SOC_ID,Vl_Societe) // Vérifie si l'enregistrement en cours correspond au filtre ou à la recherche en cours. SI PAS HTrouve(Société) uploads/Ingenierie_Lourd/ code-hugo.pdf

  • 31
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager