20 février 2011

INFOPATH : Validation personnalisée

Bonjour,

De nombreux clients réalisent des retours sur InfoPath Form Services quand aux messages apparaissant sur les champs obligatoires d'un certain type, notamment pour les champs de type "date".
En effet, le message apparaissant sur un champ obligatoire de type "date" incite à saisir une date au format "YYYY-MM-DD", ce qui n'est pas souhaité lorsque nous souhaitons que l'utilisateur saisisse une date au format : "JJ/MM/AAAA". Cela provient du CSS embarqué par Form Services (qui ne doit pas être modifier directement car il sera sûrement écrasé lors d'un passage de service pack).

Pour corriger ce problème, il faut modifier légèrement le formulaire InfoPath Form Services. Les étapes à suivre sont les suivantes:
  • Clic droit sur le champ de votre formulaire,
  • Cliquer sur "Propriétés",
  • Cliquer sur "Validation de données",
  • Sélectionner l'évènement validation.
Et insérer ensuite le code suivant (il parcourt les erreurs dans le formulaire jusqu'à trouver l'erreur actuelle afin de modifier le message):

public void champ1_Validating(object sender, XmlValidatingEventArgs e)
{
      foreach (FormError error in this.Errors)
     {
            if (error.Site.Name == e.Site.Name)
           {
                    error.Message = "Mon message custom";
           }
     }
}

Il suffira de modifier "Mon message custom" avec par exemple "Saisir une date au format 'JJ/MM/AAAA'.

Aucun commentaire:

Enregistrer un commentaire