asp.net - pasar - parametros reporting services
Visor de SQL Reporting Services para la página web: ¿puedes mover el botón Ver informe? (4)
Usando el control del visor para mostrar los informes de SQL Reporting Services en la página web (Microsoft.ReportViewer.WebForms), ¿puede mover el botón Ver informe? Por defecto está en el lado derecho del informe, lo que significa que tiene que desplazarse completamente antes de que el botón esté visible. No es un problema para los informes que se ajustan al ancho de la ventana, pero en los informes muy amplios que son rápidamente un problema.
No, no puede cambiar la posición del botón de informe de vista en el control ReportViewer.
Sin embargo, puede crear su propio control de visualización de informes personalizado. El control estaría compuesto por campos para los parámetros del informe y un botón para generar el informe. Cuando un usuario hace clic en el botón, puede generar el informe en segundo plano. Puede mostrar el informe como PDF, HTML, etc.
Es un truco, pero puedes moverlo en JavaScript. Simplemente vea qué HTML genera el ReportViewer, y escriba el código JavaScript apropiado para mover el botón. Usé JavaScript para ocultar el botón (porque queríamos nuestro propio botón Ver informe). Cualquier código JavaScript que manipule el HTML del ReportViewer generado debe venir después del control ReportViewer en la página .aspx. Aquí está mi código para ocultar el botón, para darle una idea de lo que haría:
function getRepViewBtn() {
return document.getElementsByName("ReportViewer1$ctl00$ctl00")[0];
}
function hideViewReportButton() { // call this where needed
var btn = getRepViewBtn();
btn.style.display = ''none'';
}
La razón por la que se presiona el botón hacia la derecha es que el td para los parámetros tiene width = "100%". Estoy resolviendo este problema con el siguiente jquery. Simplemente cambia el ancho de los parámetros td a 1. Los navegadores expandirán el ancho por su cuenta al ancho del contenido del elemento. Espero que esto ayude.
<script type="text/javascript">
$(document).ready(function() {
$("#<%= ReportViewer1.ClientID %> td:first").attr("width", "1");
});
</script>
Como estaba buscando esta respuesta ayer, pensé en publicar lo que surgió para resolver nuestro problema. Nuestros informes volvían a estar muy abiertos y queríamos que el botón "ver informes" existiera en el lado izquierdo del control, por lo que no había necesidad de desplazarse para acceder al botón. Necesité entrar en el origen del archivo renderizado para encontrar los nombres de identificación del botón y la tabla de destino.
Escribí un simple corte y pegar la función javascript para sacar el botón de su posición original y esencialmente colocarlo en la siguiente fila en la tabla que contiene debajo de los selectores de fecha.
function moveButton() {
document.getElementById(''ParameterTable_ctl00_MainContent_MyReports_ctl04'').appendChild(document.getElementById(''ctl00_MainContent_MyReports_ctl04_ctl00''));
}
Se llama a esta función en el evento de carga del visor de informes.
ScriptManager.RegisterStartupScript(Me, Me.GetType(), "moveButton", "moveButton();", True)
Para ajustar la posición, utilicé la ID de CSS.
#ctl00_MainContent_MyReports_ctl04_ctl00 {
margin: 0px 0px 0px 50px;
}