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

Het aanvangstijdstip wordt geïnitialiseerd op het eindtijdstip van de voorgaande prestatie

0000002212     -      28-07-2016

De customer die gekoppeld is aan het invoerscherm voor prestaties maakt het mogelijk om het eindtijdstip van de voorgaande prestatie voor te stellen als aanvangstijdstip van de volgende prestatie. Deze customizer die in de betreffende sequenties moet worden geplaatst, implementeert de volgende interfaces:

Maakt vooral gebruik van het event ProviderTimePanelLoaded en ProviderTimeBeforeOkvan de BillingEngine van het huidige document. Het laatste eindtijdstip wordt opgeslagen in de dictionary MercatorUi.Globals.FreeTags, met de sleutel last_prest_h2.

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.ProviderTimePanelLoaded += new MercatorUi.Engine.Gescom.BillingEngine.ProviderTimePanelLoadedEventHandler(BillingEngine_ProviderTimePanelLoaded);
            BillingEngine.ProviderTimeBeforeOk += new MercatorUi.Engine.Gescom.BillingEngine.ProviderTimeBeforeOkEventHandler(BillingEngine_ProviderTimeBeforeOk);
        }

        public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
        {
            BillingEngine.ProviderTimePanelLoaded -= new MercatorUi.Engine.Gescom.BillingEngine.ProviderTimePanelLoadedEventHandler(BillingEngine_ProviderTimePanelLoaded);
            BillingEngine.ProviderTimeBeforeOk -= new MercatorUi.Engine.Gescom.BillingEngine.ProviderTimeBeforeOkEventHandler(BillingEngine_ProviderTimeBeforeOk);
        }

        void BillingEngine_ProviderTimePanelLoaded(object sender, MercatorUi.Engine.Gescom.BillingEngine.ProviderTimePanelLoadedEventArgs e)
        {
            if (Globals.FreeTags.ContainsKey("last_prest_h2") && (e.ProviderTimePanel.HourMinBegin.Text == "00:00"))
                e.ProviderTimePanel.HourMinBegin.Text = Globals.FreeTags["last_prest_h2"].ToString();
        }

        void BillingEngine_ProviderTimeBeforeOk(object sender, MercatorUi.Engine.Gescom.BillingEngine.ProviderTimeBeforeOkEventArgs e)
        {
            if (Globals.FreeTags.ContainsKey("last_prest_h2"))
                Globals.FreeTags["last_prest_h2"] = e.ProviderTimePanel.HourMinEnd.Text;
            else
                Globals.FreeTags.Add("last_prest_h2", e.ProviderTimePanel.HourMinEnd.Text);
        }
    }
}