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

Genereer automatisch serienummers bij binnenkomst

0000002880     -      23-03-2020

De onderstaande code maakt het mogelijk om bij invoer de serienummers automatisch te genereren, meestal in een aankoop sequentie. Het principe van deze code is om in dit venster te integreren en de gewenste lijnen te maken :

enrtee_serie_n

Dit is nodig omdat dit scherm een hele reeks controles op de serienummers uitvoert: uniekheid, lengte, ... Indien nodig, als een fout wordt gedetecteerd, blijft dit scherm zichtbaar en wordt het foutbericht weergegeven; de gebruiker kan de correcties vervolgens handmatig aanbrengen. Dit rechtvaardigt daarom waarom dit scherm, als er geen fout is, korte tijd zichtbaar is.

De code moet in een customizer Billing worden geplaatst die is gekoppeld aan de aankoop sequentie van het Commercieel Beheer. Voor dit voorbeeld maakt het 3 serienummers: ABC, DEF en GHE.

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

namespace Billing
{
    public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
    {

        public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
        {
            BillingEngine.SerialSubEngine.AskSerialShown += BillingEngineSerialSubEngine_AskSerialShown;
        }

        public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
        {
            BillingEngine.SerialSubEngine.AskSerialShown -= BillingEngineSerialSubEngine_AskSerialShown;
        }

        void BillingEngineSerialSubEngine_AskSerialShown(object sender, MercatorUi.Engine.Gescom.SerialSubEngine.AskSerialShownEventArgs e)
        {
            if (e.GescomAskSerial.AllowMultiple && e.GescomAskSerial.Inward)
            {
                e.GescomAskSerial.ButtonGridIn.PerformClick(); // tonen grid
                DataTable dt = (DataTable)e.GescomAskSerial.GridIn.DataSource;
                dt.Rows.Add(new string[1] { "ABC" });
                dt.Rows.Add(new string[1] { "DEF" });
                dt.Rows.Add(new string[1] { "GHE" });
                e.GescomAskSerial.ButtonOk.PerformClick();
            }
        }
    }
}