La programmation décrite ici permet de retirer les éléments
- dernier prix d'achat
- PMPA
- prix de revient
du combo situé sous la grille des articles liés dans la fiche article.
Le code est construit sur base d'un customizer SigStock qui implémente ces interfaces :
La méthode FormLoadCustomize va permettre d'enregistrer l'évènement AssociatedPanelCreated, par lequel nous allons retirer les éléments non souhaités.
Le code est le suivant :
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Windows.Forms;
namespace SigStock
{
public class Customizer : MercatorUi.ICustomizers.IFormLoadCustomizer, MercatorUi.ICustomizers.IFormClosedCustomizer
{
public void FormLoadCustomize(System.Windows.Forms.Form WindowsForm)
{
MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)WindowsForm;
List<Control> l = sigForm.FindMovableControlsByType(typeof(MercatorUi.Forms.Sig.SigGrids.ArtLiens));
if (l.Count > 0)
{
MercatorUi.Forms.Sig.SigGrids.ArtLiens artLiens = (MercatorUi.Forms.Sig.SigGrids.ArtLiens)l[0];
artLiens.AssociatedPanelCreated += new MercatorUi.MovableControls.MovableGrid.AssociatedPanelCreatedHandler(artLiens_AssociatedPanelCreated);
}
}
public void FormClosedCustomize(System.Windows.Forms.Form WindowsForm)
{
MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)WindowsForm;
List<Control> l = sigForm.FindMovableControlsByType(typeof(MercatorUi.Forms.Sig.SigGrids.ArtLiens));
if (l.Count > 0)
{
MercatorUi.Forms.Sig.SigGrids.ArtLiens artLiens = (MercatorUi.Forms.Sig.SigGrids.ArtLiens)l[0];
artLiens.AssociatedPanelCreated -= new MercatorUi.MovableControls.MovableGrid.AssociatedPanelCreatedHandler(artLiens_AssociatedPanelCreated);
}
}
void artLiens_AssociatedPanelCreated(object sender, MercatorUi.MovableControls.MovableGrid.AssociatedPanelCreatedEventArgs e)
{
MercatorUi.Forms.Sig.SigGrids.ArtLiens artLiens = (MercatorUi.Forms.Sig.SigGrids.ArtLiens)sender;
DataTable dt = (DataTable)artLiens.ComboBoxExPrix.DataSource;
DataRow[] foundRows = dt.Select("(source='S_DPA') or (source='S_PMPA') or (source='S_PRIX_REV')");
foreach (DataRow dr in foundRows)
dt.Rows.Remove(dr);
artLiens.FillWithData();
}
}
}