2016-07-19 5 views

Antwort

0

Dies funktioniert auf Windows Forms.

Private Sub FmReporViewer_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     Dim exportOption1 As String = "Excel" 
     Dim exportOption2 As String = "Word" 

     Dim extension1 As RenderingExtension = ReportViewer.LocalReport.ListRenderingExtensions().ToList().Find(Function(x) x.Name.Equals(exportOption1, StringComparison.CurrentCultureIgnoreCase)) 
     If extension1 IsNot Nothing Then 
      Dim fieldInfo As System.Reflection.FieldInfo = extension1.GetType().GetField("m_isVisible", System.Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic) 
      fieldInfo.SetValue(extension1, False) 
     End If 
     Dim extension2 As RenderingExtension = ReportViewer.LocalReport.ListRenderingExtensions().ToList().Find(Function(x) x.Name.Equals(exportOption2, StringComparison.CurrentCultureIgnoreCase)) 
     If extension2 IsNot Nothing Then 
      Dim fieldInfo As System.Reflection.FieldInfo = extension2.GetType().GetField("m_isVisible", System.Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic) 
      fieldInfo.SetValue(extension2, False) 
     End If 

    End Sub 
+0

Hallo, funktioniert es nicht, eine Sache 'ReportViewer.LocalReport.ListRenderingExtensions(). ToList(). Finden (Funktion (x) x.Name.Equals (exportOption1, StringComparison.CurrentCultureIgnoreCase))' raise Dieser Fehler: Fehler \t BC30469 \t Referenz zu einem nicht freigegebenen Mitglied erfordert eine Objektreferenz. \t, also ändere ich für ** reportviewer1 ** den Namen meines Controls im Webformular. Irgendeine Idee? – KillemAll

+0

ReportViewer ist der Name des ReportViewer-Objekts Ihres Formulars, in Ihrem Fall lautet der Name reportviewer1. Aber jetzt, wo Sie sagen, dass es für WebForms ist, nicht, wenn dieser Code für Sie funktioniert. – Rocoso

+0

seine Webformulare, .. es funktioniert nicht, .. irgendeine andere Idee? – KillemAll

Verwandte Themen