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