De code moet in een Billing-customizer geplaatst worden die aan de sequentie gekoppeld is. Het implementeert volgende interfaces:
Het maakt gebruik van het Initialized event van de BillingEngine van het huidige document.
De code is als volgt:
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.Initialized += new MercatorUi.Engine.Gescom.BillingEngine.InitializedEventHandler(BillingEngine_Initialized);
}
public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
{
BillingEngine.Initialized -= new MercatorUi.Engine.Gescom.BillingEngine.InitializedEventHandler(BillingEngine_Initialized);
}
private void BillingEngine_Initialized(object sender, MercatorUi.Engine.Gescom.BillingEngine.InitializedEventArgs e)
{
List<Form> l = _Divers.OpenFormsByType(typeof(MercatorUi.Forms.Billing.BillingForm));
if (l.Count > 0)
{
int i = 0;
foreach (Form f in l)
{
if (((MercatorUi.Forms.Billing.BillingForm)f).BillingEngine.TypeVA == MercatorUi.Engine.Gescom.Billing.TypeVAEnum.V)
i++;
}
if (i > 2)
e.Cancel = true;
}
}
}
}