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

Dans une impression de la gestion commerciale, ajouter un cadre reprenant les données Intrastat

0000002887     -      28/06/2019

L'exemple ici montre comment imprimer un cadre supplémentaire reprenant les données Intrastat des articles repris dans le document. Pour ce faire, nous passons par l'ajout de 4 paramètres supplémentaires au rapport.

Le code doit être placé dans un customizer Billing créé à partir de la séquence correspondante. Il implémente les interfaces suivantes :

Il exploite essentiellement l'évènement PrintPrevPrepared du BillingEngine du document en cours.

Le code s'établit comme suit :

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


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)
        {
            MercatorUi.Engine.Gescom.BillingEngine billingEngine = (MercatorUi.Engine.Gescom.BillingEngine)sender;
            if (billingEngine.CLI == null) // le client n'a pas été saisi
                return;

            // Ajout données Intrastat
            string dossier = "";
            if (billingEngine.SEQUENC.Table.Columns.Contains("DOSSIER"))
                dossier = billingEngine.SEQUENC["DOSSIER"].ToString();

            string cliLangue = billingEngine.CliRecord.C_LANGUE;
            e.Parameters.Add("ISTAT_CODE", MercatorController.xFunctions.xSumIstat(MercatorController.xFunctions.SumIstatType.V, billingEngine.PIEDS, billingEngine.LIGNES, MercatorController.xFunctions.SumIstatInfo.CodeId, dossier)); // ajout d'un paramètre passé au générateur de rapports
            MercatorController.xFunctions.SumIstatInfo libLangue = MercatorController.xFunctions.SumIstatInfo.CodeLibF;
            switch (cliLangue)
            {
                case "N": libLangue = MercatorController.xFunctions.SumIstatInfo.CodeLibN; break;
                case "E": libLangue = MercatorController.xFunctions.SumIstatInfo.CodeLibE; break;
                case "D": libLangue = MercatorController.xFunctions.SumIstatInfo.CodeLibD; break;
                default: libLangue = MercatorController.xFunctions.SumIstatInfo.CodeLibF; break;
            }
            e.Parameters.Add("ISTAT_LIB", MercatorController.xFunctions.xSumIstat(MercatorController.xFunctions.SumIstatType.V, billingEngine.PIEDS, billingEngine.LIGNES, libLangue, dossier)); // ajout d'un paramètre passé au générateur de rapports
            e.Parameters.Add("ISTAT_VALEUR", MercatorController.xFunctions.xSumIstat(MercatorController.xFunctions.SumIstatType.V, billingEngine.PIEDS, billingEngine.LIGNES, MercatorController.xFunctions.SumIstatInfo.Value, dossier)); // ajout d'un paramètre passé au générateur de rapports
            e.Parameters.Add("ISTAT_POIDS", MercatorController.xFunctions.xSumIstat(MercatorController.xFunctions.SumIstatType.V, billingEngine.PIEDS, billingEngine.LIGNES, MercatorController.xFunctions.SumIstatInfo.Weight, dossier)); // ajout d'un paramètre passé au générateur de rapports
            e.Parameters.Add("ISTAT_Q", MercatorController.xFunctions.xSumIstat(MercatorController.xFunctions.SumIstatType.V, billingEngine.PIEDS, billingEngine.LIGNES, MercatorController.xFunctions.SumIstatInfo.Quantity, dossier)); // ajout d'un paramètre passé au générateur de rapports
        }
    }
}

Le fichier zip ci-joint contient un layout de vente compatible avec cette programmation.



A télécharger : 0000002887.zip (38 Kb - 28/02/2023)