Bij het dupliceren van een artikelfiche, moeten de daaraan gekoppelde gegevens van de leverancier niet worden gekopieerd

0000002142     -      30-10-2013

Dit voorbeeld toont hoe u kan voorkomen dat de gegevens van het tabblad 'Leveranciers' van de artikelfiche worden gekopieerd bij het kopiëren van de fiche.
Het volstaat om de interface van MercatorUi.ICustomizers.IFormLoadCustomizer te implementeren om het event AfterRecordDuplicate te gebruiken.

Broncode:

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

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 += new MercatorUi.Sig.Sig.AfterRecordDuplicateEventHandler(sigStock_AfterRecordDuplicate);
        }

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

        void sigStock_AfterRecordDuplicate(object sender, MercatorUi.Sig.Sig.AfterRecordDuplicateEventArgs e)
        {

            List<Control> l = e.SigForm.FindMovableControlsByType(typeof(MercatorUi.Forms.Sig.SigGrids.ArtFou));
            if (l.Count == 0)
                return;
            MercatorUi.Forms.Sig.SigGrids.ArtFou artFou = (MercatorUi.Forms.Sig.SigGrids.ArtFou)l[0];

            artFou.Grid.CurrentCell = null;
            DataTable dt = (DataTable)artFou.Grid.DataSource;
            dt.Rows.Clear();
        }
    }
}