Kolommen toevoegen per code in de LinesEditor compatibel met de functie kolommen opslaan

0000002639     -      04-05-2016

Ziehier een customizer-voorbeeld die toont hoe je kolommen toevoegt via de LinesEditor, wetende dat deze manier om kolommen toe te voegen perfect compatibel is met de functie "Kolommen bewaren" in de sequentie. De toegevoegde kolommen zullen behandeld worden als standaardkolommen en hun positie en grootte worden bewaard, voor als men het scherm een volgende keer opent.

De customizer gebruikt het event LinesEditorPrefApplying van de BillingEngine. Deze wordt aangeroepen net voor Mercator de opgeslagen voorkeuren met betrekking tot positie en afmetingen inlaadt.

De C# code is volgende:

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);
        }
    }
}