Mercator Aruba permet d'ajouter un nombre illimité d'objets "Explorateur de fichiers" dans les fiches de signalétiques (notamment). Pour une fiche client par exemple, cet objet pointe toujours vers le sous-répertoire CLI + identifiant du client du répertoire FILES. Considérant cela, il n'est pas très intéressant de pouvoir juxtaposer deux objets de ce type. Le code indiqué ci-dessous permet de changer le repértoire pour le second explorateur de fichiers, en le faisant pointer, par exemple, vers C:\test\files\cli\identifiant du client. Toute autre adaptation est bien entendu possible.
Cet exemple est construit sur base du customizer SigCli, qui implémente les interfaces suivantes :
Il utilise l'évènement AfterRead qui permet de détecter facilement le passage à une autre fiche du signalétique.
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));
}
}
}