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 par code dans le LinesEditor compatibles avec la sauvegarde des colonnes

0000002639     -      04/05/2016

Voici un exemple de customizer montant comment ajouter des colonnes par code dans le LinesEditor, tout en veillant à ce que cet ajout de colonnes soit parfaitement compatible avec la fonctionnalité "Sauvegarder les colonnes" de la séquence. Ainsi, ces colonnes ajoutées seront traitées comme des colonnes standards et leur position / taille sera bien sauvegardée et réappliquée lors d'une prochaine réouverture de ce même écran.

Le customizer utilise l'évènement LinesEditorPrefApplying du BillingEngine. Il est levé juste avant que Mercator ne réapplique les préférences sauvegardées en ce qui concerne les positions et tailles des colonnes de la grille.

Le code C# est le suivant :

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Windows.Forms;

namespace Billing
{
    public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
    {

        public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
        {
            BillingEngine.LinesEditorPrefApplying += new MercatorUi.Engine.Gescom.BillingEngine.LinesEditorPrefApplyingEventHandler(BillingEngine_LinesEditorPrefApplying);
        }

        public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
        {
            BillingEngine.LinesEditorPrefApplying -= new MercatorUi.Engine.Gescom.BillingEngine.LinesEditorPrefApplyingEventHandler(BillingEngine_LinesEditorPrefApplying);
        }

        private void BillingEngine_LinesEditorPrefApplying(object sender, MercatorUi.Engine.Gescom.BillingEngine.LinesEditorPrefApplyingEventArgs e)
        {
            DataGridViewTextBoxColumn newCol = new DataGridViewTextBoxColumn();
            newCol.Name = "Name";
            newCol.HeaderText = "Header";
            newCol.Width = 100;
            newCol.DataPropertyName = "Source";
            newCol.ReadOnly = false;
            newCol.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
            e.Grid.Columns.Add(newCol);
        }
    }
}