Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Comment saisir des données dans les grilles ajoutées dans le paramétrage des signalétiques ?

0000001769     -      21/07/2022

Mercator permet de saisir des données dans les grilles ajoutées dans le paramétrage des signalétiques, càd les grilles ajoutées via "Outils / Ecrans Signalétiques / Paramétrage".

Pour qu'une grille puisse être "read-write", il faut remplir ces conditions :

  • la grille doit être ajoutée de la même façon qu'une grille "read-only"
  • une seule table pourra être mise à jour via cette grille. Le nom de cette table doit être indiqué dans la propriété TableToUpdate de la grille. Il s'agira typiquement d'une table ajoutée à la base de données.
  • cette table doit contenir les champs suivants :
    • id : char(10) : contiendra une valeur aléatoire unique générée par Mercator
    • id_sig : char(10) : lien vers l'identifiant de la fiche en cours dans le signalétique. sig doit être remplacé par le nom du signalétique. Par exemple, pour les clients : ID_CLI
    • ordre : champ de type numérique afin de mémoriser l'ordre des lignes (valeur générée par Mercator)
  • dans la requête SQL, les champs modifiables sont à entourer par [], cette requête doit contenir au moins les champs id, id_sig et ordre, ceux-ci ne seront pas affichés.

Une grille "read-write" se reconnait parce que les boutons d'ajout, insertion et suppression de lignes sont présents en dessous de cette grille. Si ces boutons n'apparaissent pas, c'est qu'au moins une des conditions reprises ci-dessus n'est pas remplie.

Filtrage et recherche

En mode "Filtrage" ou recherche "multicritères" dans les signalétiques, les grilles "read-write" peuvent être utilisées afin de filtrer/chercher des enregistrements dans le signalétique de base. Pour filtrer sur base d'informations trouvées dans la table "enfant" alimentée par cette grille, il suffit d'ajouter une plusieurs lignes dans cette grille, lorsque Mercator est en mode "filtrage" (bouton "Filtrer" visible).

  • Si sur une même ligne, plusieurs champs sont complétés, ceux-ci sont combinés dans une clause where avec l'opérateur logique AND
  • Si plusieurs lignes sont saisies, alors les clauses where de chaque ligne sont combinées avec l'opérateur logique OR

Bien entendu, la recherche sur base de données dans ces grilles peut être combinée sans limite avec la recherche standard dans les différentes zones du signalétique. De même, il est possible de combiner des recherches faisant appel à différentes grilles "read-write". Toutes les conventions de recherche multicritères dans les zones standards du signalétique (utilisation de ..., %, =) s'appliquent aussi dans ces grilles.

Remarques :

  • Dans la définition de la table ajoutée, il est recommandé d'utiliser les même types de champ que ceux qui sont habituels pour Mercator. En déclarant chacun des champs comme "NOT NULL" et avec chaque fois une valeur par défaut à blanc
  • Il est possible que la requête SQL fasse référence à plusieurs tables (jointures entre tables). Cependant, comme une seule table est "read-write", seuls les champs de cette table peuvent être mis entre [].
  • Nous recommandons vivement que la clé primaire de la table ajoutée soit ID_SIG,ID
  • Nous recommandons vivement de créer un index sur le champ ORDRE
  • Nous recommandons vivement de créer une foreign key (relation) entre ID_SIG et l'ID de la table de base du signalétique correspondant, en activant dans cette clé primaire la cascade de suppression et la cascade de mise à jour (sinon, la fonctionnalité qui permet de changer la clé primaire à partir du TOOLS de Mercator ne fonctionnera plus)
  • Nous n'avons pas envisagé d'alimenter par ce processus des tables standards de Mercator telles que documents, écritures comptables ou autres signalétiques
  • Cette fonctionnalité est disponible dans tous les signalétiques de Mercator

 


 

Exemple :

1. Soit une table CLIEXT ajoutée dans la database de Mercator sur le serveur SQL. Cette table peut être créée avec l'interface graphique des outils SQL ou avec la script SQL suivant :

CREATE TABLE [dbo].[CLIEXT](
                [ID_CLI] [char](10) NOT NULL default '',
                [ID] [char](10) NOT NULL default '',
                [ORDRE] [int] NOT NULL default 0,
                [CHAMP1] [varchar](50) NOT NULL default '',
                [CHAMP2] [varchar](50) NOT NULL default '',
                [CHAMP3] [varchar](50) NOT NULL default '',
                [CHAMP4] [bit] NOT NULL default 0,
                [DATE] [datetime] NOT NULL default '19000101',
CONSTRAINT [PK_CLIEXT] PRIMARY KEY CLUSTERED
(
                [ID_CLI] ASC,
                [ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

ALTER TABLE [dbo].[CLIEXT] WITH CHECK ADD CONSTRAINT [FK_CLIEXT_CLI] FOREIGN KEY([ID_CLI]) REFERENCES [dbo].[CLI] ([C_ID]) ON UPDATE CASCADE ON DELETE CASCADE

CREATE INDEX ORDRE ON [dbo].[CLIEXT] (ORDRE)

 

2. Une grille est ajoutée au signalétique client. La propriété "Upd. table" de cette grille est mise à CLIEXT et sa requête SQL

select id_cli,id,ordre,[champ1],[champ2],champ3,[champ4],[date] from cliext where id_cli=@c_id order by ordre

Cette requête indique que les champs CHAMP1, CHAMP2, CHAMP4 et DATE seront modifiables. CHAMP3 restera "read-only".

 


Pour la mise en place d'une une liaison vers un signalétique, voir le second exemple sur cette page.