Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Utiliser un modèle d'impression différent pour l'envoi d'un document de la gestion commerciale par mail

0000002890     -      09/04/2020

Le code repris ci-dessous permet de changer le modèle d'impression lors de l'envoi par mail d'un document de la gestion commerciale. Il exploite l’événement PrintPrevPrepared du BillingEngine. Notez que l'eventArgs passé au délégué contient toute une série d'informations qui seront passées au générateur de rapports :

  • DataSet : les données du rapport
  • Parameters : les paramètres du rapport
  • Layout : le modèle d'impression (nom du repx)
  • OutputDescriptors : les OutputDescriptors qui déterminent le comportement qui sera adopté par le générateur de rapport (imprimer, exporter, ...). Attention : cette propriété est nulle quand on édite le rapport dans l'éditeur de rapports.
  • PrintMode : Preview, Print, Send, eInvoice ou _none

Le code est le suivant :

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using MercatorApi;
using MercatorExtensions;
using System.ComponentModel;
using System.Linq;


namespace Billing
{
    public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
    {

        public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
        {
            BillingEngine.PrintPrevPrepared += BillingEngine_PrintPrevPrepared;
        }

        public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
        {
            BillingEngine.PrintPrevPrepared -= BillingEngine_PrintPrevPrepared;
        }

        void BillingEngine_PrintPrevPrepared(object sender, MercatorUi.Engine.Gescom.BillingEngine.PrintPrevPreparedEventArgs e)
        {
            if (e.PrintMode == MercatorUi.PrintPrevEnum.Send)
                e.Layout = @"<MainDir\piece_mail.repx";
        }
    }
}