U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

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