Cette programmation montre comment exécuter du code dans l'évèvement BeforeSave pour placer le curseur sur un champ précis. L'exemple est fait pour une validation refusée du champ REFERENCE du document et permet de positionner le focus sur ce champ.
Il s'établit comme suit :
private void billingEngine_BeforeSave(object sender, MercatorUi.Engine.Gescom.BillingEngine.BeforeSaveEventArgs e)
{
MercatorUi.Engine.Gescom.BillingEngine billingEngine = (MercatorUi.Engine.Gescom.BillingEngine) sender;
MercatorUi._BaseClasses.TimerOneShot timer = new MercatorUi._BaseClasses.TimerOneShot(timer_Tick, billingEngine);
List <Control> l = billingEngine.BillingForm.FindMovableControlsBySource("REFERENCE");
if (l.Count > 0)
e.CancelSave = true;
}
void timer_Tick(object sender, EventArgs e)
{
MercatorUi._BaseClasses.TimerOneShot timer = (MercatorUi._BaseClasses.TimerOneShot)sender;
MercatorUi.Engine.Gescom.BillingEngine billingEngine = (MercatorUi.Engine.Gescom.BillingEngine) timer.Tag;
List <Control> l = billingEngine.BillingForm.FindMovableControlsBySource("REFERENCE");
if (l.Count > 0)
_Divers.FocusError(l[0]);
}