Cas d'utilisation
Un événement est le clic sur un bouton ou menu particulier ; l'ouverture et la fermeture d'un devis sont des événements en eux-mêmes.
La gestion des événements permet de
▪auto-adapter au devis la barre Automatismes, c'est-à-dire ajouter des boutons généralement à l'ouverture
▪définir les actions déclenchées par un clic sur ces boutons
▪redéfinir les actions déclenchées par un clic sur certains boutons standard
▪exécuter des requêtes, macros ou méthodes avant/après des événements prédéfinis.
Evénements prédéfinis
Certains événements prédéfinis peuvent être appairés pour distinguer :
1.le geste de l'utilisateur (Avant ou début)
2.l'aboutissement réussi du processus déclenché par celui-ci (Après ou fin).
Ceci se retrouve dans les tables suivantes où les noms sont des chaînes de caractères :
Bouton/menu déclenchement |
ou Fichier/Fermer |
Fichier/Enregistrer |
Données>Insérer référence |
+ Créer |
Reporting PDF |
Reporting |
|||
Nom du 1er événement |
Sur Bouton Macro x |
Sur ouverture devis |
Sur Avant Enregistrement Devis |
Sur Avant insertion de référence d'article |
Sur début de calcul des coûts |
Sur début de calcul des PV |
Sur début de production de document Word |
Sur Après Création fichier PDF |
Sur Etat Coller Image |
Nom du 2nd événement |
– |
Sur Fermeture Devis |
Sur Après Enregistrement Devis |
Sur Après insertion de référence d'article |
Sur fin de calcul des coûts |
Sur fin de calcul des PV |
Sur fin de production de document Word |
– |
– |
Verbe souvent associé |
Exécuter_Requête Exécuter_Macro Exécuter_MacroExcel |
Définir_Bouton_Macro Exécuter_Macro |
|
|
Recalculer_Coûts |
Recalculer_Tout(1,0) Définir_Utiliser_La _Valeur_Cible(1)
|
|
|
|
Nota |
x=1 ... 10 est position de l'icône dans un groupe spécial Boutons macros |
Cet événement peut déclencher l'affichage d'un message dans la barre d'état (voir Interface générale) |
|
Voir Insérer un article ou un ouvrage par sa référence. Si plusieurs lignes sont sélectionnées, l'événement n'est appelé qu'à la fin. Voir Echantillons de code |
|
PV = Prix de vente |
|
Le nom est donné par Context.CallingContextReportGenerator.FileName |
Voir Etats |
Pour la gestion (pour deuxième colonne, voir 1st Demo sample WBS_BOQ_Planner) :
Bouton/menu déclenchement |
|
Gestion personnalisée |
Calculer tout/ / Enregistrer |
|
Premier événement |
Sur Ouverture Devis Après Lecture Gestion |
|
Sur Lecture Personnalisé de Gestion |
Sur Ecriture Personnalisé vers Gestion |
Verbe généralement associé |
|
Exécuter_Macro Stopper_Opération |
Exécuter_Macro : Custom Read From Management |
Exécuter_Macro : Custom Read From Management, <Compute All> puis Custom Write To Management |
Nota |
Alternative à Sur ouverture devis. Evt=fin synchro avec ProMo+ ou module gestion. Mettre à jour un devis. Sur Après Application Profil Utilisateur est appelé juste avant, donc on peut y regrouper les 2codes |
Le bouton appelle la macro Connect_To_Management_Database. Elle sert à connecter à/déconnecter d'un fichier Excel utilisé pour la gestion. Voir ~/SDK/ Custom Mgt/How _To _Custom_Management.pdf |
Voir ~/SDK/ Custom Mgt/How _To _Custom_Management.pdf
|
Pour Gérer les versions (pour les situations, voir l'exemple Sample_Call_Off_Contracts en Situations de travaux) :
Bouton/menu déclenchement |
Affichage>Indice de révision>Supprimer |
Affichage>Indice de révision>Rendre active |
|
Affichage>Indice de révision>Figer version |
Nom du premier événement |
Sur Avant Supprimer Devis/version/situation |
Sur Avant Supprimer-Restaurer Devis/Version/Situation |
Sur Avant Pousser Devis/Version/Situation |
Sur Avant Figer |
Nom du second événement |
Sur après supprimer devis/version/situation |
Sur Après Supprimer-Restaurer Devis/Version/Situation |
Sur Après Pousser Devis/Version/Situation |
Sur Après Figer |
Verbe généralement associé |
|
|
Recalculer_Tout (0,1) Pour vider colonnes Quantité : .Imposer_Valeur_à_Colonne_Minute .Imposer_Valeur_à_Colonne_WBS |
|
Nota |
Verbes pour établir la facture : Supprimer_Lignes_Sans_Prix_De_Vente (s'assurer avant que les PV sont justes), Changer_Groupes_En_Ouvrages, Copier_Valeurs_De_Colonne_De_WBS Autres verbes : Définir_Copie_Vers_Quantité_Pour_Colonne_De_WBS, Supprimer_Mode_Total_Partout, Définir_Mode_Visible_Pour_Colonne_De_WBS, Définir_Mode_Visible_Pour_Colonne_De_Minute, Définir_Valeur_Pour_Colonne_De_Minute et Définir_Valeur_Pour_Colonne_De_WBS pour vider la colonne WBS_Quantity |
Pour le Partage des postes du WBS :
Bouton/menu de déclenchement |
Automatisme>Partage> Créer fichiers pour |
Automatisme>Partage> Créer fichier pour parent |
Nom du premier événement |
Sur Ouverture Fenêtre Partage |
Sur Avant Création Fichier Pour Parent |
Verbe souvent associé |
|
|
Nota |
Moment pour suspendre la base du devis (incompatible avec transparence partielle), ou émettre un message |
En mode transparence partielle, on peut l'utiliser pour remplir les colonnes destinées au parent et éviter des formules complexes |
Pour les Etats analytiques et Etat d'un devis simulé :
Bouton/menu de déclenchement |
Affichage>Analyse>Créer source de données>Construire source de données |
Affichage>Analyse>Visualiser états>Sélectionner état OU Automation>Scénarios>Générer des documents à partir de Scénarios sur les Quantités WBS ou autre champ |
Nom du premier événement |
Sur Après Création de Source de Données |
Sur Avant Création d'Etat Analytique |
Verbe souvent associé |
Exécuter_Macro |
Exécuter_Macro |
Nota |
Utilisé pour modifier source à la volée par API quand elle est créée par clic sur bouton (pas par macro) ou pour décomposer une mesure au cours du temps (macro). Voir Planning avec Sample_With_Planner |
Utilisé à l'exécution pour simplifier une masse de données avec beaucoup de tableaux croisés dynamiques afin de réduire le temps de traitement et rendre seulement les données désirées. Voir Echantillons de code |
Quand on recueille des données d'une macro associée à un évènement Sur Avant xxx et doit les utiliser dans une macro associée à l'évènement Sur Après xxx, invoquer la macro appelée Shared data for inter-macro communication' disponible dans l'exemple Multi-languages sample. Cela fonctionne comme un presse-papier.
Codage
Le premier onglet de la boîte de dialogue liste tous les événements prédéfinis. Les événements auxquels est associée une action apparaissent en gras.
Pour composer le code, on pioche par double clic sur divers items des onglets :
▪Macros : l'onglet liste toutes les requêtes et macros proprement dites créées (elles diffèrent par le pictogramme) ; les insérer comme chaînes de caractères dans le premier argument du verbe Exécuter_ correspondant à leur espèce
▪Conditions, comme en Requêtes
▪Verbes
▪Variables globales, comme en Requêtes.
Pour connaître le code exécuté après un événement, sélectionner le nom de l'événement dans le premier onglet.
Verbes
Un verbe appelle des requêtes, des macros ou des méthodes.
Certains verbes nécessitent des arguments.
Définir_Bouton_Macro sert à créer des boutons dans un groupe spécial Boutons macros. Il est généralement placé dans l'événement Sur ouverture devis. Les arguments sont les suivants :
▪<Numéro> position dans Boutons macro (1 ... 10) ; si utilisé deux fois, le dernier écrase le précédent ; valeur par défaut : 1
▪<Visible : booléen> ; valeur par défaut : 1
▪<Nom : légende dans Boutons macro> ; valeur par défaut : vide ; pour adapter à la langue, voir Multilinguisme
▪<Infobulle> ; valeur par défaut : vide ; pour adapter à la langue, voir Multilinguisme
▪<Chemin à l'image png> où ..\ représente le répertoire d'installation ; QDV7 vient avec trois imagettes (imagette générique sur laquelle est incrustée un pictogramme Avertissement, Script ou Excel) en ..\Samples\Stuff_4_Macros\ ; si le chemin est absent, l'incrustation est le numéro de position ("0" pour 10) ; pour afficher un pictogramme personnalisé, l'incorporer au devis avec Données>Insérer fichiers, et saisir "<INTERNAL>nom du fichier avec extension"
▪<Taille> : 0 signifie 48x48 px, 1=imagette sans légende, 2=imagette avec légende ; valeur par défaut : 0
Le code associé au bouton DOIT être mis dans l'événement "Sur bouton macro <Numéro>". A cause de cette correspondance, le nombre maximal de boutons est 10.
On peut inclure ce verbe dans le code appelé par l'évènement Sur Après Application Profil Utilisateur de sorte que le bouton et la fonction s'adaptent au profil (voir Global Variables) :
Autres verbes :
▪Exécuter_MacroExcel("<nom de macro Excel>", <Est stockée dans le devis?>. Par défaut : Exécuter_MacroExcel("", 0)
▪Exécuter_Macro("<nom de macro>") ; si la macro n'est pas stockée dans le devis ou la base de gestion, spécifier le chemin complet (qui peut inclure les variables <USER_NAME>, <PROFILE_PATH>,<TEMP_PATH>,<DESKTOP_PATH>, <MY_DOCUMENTS_PATH>, <INSTALL_PATH>, <INTERNAL> si inséré par Données>Insérer fichiers)
▪Exécuter_Requête("<nom de macro>", <WBS>, <Base du devis>, <Minute d'environnement>). Par défaut : Exécuter_Requête("", 1, 0, 0)
▪Rafraîchir_Vue_Courante()
▪Examiner_Et_Rafraîchir_Tout() sert à vérifier et rafraîchir tout le devis
▪Activate_Onglet(x) où x = 0 pour WBS étendu, 1 pour WBS condensé, 2 pour Minutes, 3 pour Nomenclatures, 4 pour Environnement, 5 pour Planning. Utilisé pour forcer l'activation d'un onglet après qu'un devis a été chargé complètement (par ex. avec Sur Ouverture Devis Après Lecture Gestion)
▪Imposer_Valeur_à_Colonne_Minute(<ID de colonne>, <Valeur>) et Imposer_Valeur_à_Colonne_WBS(<ID de colonne>, <Valeur>, <Branches aussi ?>) forcent toutes les valeurs de la colonne à la valeur spécifiée ; si le dernier attribut est à 0, le verbe ne s'applique pas aux branches WBS
▪Copier_Valeurs_De_Colonne_De_WBS(<ID de colonne source>, <ID de colonne cible>, <0=Ne pas copier les branches, 1=Copier les branches en haut, 2=Copier les branches en bas>) sert à calculer ce qu'il rest à facturer (les totaux de branche peuvent être vide ou au-dessus/en dessous des postes)
▪Supprimer_Lignes_Sans_Prix_De_Vente utilisé pour ne garder que les lignes avec prix de vente, par ex., pour créer la facture d'un marché à bordereau (s'assurer que les prix de vente sont recalculés avant)
▪Supprimer_Mode_Total_Partout() utilisé pour éliminer toute utilisation du Mode Total ; le faire suivre de Examiner_Et_Rafraîchir_Tout sauf si l'on pousse une situation ou une version
▪Supprimer_Tout_Lien_Avec_WBS(<0 = Vider postes esclaves, 1 = Copier contenu des postes maîtres>) ; voir Liens entre postes ; en cas d'appel à partir de QDV7 alors que le devis est ouvert, actualiser le WBS avec le verbe CheckAndRepaint()
▪Supprimer_Tout_Lien_Avec_Base_Du_Devis(<1=Supprimer base du devis, 0= Conserver base du devis>, <1=Afficher messages d'erreur, 0=Ne pas afficher messages d'erreur>) : isole le devis de la Base du devis
▪Changer_Groupes_En_Ouvrages utilisé pour transformer des groupes en ouvrages pour adapter toutes les lignes sous-jacentes, quand on change une quantité dans l'en-tête d'un groupe, par ex. pour créer la facture d'un marché à bordereau ; utiliser son paramètre Conserver définitions des ouvrages pour éviter de démanteler les ouvrages :
1: tous les ouvrages sous-jacents à un groupe sont démantelés
0: tous les ouvrages sous-jacents à un groupe sont supprimés avant la transformation du groupe en ouvrage
▪Recalculer_Tout(<Forcer le calcul>, <Synchroniser avec la gestion>), généralement placé à la fin de la requête, remplace l'icône du coin inférieur droit, mais demande des arguments booléens ; sans quitter l'éditeur, les marques #N/A disparaissent du WBS et de la vue des minutes
▪Rafraîchir_Variables_Et_Colonnes() actualise les variables globales et la disposition des colonnes (après éxécution du verbe Recalculer_Tout, elles peuvent être obsolètes)
▪Recalculer_Coûts_Seulement() : comme le précédent
▪Changer_Mode_de_Calcul(<Mode>, <Utilisation des derniers coefficients>)
▪Mode : Environnement seul (0), Environnement + Coefficients (1), Coefficients fixes (2), Coefficients calculés (3)
▪Utilisation : Ecraser les anciens coefficients (0), Restaurer les anciens coefficients et formules (1), Restaurer seulement les formules (2)
▪Définir_Copie_Vers_Quantité_Pour_Colonne_De_WBS(ID de colonne, définir copie vers quantité?) utilisé pour coller les valeurs of d'une colonne WBS libre dans la colonne WBS_Quantity de la vue des minutes quand on utilise des situations de travaux ; le booléen Renvoyer des valeurs à la colonne Quantité est décrit en Comparer plusieurs versions (WBS)
▪Définir_Mode_Visible_Pour_Colonne_De_WBS(<ID de colonne>, <Visible dans devis>, <Visible dans situations de travaux>) définit si une colonne WBS est visible en mode devis et/ou dans les situations de travaux (cases à cocher décrites en Champs libres) ; 0 (cacher), 1 (afficher) ; WBS est rafraîchi chaque fois qu'on impose une situation : si l'on veut que les changements apparaissent avant, utiliser le verbe Examiner_Et_Rafraîchir_Tout
▪Définir_Mode_Visible_Pour_Colonne_De_Minute(<ID de colonne>, <Visible dans devis>, <Visible dans situations de travaux>) définit si une colonne de la vue des minutes est visible en mode devis et/ou dans les situations de travaux (attributs du gestionnaire de colonnes) où 0 = cacher, 1 = afficher ; ceci modifie l'attribut décrit en Créer des champs libres à comportement personnalisé ou Créer un jeu de champs spécifique et personnalisé - MT/MŒ
▪Définir_Utiliser_La _Valeur_Cible(<1=utiliser la Cible pour égaliser les totaux au calcul, 0=ignorer la cible éventuelle>)
▪Forcer_Prix_de_Vente(): Prix WBS (0), Incidence WBS (1), Minutes toutes lignes (2), Minutes Groupes (3)
▪Stopper_Opération() : arrête le traitement ; les déclarations suivantes ne sont pas exécutées
▪Recevoir_Message_Erreur() : affiche le message d'erreur généré (dans la langue de l'interface)
▪Recevoir_Numéro_Erreur() : affiche le numéro d'erreur généré (il est plus compréhensible que le précédent dans un environment international) ; la liste des codes d'erreur est donnée dans le sujet sur l'API macro
▪Afficher_Message(<Message>, <Icône>) Icône est numéro d'icône : voir table ci-après ; un son spécifique retentit
Numéro d'icône |
0 |
1 |
2 |
3 |
autre |
Valeur |
Information |
Warning |
Stop |
Question |
autre |
Pictogramme dans le message |
néant |
METHODE
La méthode show peut s'appliquer à l'objet MessageBox ; les arguments permettent de personnaliser la fenêtre qui apparaît au test et à l'exécution.
Syntaxe : MessageBox.show("<Message à afficher>", "<Titre fenêtre>", MessageBoxButtons.OK, MessageBoxIcon.<Valeur>)
"OK" est la légende du bouton d'accusé de réception.
Le pictogramme incrusté (et le son émis) dépend de la valeur saisie selon la table ci-avant.
Mettre cette ligne AVANT le verbe Exécuter_.
NOTA <ID de colonne> peut être soit la chaîne de caractère soit le numéro qui apparaissent comme Propriétés. A coup sûr, le numéro est unique.
Pour tester un code événement :
1.A n'importe quel point, cliquer sur Exécuter ; la liste des événements apparaît dans la fenêtre
2.sélectionner l'événement et cliquer sur Test (alternative : faire un double clic)
3.en cas d'erreur, des messages sont affichés ; le volet de debug se remplit automatiquement ; on peut demander de coller le code VB natif dans le presse-papier ; le carré du bouton devient grenat.
Pour recevoir sur-le-champ le résultat d'un test, insérer le code qui suit :
Recevoir_Message_Erreur()
Stopper_Opération()
Pour créer le bouton dans la barre Automatismes, tester l'événement, généralement Sur ouverture devis.
Pour supprimer un tel bouton, supprimer la requête appelée si tel est le cas.
Pour créer le bouton dans la barre d'accès rapide, voir Ruban. Là, il ne dépend pas du devis.
NOTA Un bouton qui appelle une requête où une fenêtre apparaît exécute cette action même pendant un test.
Exécution
Pour exécuter un code d'événement auquel est affecté un bouton par Définir_Bouton_Macro, cliquer une fois sur le bouton dans le groupe Boutons macros.