Het event SuccessSearch implementeren voor een textBox die naar een informatiebestand verwijst

0000002128     -      07-11-2013

Deze programmering laat zien hoe u het event SuccessSearch implementeert voor een textBox die naar een informatiebestand verwijst. Dit event vindt u via een succesvolle zoekopdracht van een fiche, hetzij door rechtstreekse input, hetzij door te klikken op de knop "vergrootglas".

Deze programmering steunt op de interfaces MercatorUi.ICustomizers.IFormLoadCustomizer en MercatorUi.ICustomizers.IFormClosedCustomizer voor het schrappen van de inschrijving.

Het hier vermelde voorbeeld betreft het informatiebestand "Klanten", waarbij het veld C_ID_ART1 verwijst naar het informatiebestand "Artikels". Het kan makkelijk worden aangepast voor andere schermen en andere doelinformatiebestanden.

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

namespace SigCli
{
     public class Customizer : MercatorUi.ICustomizers. IFormLoadCustomizer , MercatorUi.ICustomizers. IFormClosedCustomizer
    {

         public void FormLoadCustomize( Form form)
        {
            MercatorUi.Forms.Sig. SigForm sigForm = (MercatorUi.Forms.Sig. SigForm )form;
             List < Control > l = sigForm.FindMovableControlsBySource( "C_ID_ART1" );
             if (l.Count > 0)
            {
                MercatorUi.MovableControls. MovableTextBox textBox = (MercatorUi.MovableControls. MovableTextBox )l[0];
                textBox.SuccessSearch += new MercatorUi._BaseClasses. BindableTextBoxTargetSig . SuccessSearchEventHandler (textBox_SuccessSearch);
            }
        }

         public void FormClosedCustomize( Form form)
        {
            MercatorUi.Forms.Sig. SigForm sigForm = (MercatorUi.Forms.Sig. SigForm )form;
             List < Control > l = sigForm.FindMovableControlsBySource( "C_ID_ART1" );
             if (l.Count > 0)
            {
                MercatorUi.MovableControls. MovableTextBox textBox = (MercatorUi.MovableControls. MovableTextBox )l[0];
                textBox.SuccessSearch -= new MercatorUi._BaseClasses. BindableTextBoxTargetSig . SuccessSearchEventHandler (textBox_SuccessSearch);
            }
        }

         void textBox_SuccessSearch( object sender, MercatorUi._BaseClasses. BindableTextBoxTargetSig . SuccessSearchEventArgs e)
        {
            MercatorUi.Sig. Sig sig = MercatorUi.Sig. _SigsStatic .SigByModule(e.TargetSig);
             if (!MercatorUi. Dialogs .AnswerYesNo( string .Format( "Aanvaardt u de fiche {0} \"{1}\" ?" ,
                sig.Caption[MercatorUi. Globals .Langue].ToLower(),
                e.DataRowSig[e.TargetSig == MercatorUi.Sig. _SigEnum .STOCK ? "S_MODELE" : sig.Letter1 + "_NOM" ])))
            {
                e.Cancel = true ; // de ficheselectie verwerpen
            }
        }
    }
}

 

Opmerking: het event SuccessSearch wordt enkel gebruikt voor textboxen die naar een informatiebestand verwijzen.