In de combo onder de grid met gerelateerde artikels, aankoopprijs elementen verwijderen

0000002388     -      07-05-2021

De hier beschreven programmatie staat toe om elementen te verwijderen

  • De laatste aankoopprijs
  • PMPA
  • Kosten

In de combo die gesitueerd is onder de gerelateerde items grid van de artikel fiche.

De code is gebouwd op basis van een SigStock  customizer die deze interfaces implementeert:

De FormLoadCustomize methode staat toe om het evenement AssociatedPanelCreated, op te slaan waarbij we de ongewenste elementen verwijderen.

De code is als volgt:

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