L'exemple repris ci-dessous montre comment placer un module à la validation sur un signalétique. Le cas échéant, la méthode mise en place renvoie false et le processus d'enregistrement des données est arrêté. Cet exemple repose sur l'interface IFormValidateCustomizer.
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Linq;
using MercatorApi;
using MercatorExtensions;
using MercatorUi;
using MercatorDatabase;
using System.Windows.Forms;
namespace SigCli
{
public class Customizer : MercatorUi.ICustomizers.IFormValidateCustomizer
{
public bool FormValidateCustomize(Form form)
{
MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)form;
if ((string.IsNullOrWhiteSpace(sigForm.CliRecord.C_PAYS)) && (!string.IsNullOrWhiteSpace(sigForm.CliRecord.C_CODEP)) && !Api.IsNumeric(Api.Left(sigForm.CliRecord.C_CODEP, 2)))
{
Dialogs.Stop("Le code postal semble indiquer un pays étranger mais le pays est vide !");
return false;
}
if ((string.IsNullOrWhiteSpace(sigForm.CliRecord.C_CODEP)) || (string.IsNullOrWhiteSpace(sigForm.CliRecord.C_ADRESSE)) || (string.IsNullOrWhiteSpace(sigForm.CliRecord.C_VILLE)))
{
if (!Dialogs.AnswerYesNo("L'adresse est incomplète. Continuer ?"))
return false;
}
return true;
}
}
}
Notez dans ce code :
- Le paramètre form reçu est de type standard System.Windows.Forms.Form. Il faut donc effectuer un cast vers le type spécifique MercatorUi.Forms.Sig.SigForm. C'est la raison de la première ligne.
- La classe Dialogs se trouve dans l'espace de nom MercatorUi. Il faut donc ajouter using MercatorUi;
- La classe Api se trouve dans l'espace de nom MercatorApi. Il faut donc ajouter using MercatorApi;