LE MULTIQUID
SOMMAIRE 1. Introduction...3 2. Le Lancement...3 3. La fenetre principale...3 3.1. L onglet description...3 3.2. L onglet requête...4 3.2.1. L onglet requête...4 3.2.2. L onglet SQL...5 3.2.3. L onglet Champ...5 3.2.4. L onglet tableau croisé...5 3.2.5. L onglet résultat...6 3.2.6. L onglet Requête maître...6 3.2.7. L onglet Index...7 3.3. L onglet Paramètres...7 4. Exploitation du dossier permanant par multiquid...9 5. Annexes... 10 5.1. Gestionnaire... 10 5.2. Documentation... 10 5.3. Exemple... 10 21/01/08 PEM_Multiquid.doc Page 2 / 13
1. INTRODUCTION Une statistique Multiquid est composée de une ou plusieurs requêtes élémentaires. Une requête élémentaire peut être un Quid (préalablement mémorisé) ou une requête SQL (dont l'utilisateur tape la syntaxe SQL). Une requête élémentaire de type SQL peut être liée à une ou plusieurs autres requêtes (Quid ou SQL) (c est à dire qu'elle en utilise un ou plusieurs champs). Les fichiers sont stockés dans le répertoire \isagiwp\stat sous la forme «nomdufichier.wrq». A noter que l utilisation des Multiquids nécessite impérativement des connaissances sur le langage SQL et sur la création et l utilisation de requêtes SQL. 2. LE LANCEMENT Pour créer ou ouvrir un multiquid, il faudra aller dans le menu Stat => MultiQuid. 3. LA FENETRE PRINCIPALE 3.1. L onglet description Cet onglet permet d indiquer un libellé et un commentaire (identique à la fenêtre d enregistrement des Quids). 21/01/08 PEM_Multiquid.doc Page 3 / 13
Menu contextuel (clic droit) : Nouveau : Permet de créer un nouveau multiquid. Ouvrir : Permet d ouvrir un Multiquid existant. Enregistrer : Permet l enregistrement du Multiquid actuel. Imprimer vers : Ouvre la fenêtre d impression permettant d imprimer, de visualiser ou d exporter les résultats. Modifier la forme d impression : Permet de modifier la forme d impression (si une coche est présente la forme a été modifiée). Réinitialiser la forme : Permet de remettre la forme en original. Importer : Permet de charger une forme précédemment exporter. Exporter : Permet d exporter la forme actuelle. 3.2. L onglet requête 3.2.1. L onglet requête Cet onglet permet d ajouter ou de supprimer des requêtes élémentaires Menu contextuel (clic droit) : Ajouter une requête : Permet l ajout d une nouvelle requête. Exporter : Permet l export de la requête élémentaire. Copier dans le presse papier : Permet de récupérer le résultat dans un autre logiciel (Traitement de texte, tableur, ). Afficher : Donne le résultat sous forme de grille (SQL). Lorsque plusieurs requêtes sont présentes, elles sont exécutées dans l ordre de la liste. Une requête utilisée par une autre doit être exécutée avant celle-ci. La requête COLLA utilisant des champs de la requête PART devra être placée en seconde position. L ordre des requêtes est modifiable grâce aux boutons situés en bas de la fenêtre ou via le clic droit. Une requête peut être de type «quid» ou «SQL». Dans le premier cas il faudra choisir le fichier Quid correspondant, dans le second il faudra renseigner la syntaxe SQL. 21/01/08 PEM_Multiquid.doc Page 4 / 13
Si on coche «Quid» pour le type de requête, une nouvelle zone apparaît permettant d ouvrir un Quid existant (Uniquement de type «Liste»). 3.2.2. L onglet SQL Cet onglet permet de noter la requête SQL à exécuter. Le retour à la ligne s effectue avec CTRL+ENTREE. Menu contextuel (clic droit) : Zoom - : permet de diminuer la taille du texte. Zoom + : permet d augmenter la taille du texte. Choisir : permet de choisir dans une liste : une table, un champ ou un paramètre Tout sélectionner : permet de sélectionner l ensemble du texte. 3.2.3. L onglet Champ Cet onglet donne la liste des champs utilisés par la requête. Il est possible de modifier le libellé (équivalent de la fonction «AS» en SQL). 3.2.4. L onglet tableau croisé Cet onglet permet d obtenir le résultat sous forme de tableau croisé. 21/01/08 PEM_Multiquid.doc Page 5 / 13
Exemple : On crée une requête simple sur DOCEN donnant le client, le mois de la date et le Mt HT. Select clien, extract(month from dt) as mois, mtht from docen where typdoc in ("FA","AV") order by clien, mois Ensuite dans l onglet «Tableau croisé» on indique la colonne le champs à utiliser pour construire les colonnes du tableau croisé et le ou les champs à faire apparaître à l intersection des lignes et des colonnes. On obtiendra un résultat sous cette forme. 3.2.5. L onglet résultat Cet onglet permet de retrouver l ensemble de données issu du résultat de la requête (exemple ci-dessus). 3.2.6. L onglet Requête maître Cet onglet va permettre d obtenir un résultat sous forme Maître détails. Exemple : on souhaite obtenir la liste des factures sur une période avec le détail de celles-ci. Première requête donnant la liste des documents «DOC» : Select clien, nr, mtht from docen where typdoc="fa" and dt>"01/01/04" and dt<="12/31/04" Seconde requête donnant le détail des factures «DOCLI» : 21/01/08 PEM_Multiquid.doc Page 6 / 13
Select docen, artic, qt, mtht from docli Ensuite on va indiquer le lien entre ces deux requêtes. Ce type de multiquid implique forcément une modification de la forme dans laquelle il faudra insérer l itération DOCLI dans l itération DOC (voir Annexes). 3.2.7. L onglet Index Cet onglet permet de créer des index supplémentaires afin d optimiser les temps de traitements sur des requêtes complexes. Afin de pouvoir ajouter les champs constituant l index, il faut cliquer sur le bouton : On obtiendra la fenêtre ci-dessous. 3.3. L onglet Paramètres Cet onglet permet de créer des paramètres nécessaires pour filtrer les résultats. Ces paramètres pourront être renseignés par l utilisateur lors de l exécution de la requête. Certains paramètres sont déjà disponibles. 21/01/08 PEM_Multiquid.doc Page 7 / 13
Les types disponibles sont numérique, chaîne, date et logique. Il est également possible d indiquer un commentaire sur les paramètres utilisateurs. Celui-ci apparaîtra lors de l affichage de la fenêtre demandant à l utilisateur de renseigner le paramètre. L appel d un paramètre dans une requête s effectue grâce au symbole : Exemple : select code, nom from colla where SocieEntreeCO= :SocieDef Si on souhaite appeler un paramètre depuis le Select, il faudra utiliser le symbole $ Exemple : select $DateDuJourDef, code, nom, dtmodif from colla Il est possible d indiquer une requête et un champ de référence. Cela permet de créer un paramètre pour lequel l utilisateur aura le choix dans une liste. Exemple : On veut obtenir tous les clients ayant pour collaborateur responsable le collaborateur passé en paramètre. Première requête «COLLA» : Select code, nom from colla Seconde requête «CLIENT» : Select code, lib from socie where colla=:moncollaborateur 21/01/08 PEM_Multiquid.doc Page 8 / 13
Dans l onglet «Paramètres» on aura préalablement crée le paramètre comme ci-dessous 4. EXPLOITATION DU DOSSIER PERMANENT PAR MULTIQUID Depuis la version 2008 on peut exploiter directement les valeurs des dictionnaires limités et illimités. Dans tous les cas la on doit avoir la syntaxe : dico(code_dictionnaire,allias), qui permet de déterminer le dictionnaire sur lequel on va travailler. 1/ Pour un dictionnaire lié au dossier et à l exercice : Select A.socie, A.exo, A.dureexo1 from dico(dvisa,a) Ou «A.dureeexo1» est le nom de la variable précède de son allias. 2/ Pour un dictionnaire lié aux associés il faut rajouter un lien vers PPHYS pour avoir le nom de l associé : Select D.socie,T.codalph,D.COMMUNE,P.nom from dico(asspe,d) Inner join TIERS T on T.codalph=D.socie Inner join Nomti N on T.Code=N.anc Inner join PPHYS P on N.DES=P.code Dans les dictionnaire lié aux associés il faut savoir que le champ OBJET est un numéro de Guid permettant de remonter jusqu au nom de l associé comme dans l exemple ci-dessus. 3/ Pour les dictionnaires tableaux liés au dossier le champ OBJET vas servir à faire le filtre par rapport à la subdivision du tableau. Select V.SOCIE, V.EXO, V.DESIGNATIO from dico(voitu,v) where V.OBJET="DIRIG" 21/01/08 PEM_Multiquid.doc Page 9 / 13
5. ANNEXES 5.1. Gestionnaire Comme pour un quid, il est possible d ajouter un multiquid dans le gestionnaire de statistiques. Menu Stats=>Administrer puis clic droit Ajouter=>une statistique 5.2. Documentation Pour la modification de forme se reporter à la documentation «PEM_Descripteur_de_Formes». Pour obtenir le descriptif des tables se reporter à la documentation «Metabase». 5.3. Exemple Dans cet exemple nous ressortirons les clients n ayant pas été facturés dans l année, ce qui n est pas possible en passant par le module Quid. 1ère étape : On crée un nouveau multiquid en lui indiquant les informations de bases 21/01/08 PEM_Multiquid.doc Page 10 / 13
2nde étape : On crée les requêtes nécessaires. On va également alimenter l onglet SQL de chacune de ces requêtes : FINTRAV select devnr from cheng where artic="fintrav" and devnr is not null Cette requête permet de récupérer tous les numéros de missions auxquelles on a rattaché un article FINTRAV. 21/01/08 PEM_Multiquid.doc Page 11 / 13
MISSION select D.nr, D.dt, D.clien, C.nom, D.socie, E.dtdeb, E.dtfin from docen D left join cexo E on E.exo=D.exoc and E.socie=D.clien inner join clien C on C.code=D.clien where typdoc="dv" and facsolde="c" and extract(year from E.dtfin)=:annee and D.nr not in(select devnr from {FINTRAV}) Cette requête permet de récupérer les informations des missions sur base des réalisations qui ont un exercice ayant pour année de clôture l année passée en paramètre et qui ne font pas partie des résultats de la première requête. MISSION2 select D.nr, D.dt, D.clien, C.nom, D.socie from docen D inner join clien C on C.code=D.clien where typdoc="dv" and facsolde="c" and exoc is null and D.nr not in(select devnr from {FINTRAV}) Cette requête permet de récupérer les informations des missions sur base des réalisations qui ne sont pas rattachées à un exercice et qui ne font pas partie des résultats de la première requête. MISSION3 select D.nr, D.dt, D.clien, C.nom, D.socie, E.dtdeb, E.dtfin from docen D left join cexo E on E.exo=D.exoc and E.socie=D.clien inner join clien C on C.code=D.clien where typdoc="dv" and facsolde="c" and (extract(year from E.dtfin)=:annee or exoc is null) and D.nr in(select devnr from {FINTRAV}) and solnr is null Cette requête permet de récupérer les informations des missions sur base des réalisations n étant pas rattachées à un exercice ou ayant un exercice ayant pour année de clôture l année passée en paramètre; faisant partie des résultats de la première requête mais pour lesquelles le numéro de facture de solde est vide. 21/01/08 PEM_Multiquid.doc Page 12 / 13
3éme étape Il faut modifier la forme (clic droit => «modifier la forme d impression») car les résultats vont être dans 3 itérations différentes et la mise en forme origine n est pas forcément adéquate. Voici la forme à l origine. Voici la forme une fois modifiée. 21/01/08 PEM_Multiquid.doc Page 13 / 13