sql-server - servidor - ver log sql server 2000
Servicios de informes del servidor SQL: cómo detener la activación de un informe cuando se abre (7)
Tenemos algunos informes de servicios de informes de SQL Server. No escribí entonces, pero tengo que encargarme de ellos.
Estos informes se activan cuando se abren en el navegador y, con los parámetros predeterminados (los términos y restricciones de búsqueda están en blanco), recuperan una gran cantidad de datos, lo que es lento. El cliente preferiría que el informe no se genere hasta que el usuario ingrese los parámetros y presione "ver informe"
Desafortunadamente, no sé nada de SSRS, ¿cómo impido que se active el informe cuando se abre?
Los detalles de cómo hacerlo en un informe desplegado (según la respuesta de Rihan Meij) son los siguientes:Haga clic en un informe, haga clic en "propiedades" en la parte superior. Es posible que tenga que esperar un poco, porque el informe lento puede estar ejecutándose ahora. Luego haga clic en "parámetros" a la izquierda.
Para cada parámetro, asegúrese de que esté marcado "Prompt User" y, al menos para un parámetro, "Has Default" no esté marcado. Haga clic en "Ver" nuevamente en la esquina superior izquierda (o vuelva a la carpeta y haga clic en el nombre del informe) para ver el informe, y tenga en cuenta que el informe no se activa de inmediato.
En el generador de informes, puede hacerlo a través del menú "Filtro". Deseleccione valores de al menos un filtro y guarde el informe.
¿También es posible evitar que los informes se activen cuando el informe no tiene parámetros?
Descubrí que tenía que configurar al menos uno de los parámetros del informe para que no tuviera un valor predeterminado para evitar que el informe se ejecutara automáticamente.
Tuve que usar esta configuración (nótese que los 3 parámetros que dejé sin valores predeterminados aceptan nulos para que los usuarios puedan simplemente hacer clic en las casillas de verificación Nulo):
[capturas de pantalla faltantes]
para que los usuarios vean esto y para evitar que el informe se ejecute automáticamente:
[capturas de pantalla faltantes]
Encontré que la mejor manera era agregar un parámetro que no permitiera valores nulos, pero el informe no lo utiliza. Esto evita que se reproduzca al inicio, pero no afecta el informe.
El único inconveniente es que si está mostrando el informe en un visor de informes, tiene un cuadro en la parte superior que se ve un poco extraño. Sin embargo, estoy seguro de que podrías usar C # / CSS para ocultarlo.
Como no estoy usando un visor de informes para mostrar, solo para renderizar en la parte posterior esto no me afecta.
¡Incluso si usa un visor de informes, es útil para desarrollar!
Encontré un buen truco para esto cuando trabajo con informes que tienen campos opcionales, pero obtengo una gran cantidad de datos si los campos opcionales están en blanco.
Paso 1: evitar el autoencendido
- Asegúrese de que "Permitir valor nulo" no esté habilitado para los parámetros opcionales
- Asegúrese de que no haya un valor predeterminado para los parámetros opcionales
Paso 2: hacer parámetros opcionales sin usar ''nulo''
- Habilite "Permitir valor en blanco" para los parámetros opcionales
- Modifique su cláusula
WHERE (@param="" OR column = @param)
para los parámetros opcionales aWHERE (@param="" OR column = @param)
Con este método, hay campos adicionales para que los usuarios finales se preocupen, el informe no se activará hasta que se solicite y las condiciones en la cláusula where no se evaluarán si el cuadro de texto se deja vacío.
Nota: si el informe especifica valores disponibles, entonces se puede usar cualquier valor que no sea válido para la estructura de su tabla en lugar de "", también puede usarlo con otros tipos de datos (que no sean cadenas) de esta manera
Establecí el valor predeterminado de una de mis selecciones de parámetros en un valor de -1 que no existe (no es un valor de parámetro válido). Esto no generó un error. Simplemente estableció el cuadro desplegable de parámetros e impidió que se ejecutara el informe. No pude usar un valor predeterminado de NULL porque NULL selecciona todo, y quería que el usuario seleccionara ALL (NULL) a propósito antes de ejecutar el informe. El informe tarda varios minutos en mostrarse si se selecciona ALL.
Hice esto simplemente proporcionando un valor predeterminado para el parámetro clave que no arroja ningún resultado.
Lo he hecho cambiando mi consulta ligeramente para requerir parámetros cuando se ejecuta.
Luego, después de haber publicado el informe en el sitio del informe, especifiqué que el parámetro debería indicarle al usuario. Esto tiene el efecto de que el informe no pone de rodillas al servidor sql cuando los usuarios simplemente abren el informe para ver.
Ver la captura de pantalla adjunta (Una imagen dice mil palabras, derecha :))
Sé que esta publicación es un poco antigua, pero como tengo otra solución aquí, simplemente la publico en caso de que alguien la necesite.
Si está utilizando ReportViewer es posible establecer la propiedad ShowBody = "False". Luego, en el evento OnSubmittingParameterValues, cambie la propiedad ShowBody a verdadero. Entonces no necesita ningún parámetro o parámetro adicional sin valor predeterminado en el informe.
<rsweb:ReportViewer
ID="rv"
runat="server"
Width="100%"
Height="100%"
SizeToReportContent="false"
ZoomMode="PageWidth"
KeepSessionAlive="true"
ProcessingMode="Remote"
PromptAreaCollapsed="false"
InteractivityPostBackMode="AlwaysAsynchronous"
AsyncRendering="true"
ExportContentDisposition="AlwaysInline"
ShowReportBody="False"
ShowPrintButton="false"
OnSubmittingParameterValues="rv_SubmittingParameterValues"/>
Y luego en el método rv_SubmittingParameterValues:
this.rv.ShowReportBody = true;