Gestion des événements

Navigation:  Requêtes et Macros >

Gestion des événements

Previous pageReturn to chapter overviewNext page

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

User_macro_32

Fileou Fichier/Fermer

Fichier/Enregistrer

Données>Insérer référence

icone_compute

icone_compute

icon_word+ Créer

Reportingexport 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
Ces événements peuvent déclencher l'affichage d'un message dans la barre d'état (voir Interface générale)

 

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

 

User_macro_Seek_32 Gestion personnalisée

File

Calculer tout/ icon_update / 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) :

macro_by_profile

 

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

info

warning

delete

help

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.

 

ico_tipPour 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.