Gebruik van een tweede "Bestandsbrowser"-object dat naar een lokale directory verwijst

0000001995     -      07-11-2013

In Mercator Aruba kan een onbeperkt aantal "Bestandsbrowser"-objecten worden toegevoegd in de informatiebestandfiches (onder andere). Bijvoorbeeld: bij een klantenfiche verwijst dit object altijd naar de subdirectory CLI + identificatiecode van de klant in de directory FILES. Wanneer we dit bekijken, is het niet erg interessant om twee objecten van dit type naast elkaar te kunnen plaatsen. Via de onderstaande code kan de directory voor de tweede bestandsbrowser worden gewijzigd, zo kunt u hem bijvoorbeeld laten verwijzen naar C:\test\files\cli\identificatiecode van de klant. Maar uiteraard is ook iedere andere aanpassing mogelijk.

Dit voorbeeld is opgesteld op basis van de customizer SigCli, die de volgende interfaces implementeert:

Het maakt gebruik van het event AfterRead waarmee u makkelijk de overgang naar een andere informatiebestandfiche detecteert.

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

        public void FormLoadCustomize(System.Windows.Forms.Form form)
        {
            MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)form;
            MercatorUi.MovableControls.MovableFileView movableFileView = (MercatorUi.MovableControls.MovableFileView)sigForm.MovableControls["F205730BDA"];
            movableFileView.AfterRead += new MercatorUi.MovableControls.MovableFileView.AfterReadHandler(fileView_AfterRead);
        }

        public void FormClosedCustomize(System.Windows.Forms.Form form)
        {
            MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)form;
            MercatorUi.MovableControls.MovableFileView movableFileView = (MercatorUi.MovableControls.MovableFileView)sigForm.MovableControls["F205730BDA"];
            movableFileView.AfterRead -= new MercatorUi.MovableControls.MovableFileView.AfterReadHandler(fileView_AfterRead);
        }

        void fileView_AfterRead(object sender, EventArgs e)
        {
            MercatorUi.MovableControls.MovableFileView movableFileView = (MercatorUi.MovableControls.MovableFileView)sender;
            string c_id = movableFileView.Form.DataSource.Rows[0]["C_ID"].ToString().TrimEnd();
            if (c_id != "")
                movableFileView.SetCurrentFolder(@"c:\test\files\cli\" + Api.CleanRep(c_id));
        }

    }
}