U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

Plaats een validator om te controleren of een veld in een bestand niet leeg is

0000002884     -      07-04-2020

e hier geïllustreerde code laat zien hoe u een validator plaatst die vergelijkbaar is met die van Mercator (btw-nummer, bankrekeningen, ...). Het vereist een voucher 10.4 of hoger. Het voorbeeld wordt gegeven voor klantenbestand, in het veld "Land", maar kan op elk scherm worden toegepast met MovableTextBox (BillingForm, BookingForm, ActionForm, ...)

Het principe van deze code is om een MercatorUi.Validators.ControlValidator te instantiëren door de volgende parameters door te geven aan de constructor :

  • de te valideren controle
  • het bericht dat in de tooltip moet worden weergegeven in het geval van een fout
  • de gedelegeerde die de code zal bevatten die uiteindelijk zal bepalen of IsValid waar of niet waar is.

pays_validateur_n

Het principe van deze programmering is uiteraard toepasbaar bij elk type controle. Om dit te doen, plaatst u gewoon de juiste aangepaste code in de editor die als derde parameter is doorgegeven aan de constructor van ControlValidator.

De code is als volgt :

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using MercatorUi;
using MercatorApi;
using System.Linq;

namespace SigCli
{
    public class Customizer : MercatorUi.ICustomizers.IFormLoadCustomizer
    {
        public void FormLoadCustomize(Form form)
        {
            MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)form;
            foreach(var textBoxPays in sigForm.MovableControls.Values.OfType<MercatorUi.MovableControls.MovableTextBox>().Where(c => c.Source == "C_PAYS"))
            {
                textBoxPays.Validator = new MercatorUi.Validators.ControlValidator(
                    textBoxPays,
                    "Land mag niet leeg zijn !",
                    (s, e) =>
                        {
                            e.IsValid = !string.IsNullOrWhiteSpace(textBoxPays.Text);
                        }
                    );
            }
        }
    }
}