Tussenkomen per code bij de creatie van nieuwe agenda items in de CRM

0000002640     -      23-06-2016

Hieronder getoonde customizer toont hoe je kan tssenkomen per code bij het creeeren van agenda-items (afspraken) in de CRM-kalender. Deze code gebruikt het event AddingAppointment van de CrmCalendarForm. De eventArgs van dit event bevatten 2 properties:

  • CrmAppointment Appointment: dat overeenkomt met het onderwerp dat zal toegevoegd worden op de kalender.
  • DataRow DrAction: dat bevat de registratie van de tabel ACTIONS voor de afspraak die gemaakt zal worden.

De hieronder geschreven code toont hoe je de waarde van het onderwerp en de nota van deze afspraak kan instellen.

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
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.CrmCalendarForm)
            {
                MercatorUi.Forms.Action.CrmCalendarForm crmCalendarForm = (MercatorUi.Forms.Action.CrmCalendarForm)e.Form;
                crmCalendarForm.AddingAppointment += CrmCalendarForm_AddingAppointment;
                crmCalendarForm.FormClosed += CrmCalendarForm_FormClosed;
            }
        }

        private void CrmCalendarForm_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
        {
            MercatorUi.Forms.Action.CrmCalendarForm crmCalendarForm = (MercatorUi.Forms.Action.CrmCalendarForm)sender;
            crmCalendarForm.AddingAppointment -= CrmCalendarForm_AddingAppointment;
            crmCalendarForm.FormClosed -= CrmCalendarForm_FormClosed;
        }

        private void CrmCalendarForm_AddingAppointment(object sender, MercatorUi.Forms.Action.CrmCalendarForm.AddingAppointmentEventArgs e)
        {
            e.Appointment.Subject = string.Format("{0} - {1}", e.DrAction["objet"], e.DrAction["sig_nom"]);
            e.Appointment.Description = e.DrAction["note"].ToString() + "\r\n------------------\r\n" + e.DrAction["lib"].ToString();
        }
    }
}