Deux types de macros sont utilisés dans QDV7 :
▪les macros QDV écrites en C# ou Visual Basic .NET
▪les macros Excel écrites en VBA ; elles n'écrivent pas dans le devis, mais dans des fichiers Excel exportés ; l'extension xlsm n'est pas supportée
Les macros peuvent être appelées en cliquant sur les boutons macro ou à l'occasion d'événements particuliers.
Ceci est soumis à un paramètre de sécurité (Macros). Quand la permission n'est pas donnée, on peut encore exécuter des requêtes prédéfinies dans le groupe Boutons macros.
Si cela demande trop de boutons, on peut lancer une macro qui indexe d'autres macros, par exemple Call_All_Macros_And_Requests dans l'example Multi_Language_Sample_With_Documents.qdv. Voir aussi Echantillons de code.
Cinq exemples de macros apparaissent dans l'exemple de devis Multi-languages. "Sample write to overhead workbook", écrite en VB .NET, permet d'écrire dans les feuilles utilisateur de l'environnement.
Deux sont affectés aux boutons macro 2 (macro QDV) et 3 (macro Excel).
Macros QDV
QDV API génère des programmes pré-compilés appelés Macros. Ces programmes sont compilés à l'exécution sur le PC de destination :
0 |
|
1 |
2 |
|
3 |
MS Visual Studio |
|
Editeur de programmes QDV |
|
Exécution par QDV7 |
|
Edition |
→ |
Post-édition |
Précompilation |
→ |
Compilation |
|
Import __↑ |
|
|
|
|
Pour créer/modifier une macro QDV, cliquer sur Automatismes>Macros>Macros>Ouvrir Macros QDV ; ceci ouvre une boîte de dialogue.
Eviter les noms de macros ou codes très longs.
Pour créer une macro, cliquer sur le bouton Créer ; ceci ouvre l'Editeur de programmes QDV ; saisir le code et cliquer sur Construire>Compiler et enregistrer ; ceci ajoute la macro à la liste. Pour des détails sur l'API, voir le sujet sur l'API macro.
Pour modifier la macro, cliquer sur le bouton Editer ou Editer sous Visual Studio (ceci exige la version 2010 ou postérieure, quelle que soit la langue de l'interface ; les éditions Express ne conviennent pas). Il est utile de saisir le nom de l'objet suivi d'un point et de puiser des propriétés/méthodes et événements dans le "pique" dans la ligne. Les points d'arrêt sont acceptés.
Pour ajouter la référence à un assemblage du Framework .NET ou à un assemblage .NET du répertoire d'installation QDV7, cliquer sur Construire>References et cocher l'assemblage. Pour faire référence à ses propres assemblages, s'assurer qu'ils sont compilés avec l'option "Tout CPU" sous Visual Studio et les placer dans le répertoire d'installation. On peut les déployer automatiquement sur tous ses PC clients à l'aide de l'outil de publication (situé dans le répertoire d'installation).
Pour exporter une macro :
▪sans license de programmeur, dans la boîte de dialogue, sélectionner la macro et cliquer sur le bouton Exporter
▪avec une license de programmeur, c'est aussi possible à partir de l'éditeur : sélectionner le volet Projets>Projets, sélectionner la macro et faire un clic droit sur Enregistrer macro sous
Pour importer une macro, cliquer sur le bouton Import et sélectionner la macro parmi les fichiers d'extension qdvmacro ; comme il n'y a pas de compilation, une license programmeur n'est pas nécessaire.
Procédure (les numéros d'étape sont aussi les numéros de la table ci-avant) :
1.Pour post-éditer une macro QDV, la sélectionner et cliquer sur le bouton Editer (alternative : faire un double clic) ; ceci ouvre l'Editeur de programmes QDV
2.Pour pré-compiler la macro, cliquer sur Construire>Compiler et enregistrer
3.Pour exécuter la macro avec le menu Macro, cliquer sur Exécuter macros, sélectionner la macro et cliquer sur the bouton Exécuter
Alternative avec Visual Studio : appuyer sur Editer sous Visual Studio, et utiliser le menu QDV.
Rafraîchir_Vue_Courante() sert, à l'intérieur d'une boucle, à actualiser les minutes sur-le-champ, en particulier avant d'accuser réception du message de l'Editeur QDV indiquant le nombre d'écritures.
Macros de l'exemple de devis Multi-languages :
▪Access_Active_Directory : renvoie le nom des administrateurs
▪Browse WBS and Minutes : exporte les Descriptions et Unités des minutes dans un fichier texte, avec indentation
▪Build_Entire_Estimate_From_Excel_File : convertit un fichier Excel en devis QDV7
▪Call_All_Macros_And_Requests : indexe toutes les macros et requêtes du devis
▪Generate Technical Document : assure la Publication en pdf du devis (4ème bouton macro) ; il faut autoriser les macros Word
▪Insert some rows from cursor : insère un nombre fixé de lignes sous la minute sélectionnée ; les Description, Quantité et Matériel/Coût unitaire ont des valeurs fixées
▪Just Export Current Minute : exporte dans un fichier Excel toute la section de minutes qui contient la ligne sélectionnée
▪Populate Excel file with report : exporte l'état du WBS dans n'importe quel fichier Excel ayant une feuille nommée Report_Profile (fichier source)
▪Populate_Foreign_Excel_Workbook : colle les valeurs et format dans un classeur dont les noms de feuille reprennent ceux du classeur d'environnement (attention, l'exemple peut se trouver en lecture seule)
▪Sample Extract Workbooks : génère les nomenclatures (les minutes "main d'œuvre seulement" sont listées au début), ou à tester des états WBS sous divers profils
▪Sample to browse WBS Headings : extrait des identifiants
▪Sample to simply read some cells from any QDV workbook : extrait les totaux des centres de coût de la Feuille de vente
▪Sample which exports an article database : exporte <répertoire d'installation>\Samples\databases_of_articles\Sample_Article_DB.qdb dans Excel
▪Sample write to Overhead Workbook : modifie la couleur d'un rectangle en Environnement>Test_Macros ; pour protéger le devis, d'abord la macro met un verrou sur le classeur d'environnement (Es.GetLockOnWorkbook), puis après l'exécution, elle défait le verrou (Es.ReleaseLockOnWorkbook)
▪Sample_Import_Factors : colle les coefficients de vente, et éventuellement les taux, d'un devis dans le devis courant sur la base de leur identifiant dans les onglets Matériel et Main d'œuvre (supprimer d'abord les lignes vides et fermer la source)
▪Sample_Program_CSharp : utilisée par le 2ème bouton dédié
▪Sample_Program_VisualBasic : même effet que la précédente.
La macro de l'exemple de devis Sample_with_WBS-Driven_Gantt supprime le planning et en crée un nouveau en accord avec l'état replié des branches du WBS étendu.
La macro de l'exemple de devis Sample_With_Multiple_Scenarios modifie les colonnes Quantité.
Macros de l'exemple d'ouvrage Sample_Sets_Database :
▪Check_Integrity_All_Sets : vérifie que tous les articles de l'ouvrage existe dans un répertoire connu
▪Get_Data_From_Article_Databases : remplit/met à jour les champs Description, Famille, Fabricant, Utilisateur à partir des références d'article dans Sample_Article_DB.qdb (enregistrer l'exemple dans un répertoire connu, ouvrir la copie, insérer un article virtuel (Développer un ouvrage), saisir le numéro et le nom de la base, saisir la référence d'article désirée, enfin appliquer la macro)
▪Insert_Some_Rows
▪Printout : exporte tout le contenu dans un tableur Excel.
Les deux premières macros fonctionnent aussi avec les bases SQL Serveur.
Pour exécuter une macro à l'aide d'un bouton dédié ou à l'occasion d'un événement, voir Gestion des événements. Pour exécuter la macro en exemple, cliquer sur le 2ème bouton ; ceci ouvre une boîte de dialogue.
Macros Excel
Pour créer/modifier une macro, cliquer sur Automatismes>Macros>Macros>Ouvrir Macros Excel ; ceci ouvre une boîte de dialogue.
Pour créer une macro, faire un clic droit et sélectionner Nouvelle macro.
Pour importer une macro, faire un clic droit, sélectionner Charger la macro et sélectionner la macro parmi les fichiers d'extension qdvxlmacro ; ceci ouvre une boîte de dialogue.
Pour modifier une macro, faire un clic droit dessus et sélectionner Editer la macro ; ceci ouvre une boîte de dialogue : dans la partie inférieure, spécifier le chemin complet de la macro et son nom dans Excel (Alt F8) ; dans les parties supérieures, spécifier les composantes du devis à exporter dans Excel et le chemin complet de destination.
Pour tester une macro, la sélectionner et cliquer sur le bouton Exécuter.
Pour exécuter une macro à l'aide du menu Macro, cliquer sur Ouvrir Macros Excel, sélectionner la macro et cliquer sur le bouton Exécuter.
Pour exécuter une macro à l'aide d'un bouton dédié ou à l'occasion d'un événement, voir Gestion des événements. Pour exécuter la macro en exemple, cliquer sur le 3ème bouton ; dans Excel, la macro se nomme TESTME ; ceci exporte le WBS condensé dans Excel et crée le fichier Overhead.xls en C:\Temp. Pour exporter d'autres parties, y compris le planning sous divers formats, faire un clic droit sur Editer la macro, cocher les cases correspondantes et sélectionner Parcourir.
Macros impliquant un état
On peut faire référence aux colonnes cachées suivantes du classeur Excel obtenu par export d'un état avec formules :
Fournir une macro sous forme de fonction permet de :
▪protéger la source de la macro et de la propager indépendamment du devis maître d'où elle serait importée
▪avoir un bouton à un endroit approprié du ruban et avec une icône spécifique.
Procédure :
1.Créer une macro QDV ; un contexte (par ex. Minutes) peut être défini avec l'object Context
2.Exporter la macro vers <répertoire d'installation>/Extended Functions (l'extension est qdvmacro) : créer des sous-répertoire permet de créer des catégories
3.Lancer l'application <répertoire d'installation>/Macro_2_Extended_Function.exe
4.Saisir les propriétés du bouton comme dans cet exemple
|
Etiquette |
|
Position bouton, voir Fichier>Outils >Général>Personnalis . ruban Optionnel
Les codes de langue sont facultatifs |
Icône |
|
|
|
|
4.Cliquer sur Save Project ; ceci crée un fichier d'extension qdmacroproject
5.Cliquer sur Create Function ; ceci crée un fichier d'extension qqdvfunction.
Pour lancer la fonction :
1.Pour autoriser la fonction, la cocher en Macros>Fonctions complémentaires ; un bouton est disponible
2.Choisir le contexte approprié, le cas échéant
3.Cliquer sur le bouton associé.