Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Lors de la duplication d’une fiche article, ne pas dupliquer les données des fournisseurs liés

0000002142     -      15/01/2025

Cet exemple montre comment empêcher de dupliquer les données de l’onglet "Fournisseurs" de la fiche article lors de la duplication de la fiche.
Il suffira d’implémenter l’interface MercatorUi.ICustomizers.IFormLoadCustomizer pour utiliser l’évènement AfterRecordDuplicate.

Source du code :

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using MercatorApi;
using MercatorUi;
using System.Linq;

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;
            sigForm.Sig.AfterRecordDuplicate += SigStock_AfterRecordDuplicate;
        }

        public void FormClosedCustomize(Form form)
        {
            MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)form;
            sigForm.Sig.AfterRecordDuplicate -= SigStock_AfterRecordDuplicate;
        }

        void SigStock_AfterRecordDuplicate(object sender, MercatorUi.Sig.Sig.AfterRecordDuplicateEventArgs e)
        {
            MercatorUi.Forms.Sig.SigGrids.ArtFou artFou = e.SigForm.MovableControls.Values.OfType<MercatorUi.Forms.Sig.SigGrids.ArtFou>().FirstOrDefault();
            if (artFou != null)
            {
                artFou.Grid.CurrentCell = null;
                DataTable dt = (DataTable)artFou.Grid.DataSource;
                dt.Rows.Clear();
            }
        }
    }
}