U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

Reporting: hoe een Terminal Server printer in een rapport krijgen?

0000002460     -      21-04-2016

Het is mogelijk om een printer in een rapport te krijgen (op voorwaarde dat het dezelfde naam heeft op alle computers - in ons voorbeeld "Ticket"

In de report-editor moet men:

  • In het propertyvenster van het rapport, het element "Report" aanduiden in de dropdownlist.
  • Klikken op de knop "Events"(bliksem) om toegang te krijgen tot de C# code-editor
  • double click op het event "StartReport"
  • Standaard opent het venster met de code "private void MonTest_StartReport(object sender, EventArgs e)"
  • De code hieronder implementeren.
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)
            {
                // een printer definiëren voor lokaal gebruik
                if (installedPrinter.Contains("Ticket"))
                    Report.PrintSettings.Printer = installedPrinter;

                // om het rapport af te drukken in de huidige Terminal Server sessie.
                if (installedPrinter.Contains("Ticket") && installedPrinter.Contains("(redirection de " + sessionId.ToString().Trim() + ")"))
                    Report.PrintSettings.Printer = installedPrinter;
            }
        }
    }
}