L'exemple de code ci-dessous permet de supprimer les colonnes prix et remises de l'objet ArtFou. Cette suppression ne sera effective que pour les utilisateurs dont le département ne contient ni 'A', ni 'M', ni 'I'.
Note : si ces conditions ne sont pas nécessaires (colonnes supprimées dans tous les cas) alors cela peut être effectué sans code via les règles de colonnes (Hidden = true).
La programmation se fait via un customizer de signalétique articles SigStock. Celui-ci va implémenter ces 2 interfaces :
Le code s'établit comme suit :
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Linq;
using MercatorExtensions;
namespace SigStock
{
public class Customizer : MercatorUi.ICustomizers.IFormLoadCustomizer, MercatorUi.ICustomizers.IFormClosedCustomizer
{
public void FormLoadCustomize(Form form)
{
MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)form;
MercatorUi.Forms.Sig.SigGrids.ArtFou artFou = sigForm.MovableControls.Values.OfType<MercatorUi.Forms.Sig.SigGrids.ArtFou>().FirstOrDefault();
if (artFou != null)
artFou.AfterColumnsCreated += Artfou_AfterColumnsCreated;
}
public void FormClosedCustomize(Form form)
{
MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)form;
MercatorUi.Forms.Sig.SigGrids.ArtFou artFou = sigForm.MovableControls.Values.OfType<MercatorUi.Forms.Sig.SigGrids.ArtFou>().FirstOrDefault();
if (artFou != null)
artFou.AfterColumnsCreated -= Artfou_AfterColumnsCreated;
}
private void Artfou_AfterColumnsCreated(object sender, EventArgs e)
{
MercatorUi.Forms.Sig.SigGrids.ArtFou artFou = (MercatorUi.Forms.Sig.SigGrids.ArtFou)sender;
if (!(Globals.CurrentUserRecord.DEPT.Contains("A") ||
Globals.CurrentUserRecord.DEPT.Contains("M") ||
Globals.CurrentUserRecord.DEPT.Contains("I")
))
{
artFou.Grid.Columns["remise"].Visible = false;
artFou.Grid.Columns["remise2"].Visible = false;
artFou.Grid.Columns["remise3"].Visible = false;
artFou.Grid.Columns["remise4"].Visible = false;
artFou.Grid.Columns["prix"].Visible = false;
}
}
}
}
Autre module concernant Artfou : Ajouter une colonne "Prix Net" dans l'objet ArtFou