RSS : Articles / Comments


Link para referenciar un reporte desde un formulario

18:58, Posted by Gustavo Monaco, 3 Comments

Para referenciar un reporte desde una aplicación o página web, solo es necesario colocar este código en C# dentro del evento de click de un link o de un boton.

string script;

        script = "window.open('http://192.168.x.x/ReportServer/Pages/ReportViewer.aspx?/Carpeta/NombreReporte&rc:parameters=False&parametro1=" + control1.SelectedValue + "&parametro2=" + control2.text + " ','popup','height=650,width=1000,hotkeys=no,menubar=no,resizable=yes, scrollbars=yes,status=yes,screenX=50,screenY=50,left=50,top=50');";

        Page.ClientScript.RegisterStartupScript(e.GetType(), "window", script, true);

Si quieren mejorarlo un poquito, en el caso de un sistema o pagina web donde el servidor de reportes esta hospedado en el mismo server que el website, podemos obtener la direccion ip del server de esta forma, y asi no preocuparnos si su ip cambia:

        string cUrl;

        cUrl = Request.Url.GetLeftPart(UriPartial.Authority).ToString();

        script = "window.open('" + cUrl + "/ReportServer/Pages/ReportViewer.aspx?/Carpeta/NombreReporte&rc:parameters=False&parametro1=" + control1.SelectedValue + "&parametro2=" + control2.text + " ','popup','height=650,width=1000,hotkeys=no,menubar=no,resizable=yes, scrollbars=yes,status=yes,screenX=50,screenY=50,left=50,top=50');";

        Page.ClientScript.RegisterStartupScript(e.GetType(), "window", script, true);

Cualquier pregunta, escribanla en los comentarios o mandenme un correo. 

Espero les sirva este post!


Actualización: el usuario "Libros del Mono" en comentarios mejoro el código 

Solo una observación, cambia

Page.ClientScript.RegisterStartupScript(e.GetType(), "window", script, true);

por

ScriptManager.RegisterStartupScript(ScriptManager1, GetType(), "ShowMsg", script, True);

en aplicaciones que usen controles AJAX es mejor hacer uso del ScriptManager para ejecutar eventos de JS en páginas .aspx

 

Gracias a Libros del Mono por su aporte


3 Comments

Unknown @ 24 de febrero de 2010 a las 6:06
Este comentario ha sido eliminado por el autor.
Unknown @ 24 de febrero de 2010 a las 6:10

Solo una observación, cambia

Page.ClientScript.RegisterStartupScript(e.GetType(), "window", script, true);

por

ScriptManager.RegisterStartupScript(ScriptManager1, GetType(), "ShowMsg", script, True);

en aplicaciones que usen controles AJAX es mejor hacer uso del ScriptManager para ejecutar eventos de JS en páginas .aspx

P.D: sorry por borrar la entrada anterior, solo lo hice porque no se pueden editar los comentarios luego de postearlos xD!

Saludos

Gustavo Monaco @ 24 de febrero de 2010 a las 22:00

Genial hermano gracias!