Estimados lectores, ha sido una experiencia agradable el
hacer este blog y tener algunos lectores que comparten el gusto por la
programación; actualmente estoy empezando otro proyecto, muy personal, con tecnología web que espero compartir con toda la comunidad de
programadores y necesito recursos porque es algo muy personal y mi situación
financiera no es muy buena.
Si alguien desearía
apoyarme tengo una tarjeta Oxxo Saldazo
con el número: 4766-8408-7508-1593,
cualquier apoyo lo pueden hacer en cualquier tienda Oxxo o en Banamex, les
agradezco y que sus proyectos lleguen a buen fin.
'primero debemos declarar estos imports en la página donde se encuentra el 'reportviewer
Imports Microsoft.Reporting.WebForms
Imports System.Reflection
'Después en la carga de la página ponemos la siguiente rutina
'barremos las extensiones de localreport, mi reportviewer se llama reportviewer1
For Each elemento As RenderingExtension In reportViewer1.LocalReport.ListRenderingExtensions
'ponemos la condición para entrar a poner falso la exportación a Excel y a Word
If elemento.Name = "Excel" Or elemento.Name = "WORD" Then
'traemos la información del campo con sus respectivos flags
Dim infCampo As FieldInfo = elemento.[GetType]().GetField("m_isVisible", BindingFlags.Instance Or BindingFlags.NonPublic)
'colocamos el valor de false a la extension
infCampo.SetValue(elemento, False)
End If
Next
'si conocen otra manera mas eficiente de hacer esto, no duden en compartirla
Hola jimenez, he seguido tu ejemplo, para deshabilitar la exportacion en excel. Pero en la ultima linea de tu codigo infCampo.SetValue(elemento, False). Me muestra e; sgte error.
ResponderEliminarReferencia a objeto no establecida como instancia de un objeto
Agradeceria, me podrias apoyar en el error.
José.
Hola Josçe, si te fijas el error que te esta mandando es en elemento y el elemento(puede ser cualquier nombre) es un miembro de RenderingExtension. Lo que puede estar pasando es que no declaraste los imports o no los tienes declarados, o tambien pueda ser que yo tenga option strict off y tu tengas option strict on, aunque por lo general yo siempre ocupo option strict on, en fin, es complicado ver que error puede ser sin tener el codigo fuente a la mano, si me puedes enviar ese codigo a mi correo y yo lo intentare correr y probablemente sepamos la razon, este error significa que no has declarado la instancias de la clase, o sea que la clase esta pero la instancia no.
ResponderEliminarsaludos
Hola, Muchas Gracias.... me sirvio mucho tu ejemplo, para el que le da el error, si trabaja con 2008 quitele el word solo lo deja con excel
ResponderEliminarun abrazo
Andres
en C#
ResponderEliminarforeach (RenderingExtension elemento in rptInforme.LocalReport.ListRenderingExtensions())
{
//ponemos la condición para entrar a poner falso la exportación a Excel y a Word
if (elemento.Name == "Excel" | elemento.Name == "WORD")
{
//traemos la información del campo con sus respectivos flags
FieldInfo infCampo = elemento.GetType().GetField("m_isVisible", BindingFlags.Instance | BindingFlags.NonPublic);
//colocamos el valor de false a la extension
infCampo.SetValue(elemento, false);
}
}
Andres, muchas gracis por tu comentario y tu aportacion de la solucion en C, de esa manera nos retroalimentamos y aprendemos un poco mas cada dia, un saludo y suerte con tus proyectos
ResponderEliminarHola,
ResponderEliminarel tema esta en que no se inicializa esta informacion:
Dim infCampo As FieldInfo = elemento.[GetType]().GetField("m_isVisible", BindingFlags.Instance Or BindingFlags.NonPublic)
Como si no reconociera la cadena "m_isVisible" que puede hacer falta?
mil gracias.
buenas tardes se que soy muy novata pero alguien me puede decir en que pagina colocar el código el que dice después de la carga de la pagina en el defaul en el web.config o en el report de ante mano muchas gracias por su gran colaboración...
ResponderEliminarGracias funciona perfecto en C#, gracias
ResponderEliminarQue bueno que te haya servido el ejemplo y la colaboración del amigo Andres Rarirez, gracias por comentar. saludos
Eliminarefectivqmente si funciona comprobado yo lo puse en el init del reportview y funciono
ResponderEliminarGracias me funcionó muy bien
ResponderEliminarGracias por comentar Julio, que bueno que te haya servido
EliminarSaludos