Hoe de selectie van projecten te beperken aan de hand van de in de verkoop gekozen klant?
Via een customizer moet er eerst iets gedaan worden aan de MercatorUi.MovableControls.MovableTextBox en de eigenschap ComplWhereForTargetSig met een geldige SQL-clause (zonder where) worden aangevuld.
Dit principe geldt voor alle configureerbare schermen (BookingForm, BillingForm, ActionForm, SigForm, TransferForm, ...) en voor alle informatiebestanden.
⚠️ Mercator gebruikt soms de eigenschap ComplWhereForTargetSig. Indien dit niet leeg is, dan wijzigt u dit beter niet. Als het niet leeg is, is het het beste om het niet te wijzigen of aan te vullen.
Bovenstaande is van toepassing op alle informatiebestanden: klanten, leveranciers, artikelen, vierde informatiebestand, contactpersonen, algemene rekeningen, analytische rekeningen, vaste activa, prospecten, dienstverleners en locaties.
👉 Bijvoorbeeld, de volgende code maakt het mogelijk om klanten die zijn aangevinkt als "alleen levering" c_liv_seul = 1 uit te sluiten bij het zoeken naar een facturatieklant:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using MercatorApi;
namespace Billing
{
public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
{
public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
{
billingEngine.BillingFormLoaded += BillingEngine_BillingFormLoaded;
}
public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
{
billingEngine.BillingFormLoaded -= BillingEngine_BillingFormLoaded);
}
void BillingEngine_BillingFormLoaded(object sender, EventArgs e)
{
MercatorUi.Engine.Gescom.BillingEngine billingEngine = (MercatorUi.Engine.Gescom.BillingEngine)sender;
billingEngine.BillingForm.CustomerSupplier.ComplWhereForTargetSig = "c_liv_seul = 0";
}
}
}