L'exemple illustré ici montre comment changer la couleur d'une ligne dans l'écran des tâches du CRM. Une ligne dont la date d'échéance est égale à la date du jour sera mise en rouge. On considère que la date d'échéance de la tâche est stockée dans ACTIONS.MOMENT_1 et que cette colonne est référencée en tant que seconde colonne personnalisée dans "Outils \ Paramètres \ Paramétrage Tâches".
Le code utilise l'événement AddingTask de la form MercatorUi.Forms.Action.CrmTasksForm. Son eventArgs donne accès au nœud qui vient d'être ajouté via la propriété TaskNode. Ce dernier contient quant à lui une propriété DataRow Dr qui donne accès aux données que Mercator utilise pour compléter la ligne.
Le code est le suivant :
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorExtensions;
using MercatorUi;
namespace Main
{
public class Customizer : MercatorUi.ICustomizers.IExec
{
public void Main(MercatorUi.ICustomizers.ExecAction Action)
{
if (Action == MercatorUi.ICustomizers.ExecAction.DossierOpen)
{
Globals.Main.BaseFormCreating += new MercatorUi.Main.BaseFormCreatingEventHandler(Main_BaseFormCreating);
}
else if (Action == MercatorUi.ICustomizers.ExecAction.DossierClose)
{
Globals.Main.BaseFormCreating -= new MercatorUi.Main.BaseFormCreatingEventHandler(Main_BaseFormCreating);
}
}
void Main_BaseFormCreating(object sender, MercatorUi.Main.BaseFormCreatingEventArgs e)
{
if (e.Form is MercatorUi.Forms.Action.CrmTasksForm)
{
MercatorUi.Forms.Action.CrmTasksForm crmTasksForm = (MercatorUi.Forms.Action.CrmTasksForm)e.Form;
crmTasksForm.AddingTask += CrmTasksForm_AddingTask;
crmTasksForm.FormClosed += CrmTasksForm_FormClosed;
}
}
private void CrmTasksForm_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
{
MercatorUi.Forms.Action.CrmTasksForm crmTasksForm = (MercatorUi.Forms.Action.CrmTasksForm)sender;
crmTasksForm.AddingTask -= CrmTasksForm_AddingTask;
crmTasksForm.FormClosed -= CrmTasksForm_FormClosed;
}
private void CrmTasksForm_AddingTask(object sender, MercatorUi.Forms.Action.CrmTasksForm.AddingTaskEventArgs e)
{
DateTime moment_1 = Convert.ToDateTime(e.TaskNode.Dr["customColumn2"]);
if (moment_1.Date == DateTime.Today)
{
e.TaskNode.Style = new DevComponents.DotNetBar.ElementStyle();
e.TaskNode.Style.BackColor = System.Drawing.Color.Red;
e.TaskNode.Style.BackColor2 = System.Drawing.Color.Red;
}
}
}
}