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

Ajouter des colonnes personnalisées dans l'export des signalétiques

0000002462     -      23/08/2016

Cette programmation montre comment ajouter des colonnes personnalisées dans l'export standard des signalétiques. Ceci se fait via l'évènement ExportingFields disponible sur la classe MercatorUi.Sig.Sig. Dans cet exemple, nous ajoutons 3 colonnes à l'export du signalétiques articles.

Le code exploite l'interface ISigCreated et s'établit comme suit :

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using MercatorApi;

namespace SigStock
{
    public class Customizer : MercatorUi.ICustomizers.ISigCreated
    {

        public void SigCreated(MercatorUi.Sig.Sig Sig)
        {
            Sig.ExportingFields += new MercatorUi.Sig.Sig.ExportingFieldsEventHandler(Sig_ExportingFields);
        }

        void Sig_ExportingFields(object sender, MercatorUi.Sig.Sig.ExportingFieldsEventArgs e)
        {
            e.NodesToAdd.Add(new MercatorUi.Forms.Sig.SigClasses.ExportFieldNode("CA 30 derniers jours", "(select sum(tot_net_ht) from lignes_v inner join pieds_v on (pieds_v.id=lignes_v.id) and (pieds_v.journal=lignes_v.journal) and (pieds_v.piece=lignes_v.piece) where (lignes_v.id_article=s_id) and (pieds_v.type=1) and (pieds_v.date>=dbo.ADD_DATE(getdate(),-30))) as tot_ven", MercatorUi.Forms.Sig.SigClasses.ExportFieldNodeIconEnum.Float));
            e.NodesToAdd.Add(new MercatorUi.Forms.Sig.SigClasses.ExportFieldNode("Nom fourn. principal", "(select dbo.XNOM('FOU',id_fou) from artfou where (id_art=s_id) and (principal=1)) as fou_princ", MercatorUi.Forms.Sig.SigClasses.ExportFieldNodeIconEnum.String));
            e.NodesToAdd.Add(new MercatorUi.Forms.Sig.SigClasses.ExportFieldNode("Cpte général vente", "(select dbo.XNOM('GEN',s_comptev)) as s_comptev_nom", MercatorUi.Forms.Sig.SigClasses.ExportFieldNodeIconEnum.String));
        }
    }
}

Le constructeur de ExportFieldNode attend 3 paramètres :

  • Le libellé du noeud dans la boîte de dialogue (il est essentiel que ce nom soit unique parmi tous les noeuds qui seront affichés dans la boîte de dialogue)
  • L'expression SQL qui sera in fine ajoutée à la requête SQL exécutée par Mercator en vue d'effectuer l'export. Idéalement, cette expression SQL pourra faire référence à une fonction SQL scalaire. Tous les champs de la table de base du signalétique (dans cet exemple STOCK) sont utilisables en tant que paramètres.
  • L'icône représentant le type de données à afficher dans la boîte de dialogue.