Pregunta

Tengo varios informes BIRT que obtiene los datos de la misma fuente de datos JDBC.

¿Es posible obtener los parámetros conection (Controlador URL, nombre de usuario y contraseña) a partir de un archivo de propiedades externo o similar?

¿Fue útil?

Solución

Uno de crear una fuente de datos funcional, se puede añadir que la fuente de datos a una biblioteca de informes que se pueden importar y utilizar por todos los informes BIRT en su sistema. La fuente dentro de la biblioteca puede tener atributos de conexión estática, o puede abstraer de ellos utilizando las propiedades externalizados.

Si desea externalizar la información de conexión, tendrá que ajustar la misma fuente de datos. Dentro del Editor de origen de datos, hay una sección de "Encuadernación propiedad" que permite abstraer todos los valores que rigen la conexión de datos. Desde allí se puede enlazar los valores (utilizando el editor de expresiones) a cualquiera de los parámetros de informe o un archivo de propiedades.

Para unirse a un parámetro de informe, utilice esta sintaxis:. params[parametername].value como la expresión

Para enlazar a un archivo de propiedades, establezca el archivo de recursos en propiedades de nivel superior del informe. A partir de ahí sólo se puede utilizar el valor de clave de propiedad a obligar a la entrada a la fuente de datos.

Buena suerte!

Otros consejos

Una alternativa a la solución de buena @ Mystik "Propiedad de unión" es exteriorización de un perfil de conexión .

  • Crea un fuente de datos (digamos "DS"), la creación de una configuración correcta de los parámetros para conectarse a una base de datos.
  • Haga clic derecho sobre "DS"> exteriorizar al perfil de conexión ...> marcar ambas opciones, establecer un nombre para el perfil de conexión, Ok> establecer la ruta y el nombre eran para guardar el Perfil de conexión tienda (reportName.cps decir ""), desactive Cifrar ... (de esta manera se puede modificar la información en el archivo XML con la mano).

Ahora tenemos "reportName.cps", un archivo XML que podemos modificar de acuerdo con el entorno en el que ponemos nuestro informe (desarrollo, producción, ...). El problema es que "DS" se ha cargado estáticamente los datos de "reportName.cps". Se los carga dinámicamente si se puede encontrar "reportName.cps" en la ruta absoluta que hemos especificado. Así entorno cambiante la ruta del archivo será diferente y el informe no se encuentra nuestro archivo. A decir informe de la ubicación correcta del archivo y cargarlo dinámicamente Vamos a escribir una secuencia de comandos:

  • Configuración de una script de beforeOpen para usar el perfil de conexión que se despliega en la carpeta de recursos que pueden ser diferentes para cada ambiente:

    var myresourcefolder = reportContext.getDesignHandle().getResourceFolder();
    this.setExtensionProperty("OdaConnProfileStorePath", myresourcefolder + "/reportName.cps");
    
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top