Mercator 10.10 ou ultérieur offre des outils permettant de modifier facilement, et sans programmation, le comportement de certaines grilles. Nous montrons ici comment ajouter une colonne éditable dans la grille de disponible de la fiche "articles" en 3 étapes.
Cette colonne correspondant à un champ STATUT char(10) de la table DISPO.
Etape 1 : identifier la requête SQL de cette grille
Il est nécessaire de connaître la requête SQL qui alimente cette grille. Pour cela, il est aisé de se rendre dans "Outils > Editeur de Code" et d'activer l'enregistrement des requêtes modifiables.
Ensuite, il suffit d'ouvrir une fiche "articles" et de se rendre dans l'onglet contenant cette grille pour voir apparaître sa requête dans l'éditeur de code. L'enregistreur de requêtes peut alors être arrêté. La requête contient ceci :
select magasins.nom,magasins.id,dispo.dispo-dispo.qv_3 as dispo,dispo.dispo as stock,dispo.qv_1,dispo.qv_2,dispo.qv_3,
dispo.qa_1,dispo.qa_2,dispo.qa_3,dispo.stockmin,dispo.stockmax,num_mae into dbo.#dispo_tmp from dispo (NOLOCK) inner join magasins (NOLOCK) on (dispo.id_magasin=magasins.id) where (dispo.id_stock='107MB+ ')
declare @count int
select @count=count(*) from dbo.#dispo_tmp
if @count > 1
insert into dbo.#dispo_tmp select 'TOTAL','',sum(dispo),sum(stock),sum(qv_1),sum(qv_2),sum(qv_3),
sum(qa_1),sum(qa_2),sum(qa_3),sum(stockmin),sum(stockmax),9999 from dbo.#dispo_tmp
select * from dbo.#dispo_tmp order by num_mae
drop table dbo.#dispo_tmp
Etape 2 : modifier la requête
La requête doit être modifiée comme suit :
select magasins.nom,magasins.id,dispo.dispo-dispo.qv_3 as dispo,dispo.dispo as stock,dispo.qv_1,dispo.qv_2,dispo.qv_3,
dispo.qa_1,dispo.qa_2,dispo.qa_3,dispo.stockmin,dispo.stockmax,num_mae,statut into dbo.#dispo_tmp from dispo (NOLOCK) inner join magasins (NOLOCK) on (dispo.id_magasin=magasins.id) where (dispo.id_stock='107MB+ ')
declare @count int
select @count=count(*) from dbo.#dispo_tmp
if @count > 1
insert into dbo.#dispo_tmp select 'TOTAL','',sum(dispo),sum(stock),sum(qv_1),sum(qv_2),sum(qv_3),
sum(qa_1),sum(qa_2),sum(qa_3),sum(stockmin),sum(stockmax),9999,'' from dbo.#dispo_tmp
select * from dbo.#dispo_tmp order by num_mae
drop table dbo.#dispo_tmp
Pour cela, il faut se rendre dans "Outils > Ecrans Signalétiques > Paramétrage > Articles" et sélectionner la grille de type StockDispo. Il faut y éditer la propriété StringUpdater comme suit, afin de mettre en place les modifications décrites au point précédent :
Etape 3 : activer l'ajout automatique des colonnes personnalisées
Afin d'assurer la compatibilité ascendante avec d'éventuels paramétrages préexistants, Mercator doit savoir s'il doit activer l'ajout automatique des colonnes personnalisées sur cette grille. Cela se fait en cochant la case de la propriété AutoAddCustomColumns.
Cette fonctionnalité est aussi disponible dans les grilles suivantes :