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

Reporting : comment forcer une imprimante TS dans un rapport ?

0000002460     -      01/07/2019

Il est possible de forcer une imprimante TS dans un rapport (pour autant que celle-ci porte le même nom sur tous les postes - dans notre exemple : "Ticket").

Dans l'éditeur de rapports, il faut :

  • dans la fenêtre des propriétés du rapport, sélectionner l'élément "Report" dans la liste déroulante
  • cliquer sur le bouton "Eclair" afin d'accéder au code C#
  • double-cliquer sur l'évènement "StartReport"
  • la fenêtre de code s'ouvre avec, par défaut, "private void MonTest_StartReport(object sender, EventArgs e)"
  • Implémenter le code fourni ci-dessous.
Zoom
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows.Forms;
using System.Drawing;
using System.Data;
using FastReport;
using FastReport.Data;
using FastReport.Dialog;
using FastReport.Barcode;
using FastReport.Table;
using FastReport.Utils;
using System.Drawing.Printing;
using System.Diagnostics;

namespace FastReport
{
    public class ReportScript
    {
        private void Vente_StartReport(object sender, EventArgs e)
        {
            String installedPrinters = "";
            var sessionId = Process.GetCurrentProcess().SessionId;
            foreach (string installedPrinter in PrinterSettings.InstalledPrinters)
            {
                // pour définir l'imprimante sur le rapport si utilisation en local
                if (installedPrinter.Contains("Ticket"))
                    Report.PrintSettings.Printer = installedPrinter;

                // pour définir l'imprimante sur le rapport de la session TS courante
                if (installedPrinter.Contains("Ticket") && installedPrinter.Contains("redirect") && installedPrinter.Contains(sessionId.ToString().Trim()))
                    Report.PrintSettings.Printer = installedPrinter;
            }
        }
    }
}