Paramétrage > Exploitation > Impressions > Requêteur graphique 

Présentation générale

Le requêteur graphique est une fonction permettant de créer des écrans d'interrogation faisant apparaître le résultat de requêtes faites sur la base de données. Il fonctionne par extraction temporaire de données dans une table, puis consultation de cette table. La consultation peut ensuite se faire sur plusieurs niveaux de détail, définis par des ruptures successives.

La structure de cette table temporaire permet à chaque utilisateur de conserver les résultats de la dernière requête faite (sauf si c'est une requête partagée). L'utilisation de cette fonctionnalité implique trois étapes différentes :

  • définition de la requête par cette fonction.
  • lancement de la requête (soit par le bouton , soit par entrée dans la fonction d'interrogation et demande de rafraîchissement des données).
  • interrogation de la requête si elle a déjà été exécutée.

Une requête peut être constituée à partir de champs de table ou d'expressions

Les jointures entre les tables sont déterminées automatiquement à partir du dictionnaire, mais il est possible de les définir explicitement par glisser-déplacer d'un champ d'une table vers une autre. Une condition préalable est que le champ destination fasse partie d’une clé.

Il est à noter que deux outils complémentaires existent. Un requêteur équivalent à celui-ci mais en mode tableau et un requêteur SQL passant par des écrans d'interrogation similaires mais dont le but est de concevoir des requêtes basées sur le langage SQL.

Prise en main de l'interface

La zone de création de requêtes est constituée d'une palette flottante, d'un espace de conception du modèle et d'une zone de dépôt des champs sélectionnés.

La palette flottante

Elle regroupe les boutons :

  • Table : Ouvre une liste de sélection pour ajouter une table.
  • Expression : Ouvre l'assistant de formule pour ajouter une expression.
  • Effacer : Réinitialise la requête.
  • Codes : Case à cocher permettant d'afficher ou non les codes des champs en plus des libellés.
L'espace de conception du modèle
Les tables

C'est dans cet espace que les tables ajoutées sont représentées avec leurs jointures.

Pour ajouter une table, cliquer sur le bouton "Table" de la palette flottante.

Les actions possibles sur une table sont :

  • La suppression par clic sur la croix en haut à droite de la table. Attention, une table ne pourra être supprimée qu'après avoir supprimé tous ses liens et retirer tous ses champs de la zone de dépôt.
    ../FCT/GESALT_01_01.jpg
  • La réduction / expansion par clic sur le bouton à gauche de la croix.
    ../FCT/GESALT_01_01.jpg  ../FCT/GESALT_01_02.jpg
  • Le déplacement à l'aide de la barre de titre ou la barre inférieure.
  • Le redimensionnement de la table en utilisant le grip en bas à droite de la table.
    ../FCT/GESALT_01_03.jpg
Les jointures

Les jointures qui n'ont pas été créées en automatiques peuvent être créées par glisser-déplacer du champ de la table source vers le champ de la table cible. Une jointure de type externe gauche est alors créée.

Un clic sur une jointure fait apparaitre un menu permettant de changer son type (externe gauche ou interne) ou de la supprimer.

Arrière plan

Un glisser-déplacer dans un emplacement libre de l'espace de conception permet de repositionner cet espace. Un double-clic permet de replacer l'espace de conception par rapport à son origine.

../FCT/GESALT_01_04.jpg

La zone de dépôt

La zone de dépôt permet de :

  • Visualiser les champs sous forme de vignettes.
  • Modifier l'ordre et les propriétés (tri, cumul, bornes, visibilité) de celles-ci.
  • Gérer les expressions.
  • Gérer les ruptures de la requête.
Ajouter un champ

Pour ajouter un champ de table, double cliquer sur celui-ci ou faire un glisser-déplacer du champ vers la zone de dépôt.

Ajouter une expression

Pour ajouter une expression, cliquer sur le bouton "Expression" de la palette flottante.

Editer une expression

Cliquer sur le libellé de l'expression pour faire apparaître la fenêtre de ses propriétés.

Modifier les propriétés d'une vignette

Cliquer sur les icônes pour modifier la valeur des propriétés. Un affichage estompé indique une négation de la valeur (exemple: non trié).
../FCT/GESALT_02_02.jpg  ../FCT/GESALT_02_03.jpg
Signification des icônes de gauche à droite : Visible, tri, cumul, saisie des bornes

Supprimer une vignette

Cliquer sur la croix en haut à droite de la vignette.
../FCT/GESALT_02_01.jpg

Déplacer une vignette

Cliquer sur le grip en haut de la vignette et la déplacer sans relâcher le bouton de la souris, puis relâcher à la position désirée. Les déplacements ne peuvent se faire que sur un même niveau.
../FCT/GESALT_02_01.jpg

Créer un niveau de rupture (groupe)

Cliquer sur le grip de la vignette, un menu apparaît avec différent libellés. Sélectionner "Créer un groupe" pour amener la vignette en tête d'un nouveau groupe.

Déplacer une vignette vers un niveau de rupture existant

Cliquer sur le grip de la vignette, un menu apparaît avec différents libellés. Sélectionner "Groupe N", où N est le niveau du groupe, pour amener la vignette en queue du niveau choisi.

Pré-requis

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre

Gestion de l'écran

La définition d'une requête se fait sur plusieurs onglets, dont seul le premier est obligatoire.

En-tête

Présentation

Dans cette section, on trouve des informations permettant d'identifier la requête et quelques paramètres de portée générale.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Ce code permet d'identifier une requête.

  • Intitulé (champ INTIT)

Permet de définir un intitulé associé à chaque fiche.

  • Intitulé court (champ INTITSHO)

Cet intitulé permet de donner une désignation à la fiche.
Il est utilisé dans certains écrans ou états lorsqu'il n'y a pas assez de place pour visualiser l'intitulé long.

Fermer

 

Onglet Champs

Présentation

Cet onglet permet de définir et de regrouper les informations à éditer grace à un éditeur visuel.

A partir de l'ensemble des informations définies dans cet éditeur, le requêteur détermine une requête sur des tables liées par des conditions de jointure. Ainsi, dans les cas simples, il n'est pas nécessaire de remplir les onglets suivants.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Bloc numéro 1

  • Actif (champ ENAFLG)

Cette case à cocher permet d'activer ou de désactiver la fiche courante sans pour autant perdre son contenu.

Une fiche désactivée ne peut pas être utilisée (par appel de son code) dans d'autres fiches (documents, paramétrages...), ou lors de traitements de masse.

Les habilitations sur une fonction donnée peuvent interdire la création d'une fiche active. Dans ce cas, la case est désactivée par défaut, et est modifiable uniquement par un utilisateur autorisé, ou via un circuit de signature défini par Workflow.

Bloc numéro 2

  • champ CLBFL

 

Fermer

 

Onglet Avancé

Présentation

Cet onglet, dont la saisie est optionnelle, permet de préciser :

  • des critères relatifs à la présentation des données (pagination, état utilisé...).
  • des critères de sélection complémentaires.
  • des conditions de jointure particulières.

Les conditions de jointure sont utiles dans les deux cas suivants :

  • si l'algorithme de jointure automatique n'aboutit pas. Ce cas est facile à diagnostiquer, car un message d'erreur explicite est affiché à la validation de la requête. Il suffit parfois de rajouer un lien vers une des tables dont les liens ne sont pas décrits dans le dictionnaire pour résoudre ce cas (les autres resteront déterminés automatiquement).
  • si l'algoritme de jointure lie les tables d'une façon non conforme à ce qui est attendu. En effet, dans des cas complexes, plusieurs liens peuvent exister entre des tables ; or l'algorithme s'arrête au premier lien trouvé. Pour vérifier que la jointure est conforme à ce que l'on attendait, on peut utiliser le bouton Infos / Liens, qui donne le détail des liens trouvés.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Bloc numéro 1

  • Nombre lignes (champ NBRLIG)

Permet de définir un nombre de lignes par page logique dans l'écran de consultation généré par le requêteur. Si ce nombre de lignes excède le nombre de lignes physiques affichables, un ascenseur apparaît à droite du tableau. Des boutons situés en haut de l'écran permettront de naviguer entre pages logiques (visualiser la suivante, précédente, dernière, première).

  • Maximum lignes (champ MAXLIG)

Le nombre de lignes maximum correspond à un paramètre de la requête (maxrows) qui arrête la recherche lorsqu'un nombre de lignes satisfaisant aux conditions a été trouvé dans la base (ces lignes seront ensuite triées, mais la base ne garantit pas que les N lignes trouvées sont les N premières dans l'ordre de tri). Il s'agit d'une optimisation permettant de limiter la charge pour la base de données.

  • Nb colonnes fixes (champ NBRCOL)

Permet de figer les x premières colonnes d'un tableau en cas de pagination horizontale.

  • Temps maximum (champ MAXTIM)

Permet d'arrêter la recherche au bout de ce temps (exprimé en secondes). Ceci permet d'éviter d'attendre trop longtemps dans le cas notamment de paramétrage d'une nouvelle requête.

Note : Contrairement au nb maximum de lignes, cette information n'est pas transmise à la base de données. Le temps maximum peut donc être dépassé si la durée de la requête est trop importante.

Définit le code d'un état qui sera associé à la fonction Fichier / Liste à partir de la consultation des requêtes. S'il n'est pas renseigné, on utilise l'état ALISTE, qui proposera une mise en page par défaut. Il est possible de dupliquer cet état générique (il ne sera en principe nécessaire que de modifier la mise en page) pour créer des états parfaitement adaptés à la requête ainsi définie.

Le code état saisi ici peut être associé à un ensemble de codes impression via la fonction dédiée.

Sélections

  • Critères de sélection (champ SEL)

Permet de saisir des critères de sélection, qui sont des expressions logiques portant sur des champs des tables, et pouvant inclure des constantes, des fonctions, des opérateurs. Seuls les lignes des tables satisfaisant à ces conditions seront extraites. L'éditeur de formule permet de simplifier l'écriture de telles expressions.

Liens

  • Expression de lien (champ LNK)

Il faut définir ici les liens qui ne sont pas définis dans le dictionnaire ou qui doivent être pris en priorité. La structure du lien doit correspondre à la clé du fichier à lier. Il doit y avoir autant de champs séparés par des points-virgules que de parties de clé. En effet, la syntaxe exacte est :

[F:ABV1]CLE=expression1 ; expression2..., où :

*    [F:ABV1]CLE est la clé de la table liée. Via clic droit, on a accès à la fonction Choix table, qui propose la liste de toutes les tables présentes dans le premier onglet. La sélection d'une des tables provoque l'affichage du premier index de la table. Si on désire utiliser un autre index, il est possible de le faire à l'aide de la fonction Choix d'un index, toujours accessible via clic droit, qui proposera de choisir parmi la liste de tous les index de la table précédemment sélectionnée.

*    expression1, expression2 sont les expressions permettant de donner des valeurs aux différents champs de la clé définie précédemment (si la clé est en une partie, il n'y a qu'une expression, sinon, les expressions sont séparées par un point-virgule). On dispose par ailleurs de la fonction Choix d'un champ, qui permet de renseigner les différentes valeurs de la clé avec des champs de l'une des tables concernées. Après le choix de la clé, qui fait apparaître le nombre de points-virgules définissant les partie de clé à renseigner, cette fonction permet de remplir successivement toutes les parties manquantes. Il est à noter que l'on peut définir des parties de clés constantes.

Du point de vue de la base de données, cette syntaxe définit des jointures externes gauches. Il est à noter qu'une deuxième syntaxe permet de définir des jointures strictes (ce qui peut avoir un intérêt sur le plan des performances). On ajoute alors un tilde (~) à la syntaxe qui devient :

[F:ABV1]CLE~=expression1 ; expression2...

Fermer

 

Onglet Accès

Présentation

Cet onglet permet de définir les conditions d'accès à la requête et aux données extraites.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

  • Type de requête (champ ALLUSR)

Permet de gérer l'affichage d'une requête en consultation, avec les comportements suivants :

  • Requête normale : le résultat de la requête est affichée si la requête a déjà été consultée par l'utilisateur. En effet, chaque utilisateur lançant la requête crée un jeu de données qui lui est propre, et qui ne peut pas être vu par d'autres.
  • Requête partagée : le résultat de l'exécution de cette requête par un utilisateur peut être consulté par d'autres utilisateurs. L'intérêt d'avoir des requêtes partagées réside dans le fait qu'une requête lourde, lancée à un moment donné par un seul utilisateur, permet ensuite à un ensemble d'utilisateurs de disposer d'une information commune. Il est recommandé, pour ce genre de requête, que seul un utilisateur puisse exécuter la requête, les autres y ayant accès en consultation. En outre, il est parfaitement loisible de calculer ce type de requête en batch si elle est particulièrement lourde à constituer ; le code de la tâche batch correspondante s'appelle en effet CALALH.
  • Requête recalculée : le résultat de la requête ne s'affiche jamais automatiquement. Il faut appuyer sur le bouton rafraîchir ou saisir les critères. L'intérêt de ce type de requête est d'éviter de recharger des données si on sait qu'elles se périment rapidement.
  • Groupe (champ GRP)

Permet de disposer d'un critère de classification des requêtes.

Ce code d'accès permet de restreindre l'accès à la fiche courante à certains utilisateurs.
Si la zone est renseignée, seuls les utilisateurs disposant de ce code d'accès dans leur profil peuvent visualiser et modifier cette fiche.

Le droit d'exécution contrôle le fait que l'on puisse exécuter la requête en question (en rafraîchissant la requête ou en modifiant les paramètres et en la ré-exécutant).

Permet de déterminer des filtres d'habilitation appliqués à la constitution de la requête. Ces filtres sont les filtres par site, par rôle, et par code accès.

Les principes du filtrage sont les suivants :

  • Le code objet permet de déterminer quels les champs code accès et code site sur lesquels un filtre doit être fait.
  • Ce filtre est alors réalisé en fonction des sites autorisés et des droits d'accès accordés pour la gestion d'objet à l'utilisateur exécutant la requête.
  • De même, le filtre sur les rôles, définis par le code objet, est aussi appliqué.

Ceci suppose bien entendu que la table sur laquelle sont fait les filtres fasse partie de la requête générée. On entend par là la table où se trouvent les champs code accès, code site, et le cas échéant le champ défini par les rôles accordés à l'utilisateur. Il ne s'agit pas forcément de la table principale de la requête : par exemple, une requête sur des lignes de documents peut très bien être filtrée par rapport à des autorisations données sur des champs de tables liées à l'en-tête du document.

Attention, ces filtres sont appliqués uniquement lors du calcul de la requête, et en aucun cas lors de la consultation. Ceci peut être sensible si la requête est partagée, par exemple, ou si les filtres par site d'un utilisateur ont évolué entre le moment où la requête a été calculée et le moment où on la visualise.

Permet de lier les autorisations d'accès à la requête aux autorisations données sur la fonction.

Le principe est le suivant : on vérifie, à l'entrée dans la requête, que la fonction liée est autorisée à l'utilisateur (pour au moins un site, si l'habilitation sur cette fonction se fait par site). Mais cette vérification se fait  uniquement dans le cas où cette requête n'est pas partagée.

En effet, si la requête est partagée, on part du principe que les habilitations de la personne ayant calculé la requête s'appliquent et se propagent à tous ceux qui ont le droit de la visualiser. Il convient donc de définir de façon très soigneuse les habilitations aux requêtes partagées, lorsqu'elles concernent des données sensibles. Ceci est fait via le code d'accès situé dans cet onglet.

Fermer

 

Onglet Graphique

Présentation

Cet onglet ne peut être rempli que si une présentation graphique est possible pour la requête. On définit alors la façon dont les données sont présentées sur le graphique.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Bloc numéro 1

  • Représentation (champ REPGRA)

Cet indicateur définit la façon dont la représentation des données va être faite à l'écran. Les possibilités offertes sont les suivantes :

  • Caractère :  les données sont uniquement représentées sous la forme d'un tableau.
  • Car. ou Graph. : les données sont présentées sous l'un des deux modes. Le mode par défaut est déterminé par le champ Affichage par défaut défini dans les paramètres graphiques de la fiche.
  • Car. et Graph. : les données sont présentées sous les deux modes simultanément. La position du graphique par rapport au tableau est déterminée par le champ Position de l'onglet Graphique.
  • Graphique :  les données sont uniquement présentées sous la forme d'un graphique.
  • champ OPTGRA

Permet d'organiser la cohabitation entre caractère et graphique, lorsque le mode de présentation des données permet les deux. Selon les cas :

  • si la représentation est Car ou Graph, on choisit la valeur par défaut de la représentation.
  • si la représentation est Car et Graph, on donne la position du graphique par rapport au tableau de données.

Bloc numéro 3

  • champ IMAG

Image explicative d'informations précédemment saisies.

Graphique

  • Type (champ TYPGRA)

Ce champ est utile dès que l'on a plus d'une valeur numérique dans le tableau susceptible d'être présenté sous forme graphique. Il peut prendre deux valeurs :

  • Graphe simple : dans ce cas, on ne voit qu'une colonne de valeurs à la fois (un sélecteur permet de choisir laquelle)
  • Multi-graphe : dans ce cas, on voit toutes les colonnes affichables, combinées selon le paramètre défini par le paramètre Représentation.
  • Représentation (champ FSHGRA)

Lorsque l'on présente plusieurs séries dans le graphe (sous réserve que la présentation de toutes les séries soit identique et ne soit pas de type secteur), il est possible de préciser comment on combine les séries de valeurs à l'affichage, en saisissant la valeur suivante  :

  • Multipermet de présenter les valeurs de chaque série côte à côte (une couleur par série)
  • Cumulatif permet de présenter les valeurs en cumul vertical.
  • Comparatif permet de les présenter en comparaison relative (la hauteur du graphe est constante).
  • Graphique par défaut (champ DEFGRA)

Définit la représentation graphique utilisée pour les données à présenter (parmi les choix Barres, Lignes, Aires, Secteurs). Une image affichée en fonction du choix fait illustre le type de présentation obtenu.

Si on ne présente qu'une seule série de valeurs, la représentation graphique par défaut est fixée par ce paramètre.

Si on présente plusieurs séries de valeurs, il est possible de mixer les modes de présentation (une série sous forme de barre, une autre sous forme de ligne, par exemple). Dans ce cas, chaque série de valeurs est représentée en fonction du champ Représentationsitué dans le tableau des champs :

  • s'il vaut Barreou Ligne, ce mode de représentation est utilisé pour la série de valeurs concernée s'il est compatible avec la représentation graphique par défaut (il n'est pas possible de mixer des secteurs avec des barres ou des lignes).
  • s'il vaut Défaut, on utilise le mode de représentation graphique par défaut pour la série.

A l'utilisation, si la représentation des séries est homogène (a fortiori s'il n'y a qu'une série dans le graphe), on dispose d'un sélecteur de graphiques pour passer dans un autre mode rede présentation.

Bloc numéro 4

Fermer

 

Boutons spécifiques

Ce bouton génère un traitement associé à la requête, ainsi que l'écran de consultation dédié. Cette validation est enchaînée à l'enregistrement d'une fiche, mais il est possible de la lancer indépendamment si une requête a par exemple été transférée par copie.

Les champs suivants sont présents dans la fenêtre ouverte par ce bouton :

Bloc numéro 1

  • champ OBJET

 

  • champ CLES

 

Bloc numéro 2

  • Depuis le dossier (champ DOSORG)

Ce champ permet de définir le dossier à partir duquel la fiche va être copiée. Les syntaxes possibles sont décrites dans l'annexe dédiée.

  • Tous dossiers (champ TOUDOS)

Cette option permet de copier la fiche vers tous les dossiers définis dans le dictionnaire (table ADOSSIER de la solution courante).

  • Vers le dossier (champ DOSDES)

Ce champ permet de définir le dossier dans lequel la fiche va être copiée. Les syntaxes possibles sont décrites dans l'annexe dédiée.

Fermer

Ce bouton permet de recopier la définition de la fiche depuis ou vers un autre dossier.

Permet le lancement de la requête courante. L'exécution se déclenche en mettant à jour une table temporaire, et chaîne sur la fonction de visualisation des requêtes, qui permet de visualiser le détail des mouvements, mais également d'agréger successivement sur les différents niveaux de rupture définis.

Messages d'erreur

Outre les messages génériques, les messages d'erreur suivants peuvent apparaître lors de la saisie :

Trop de critères de tri

Trop de bornes

Trop de cumuls

Des limites sont dépassées dans la complexité de la requête. On limite en effet le nombre de critères de tri à 8, et le nombre de bornes et de cumuls à 10.

Table non définie

On a donné dans une expression une formule de calcul incluant des champs d'une table qui n'est pas en ligne

xxx : Table inexistante

yyy : Champ inexistant

La table ou le champ n'existent pas dans le dictionnaire

Indice incorrect

Un champ est indicé avec une valeur qui dépasse la dimension du champ

Liens impossibles

Les liens entre les tables n'ont pas pu être établis à partir du dictionnaire. Soit il y a une erreur dans la requête, soit il faudra préciser de façon détaillée les liens dans l'onglet Avancé.

Ce champ a déjà été sélectionné

On essaye de rajouter un champ dans les champs sélectionnés, mais ce champ existe déjà.

Action inconnue

Le composant flash a renvoyé une action non gérée par le superviseur

Liens impossibles. Les zones doivent être de même type

Il n'est pas possible de faire des liens entre des champs de table de type différent. Exemple : un champ numérique ne peut être lié à un champ de clé alphanumérique

Lien Impossible. Composante de clé déjà saisie

Dans le cas où on a commencé à établir un lien avec une clé d'une table, il faut faire des liens sur toutes les parties de cette clé. Ce message s'affiche si on essaye de faire un lien sur un champ qui ne fait pas partie de cette clé.

Lien Impossible. Clé existante incomplète

Le lien n'a pas été définie sur tous les champs de la clé

Lien Impossible. Clé inexistante

On essaye de faire un lien sur champ qui ne fait pas partie d'une clé.

Il faut au moins un champ de type libellé et de type valeur pour utiliser le graphisme

Quand le champ "Représentation graphique" est activé, il faut, parmi les champs sélectionnés, en définir un pour l'intitulé des graphes et au moins un pour le calcul des graphes

Type de données non géré

Il n'est pas possible d'utiliser un champ de type clob ou blob dans les expressions des champs sélectionnés

Tables mises en oeuvre

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre