Het weergeven van het CRM-taken venster wijzigen per code

0000002706     -      30-06-2017

Het voorbeeld hieronder laat u zien hoe u de kleur van een lijn uit het takenscherm kan wijzigen. Een lijn waarvan de vervaldatum gelijk is aan de huidige datum wordt rood afgebeeld. We nemen aan dat de vervaldatum van de taak bewaard is in het veld ACTIONS.MOMENT_1 en dat deze kolom verwijst naar een 2e gepersonaliseerde kolom in "Tools-Setup-Taken Parametrering".

De code gebruikt het event AddingTask van de form MercatorUi.Forms.Action.CrmTasksForm. Zijn eventargs geven toegang tot de node die gegevoegd zal worden via de property TaskNode. Deze laatste bevat de eigenschap DataRow Dr die toegang geeft tot de gegevens die Mercator gebruikt om de lijn te vervolledigen.

De code gaat als volgt:

Zoom
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;
            }
        }

    }
}