Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Module à la validation dans un signalétique

0000001914     -      25/09/2018

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.

Zoom
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;