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


Functionele cookies: Cookies die nodig zijn voor het gebruik van de website en voorkeurscookies. Ze bevatten geen persoonsgegevens. (Meer informatie)

Analytische cookies: Verzamelen van statistieken met betrekking tot het gedrag van internetgebruikers. (Meer informatie)

Marketingcookies: Om bezoekers op verschillende websites te volgen voor advertentiedoeleinden. (Meer informatie)