Mercator permet l'utilisation de fourchettes propres aux signalétiques dans les différents reportings définis via "Outils / Paramétrage Documents". Ces fourchettes sont utilisables sur l'ID, les 3 clés et le nom, dans chacun des signalétiques.
Ces constantes sont :
- pour les clients
- @CONST_C_ID_1 et @CONST_C_ID_2
- @CONST_C_CLE1_1 et @CONST_C_CLE1_2
- @CONST_C_CLE2_1 et @CONST_C_CLE2_2
- @CONST_C_CLE3_1 et @CONST_C_CLE3_2
- @CONST_C_NOM_1 et @CONST_C_NOM_2
- pour les articles
- @CONST_S_ID_1 et @CONST_S_ID_2
- @CONST_S_CLE1_1 et @CONST_S_CLE1_2
- @CONST_S_CLE2_1 et @CONST_S_CLE2_2
- @CONST_S_CLE3_1 et @CONST_S_CLE3_2
- @CONST_S_MODELE_1 et @CONST_S_MODELE_2
et ainsi de suite pour chacun des signalétiques de Mercator (GEN, ANA, PROJ, DEST, IMM, TACT, XLEAD, ...)
Mercator détecte dans la requête SQL la présence d'une ou de plusieurs de ces variables et affichent la ou les boîtes de dialogue permettant de saisir ces constantes. La saisie de ces constantes est validée par rapport aux enregistrements du signalétique sous-jacent. Les déroulants sont de type "combo", ce qui signifie qu'on peut les utiliser comme liste déroulante ou comme champ de type texte avec saisie classique.
Exemple de requête :
select *
from stock
where (s_cle1>=@CONST_S_CLE1_1) and (s_cle1<=@CONST_S_CLE1_2)
order by s_cle1
Ce système peut être avantageusement couplé au choix de paramètres, puisque le remplacement des chaînes $PARAMi$ est effectué avant l'appel des fenêtres décrites ci-dessus.
Par exemple :
select *
from stock
where ($PARAM1$>=@CONST_$PARAM1$_1) and ($PARAM1$<=@CONST_$PARAM1$_2)
order by $PARAM1$
Il existe également la possibilité de proposer un rapport concernant la fiche ouverte du signalétique correspondant.
Par exemple :
select *
from stock
where (s_id=@s_id)
Le rapport ne donnera que les données de la fiche article ouverte.
Si plusieurs fiches articles sont ouvertes (et que le rapport est appelé via "Gestion > Documents - Reporting"), un écran de sélection apparaît :
Par extension, ce principe est disponible pour chaque champ de la table du signalétique.
Le comportement consiste alors à montrer les données de toutes les fiches du signalétique ouvert qui correspondent à la valeur de la fiche courante.
Par exemple (le rayon de la fiche article ouverte est « Rayon Dames ») :
select *
from stock
where (s_id_rayon=@s_id_rayon)
Le résultat reprend toutes les fiches des articles dont le rayon est « Rayon Dames ».
Cas particulier pour les comptes analytiques
La fenêtre de sélection des fourchettes analytiques est dotée d'un déroulant supplémentaire permettant au préalable de sélectionner un plan analytique. Le numéro du plan choisi est automatiquement stocké dans la variable globale @GLOBAL_A_PLAN. De la sorte, il est possible de tenir compte du plan choisi dans les requêtes SQL :
where a_plan=@GLOBAL_A_PLAN
Dans le cas où on choisit "<TOUS>", @GLOBAL_A_PLAN renvoie zéro. Il faut donc en tenir compte dans la construction de la requête SQL en adaptant par exemple la requête SQL comme suit (clause moins performante) :
where ((case when @GLOBAL_A_PLAN=0 then 0 else a_plan-@GLOBAL_A_PLAN end)=0)
Si on souhaite qu'un plan soit proposé par défaut, il suffit, dans la requête SQL de faire suivre @GLOBAL_A_PLAN du numéro du plan souhaité.
Par exemple, pour que le plan 2 soit proposé par défaut :
where a_plan=@GLOBAL_A_PLAN2
Notez que peu importe l'endroit où se trouve cette chaîne GLOBAL_A_PLANi. Si on souhaite que "<TOUS>" soit sélectionné par défaut, il faut utiliser GLOBAL_A_PLAN0.
Notez aussi que ce chiffre supplémentaire passé pour sélection du plan par défaut est retiré de la requête avant son exécution.
GLOBAL_A_PLAN doit être noté en majuscules obligatoirement. (Un seul indice de plan par défaut peut être utilisé par requête)