crystal reports - vinculado - Reemplazar una conexión de base de datos para el informe y todos los subinformes
subreporte con parametros crystal reports (5)
¿Hay alguna forma de cambiar la ubicación del origen de datos para un informe y todos sus subinformes sin tener que abrirlos manualmente?
¿Supongo que estás hablando de archivos .rdl de Reporting Services? (Si no, mi respuesta podría estar equivocada)
Básicamente son solo XML, por lo que podría cargar cada uno de ellos y hacer una consulta XPath para obtener el nodo que contiene el origen de datos y actualizarlo.
@Unsliced Creo que el problema al que se enfrenta es cuando toma un informe de Crystal que alguien desarrolló en otra base de datos, y lo menciona en Crystal Reports XI, tiene que hacer un Change Datasource para cada campo, incluidos los de los subinformes. Si solo cambia la fuente en el nivel superior del informe, a menudo se producen errores. (Creo que es un problema conocido en Crystal Reports).
Los subinformes vinculados (al menos en CR XI) comparten el origen de datos del informe principal; ¿presumiblemente su informe ya está configurado, por lo que no es una opción para usted?
Aquí es cómo configuro mis conexiones en tiempo de ejecución. Obtengo la información de conexión desde una ubicación de configuración.
#''SET REPORT CONNECTION INFO
For i = 0 To rsource.ReportDocument.DataSourceConnections.Count - 1
rsource.ReportDocument.DataSourceConnections(i).SetConnection(crystalServer, crystalDB, crystalUser, crystalPassword)
Next
For i = 0 To rsource.ReportDocument.Subreports.Count - 1
For x = 0 To rsource.ReportDocument.Subreports(i).DataSourceConnections.Count - 1
rsource.ReportDocument.OpenSubreport(rsource.ReportDocument.Subreports(i).Name).DataSourceConnections(x).SetConnection(crystalServer, crystalDB, crystalUser, crystalPassword)
Next
Next
Si solo está haciendo esto como una oferta única, mi sugerencia podría no ser de ayuda. Pero, si cambia las fuentes de datos con frecuencia, podría ser útil.
Descargo de responsabilidad: no he trabajado con Crystal desde la versión 9.0, por lo que no sé si han mejorado en esto. Siempre usé archivos UDL . Básicamente, es un puntero a una fuente de datos. Configure su informe para que apunte a la UDL, y la UDL apunta a la fuente de datos. Si la fuente cambia, simplemente actualice el UDL.
Esto es increíblemente útil si tiene múltiples informes. Solo debe actualizar un archivo cuando el servidor cambie.