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

Vraag de code 'Gebruiker' net voor een commercieel beheersdocument wordt gevalideerd

0000002190     -      29-01-2014

Deze module is het Aruba-equivalent van deze programmering.

De code moet in een Billing-customizer geplaatst worden die gecreëerd werd vanuit de bijbehorende sequentie. Implementeert de volgende interfaces:

Maakt vooral gebruik van het event BeforeSave van de BillingEngine van het huidige document.

De code wordt als volgt samengesteld:

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

namespace Billing
{
    public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
    {
        public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
        {
            BillingEngine.BeforeSave += new MercatorUi.Engine.Gescom.BillingEngine.BeforeSaveEventHandler(BillingEngine_BeforeSave);
        }

        public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
        {
            BillingEngine.BeforeSave -= new MercatorUi.Engine.Gescom.BillingEngine.BeforeSaveEventHandler(BillingEngine_BeforeSave);
        }

        void BillingEngine_BeforeSave(object sender, MercatorUi.Engine.Gescom.BillingEngine.BeforeSaveEventArgs e)
        {
            MercatorUi.Engine.Gescom.BillingEngine BillingEngine = (MercatorUi.Engine.Gescom.BillingEngine)sender;
            if (BillingEngine.BillingForm == null)
                return; // het betreft waarschijnlijk een automatische verwerking, deze BillingEngine is niet gekoppeld aan een BillingForm-scherm
            string id_user = MercatorUi.Forms.Login.LoginAskFormStatic.ShowDirect(MercatorUi._Divers.Iif_langue(MercatorUi.Globals.Langue, "Kennwort ?", "Password ?", "Wachtwoord?", "Code d'entrée ?"));
            if (string.IsNullOrEmpty(id_user))
                e.CancelSave = true;
            else
                BillingEngine.PIEDS["id_user"] = id_user;
        }
    }
}