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