Aktivieren und Deaktivieren von clientseitigem Druck für Reporting Services

Das Microsoft ActiveX-Steuerelement RSClientPrint stellt eine clientseitige Druckfunktion für in einem Browser angezeigte Berichte bereit. Das Steuerelement zeigt ein benutzerdefiniertes Dialogfeld zum Drucken an, das die in diesen Dialogfeldern üblichen Funktionen enthält. Dazu zählen Druckvorschau, Seitenauswahl zum Angeben bestimmter Seiten und Bereiche, Seitenränder und Ausrichtung. Clientseitiges Drucken ist standardmäßig aktiviert, Sie können diese Funktion jedoch auf Wunsch deaktivieren.

Zum Herunterladen von ActiveX-Steuerelementen sind Administratorberechtigungen erforderlich.

Browsereinstellungen zum Bestimmen des Downloadverhaltens

Benutzer, die die Druckfunktion verwenden möchten, müssen das ActiveX-Steuerelement, von dem die Clientdruckfunktionalität bereitgestellt wird, herunterladen und installieren. Abhängig von den Browsereinstellungen bestehen folgende Möglichkeiten: Der Benutzer wird zur Installation des Steuerelements aufgefordert, die Installation des Steuerelements wird verhindert, oder das Steuerelement wird unbeaufsichtigt im Hintergrund installiert.

In Microsoft Internet Explorer werden Einstellungen zum Herunterladen und Installieren des ActiveX-Steuerelements über den Knoten ActiveX-Steuerelemente und Plug-Ins auf der Seite Sicherheitseinstellungen für die Webinhaltszone angegeben. Von folgenden Einstellungen wird bestimmt, ob Benutzer das Druckensteuerelement herunterladen und ausführen können. Das Verhalten basiert auf Einstellungen der Internetzonensicherheit:

  • Download von signierten ActiveX-Steuerelementen.

  • ActiveX-Steuerelemente ausführen, die für die Skripterstellung sicher sind.

  • ActiveX-Steuerelemente und Plug-Ins ausführen.

Benutzer, die RSClientPrint zum Ausführen von clientseitigem Drucken verwenden möchten, müssen für die Installation die Optionen Download von signierten ActiveX-Steuerelementen und ActiveX-Steuerelemente ausführen, die für Scripting sicher sind und für die fortlaufenden Druckvorgänge ActiveX-Steuerelemente und Plug-Ins ausführen aktivieren. Das ActiveX-Steuerelement RSClientPrint ist signiert, d. h., es weist ein gültiges digitales Zertifikat von Microsoft auf.

Aktivieren und Deaktivieren des clientseitigen Druckens

Die Berichtsserveradministratoren können die Druckfunktion deaktivieren, indem sie die Berichtsserver-Systemeigenschaft EnableClientPrinting auf false festlegen. Dadurch wird das clientseitige Drucken für alle von diesem Server verwalteten Berichte deaktiviert. Standardmäßig ist EnableClientPrinting auf true festgelegt. Sie können das clientseitige Drucken folgendermaßen deaktivieren:

  • Wählen Sie Download für das ActiveX-Client-Drucksteuerelement aktivieren auf der Seite Servereigenschaften in Management Studio aus. Zum Öffnen der Seite Servereigenschaften stellen Sie in Management Studio eine Verbindung mit einer Berichtsserverinstanz her, klicken mit der rechten Maustaste auf den Serverknoten und wählen dann Eigenschaften aus.

  • Schreiben eines Skripts oder Codeabschnitts zum Festlegen der Berichtsserver-Systemeigenschaft EnableClientPrinting auf false.

Im folgenden Beispielskript wird eine Methode zum Deaktivieren des clientseitigen Druckens erläutert. Kompilieren Sie den folgenden Microsoft Visual Basic-Code, und führen Sie ihn anschließend aus, um die EnableClientPrinting-Eigenschaft auf False festzulegen. Führen Sie nach der Ausführung des Codes einen Neustart von IIS aus.

Beispielskript

Imports System
Imports System.Web.Services.Protocols
Class Sample
   Public Shared Sub Main()
Dim rs As New ReportingService()
      rs.Credentials = System.Net.CredentialCache.DefaultCredentials
        Dim props(0) As [Property]
        Dim setProp As New [Property]
        setProp.Name = "EnableClientPrinting"
        setProp.Value = “False” 
        props(0) = setProp
        Try
            rs.SetSystemProperties(props)
        Catch ex As System.Web.Services.Protocols.SoapException
            Console.Write(ex.Detail.InnerXml)
        Catch e as Exception
            Console.Write(e.Message)
        End Try
    End Sub 'Main
End Class 'Sample