Protected Sub DisableFormat(ByRef viewer As ReportViewer, ByVal formatName As String) Const Flags As System.Reflection.BindingFlags = System.Reflection.BindingFlags.NonPublic + System.Reflection.BindingFlags.Public + System.Reflection.BindingFlags.Instance Dim m_previewService As System.Reflection.FieldInfo = viewer.LocalReport.GetType().GetField("m_previewService", Flags) Dim ListRenderingExtensions As System.Reflection.MethodInfo = m_previewService.FieldType.GetMethod("ListRenderingExtensions", Flags) Dim previewServiceInstance As Object = m_previewService.GetValue(viewer.LocalReport) Dim extensions As IList = ListRenderingExtensions.Invoke(previewServiceInstance, Nothing) Dim name As System.Reflection.PropertyInfo = extensions(0).GetType().GetProperty("Name", Flags) Dim extension As Object For Each extension In Extensions If (String.Compare(name.GetValue(extension, Nothing).ToString(), formatName, True) = 0) Then Dim m_isVisible As System.Reflection.FieldInfo = extension.GetType().GetField("m_isVisible", System.Reflection.BindingFlags.NonPublic + System.Reflection.BindingFlags.Instance) m_isVisible.SetValue(extension, True) Dim m_isExposedExternally As System.Reflection.FieldInfo = extension.GetType().GetField("m_isExposedExternally", System.Reflection.BindingFlags.NonPublic + System.Reflection.BindingFlags.Instance) m_isExposedExternally.SetValue(extension, True) Exit For End If Next extension End Sub Protected Sub ReportViewer1_PreRender(sender As Object, e As EventArgs) Handles ReportViewer1.PreRender Call DisableFormat(Me.ReportViewer1, "Excel") ' Disable EXCEL format End Sub
m_previewService.FieldType
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)