Parâmetros da fonte de dados BIRT de um arquivo de propriedade
-
20-09-2019 - |
Pergunta
Eu tenho vários relatórios BIRT que obtêm os dados da mesma fonte de dados JDBC.
É possível obter os parâmetros de conexão (URL do driver, nome de usuário e senha) de um arquivo de propriedade externa ou similar?
Solução
Um que você cria uma fonte de dados funcional, pode adicionar essa fonte de dados a uma biblioteca de relatórios que pode ser importada e usada por todos os relatórios BIRT em seu sistema. A fonte dentro da biblioteca pode ter atributos de conexão estática ou você pode abstraí -los usando propriedades externalizadas.
Se você deseja externalizar as informações de conexão, precisará ajustar a própria fonte de dados. Dentro do editor de origem de dados, existe uma seção "Ligação de propriedades" que permite abstrair todos os valores que regem a conexão de dados. A partir daí, você pode vincular os valores (usando o editor de expressão) para parâmetros de relatório ou um arquivo de propriedades.
Para se ligar a um parâmetro de relatório, use esta sintaxe: params[parametername].value
como a expressão.
Para vincular a um arquivo de propriedades, defina o arquivo de recursos nas propriedades de nível superior do relatório. A partir daí, basta usar o valor da chave da propriedade para vincular a entrada à fonte de dados.
Boa sorte!
Outras dicas
Uma alternativa à solução "Property Binding" do @Mystik é externalizando para um perfil de conexão.
- Crie um fonte de dados (Diga "DS"), configurando uma configuração correta dos parâmetros para se conectar a um db.
- Clique com o botão direito do mouse em "ds"> externalize para o perfil de conexão ...> Verifique as duas opções, defina um nome para o perfil de conexão, ok> definir o caminho e o nome do arquivo deveriam salvar o Armazenamento de perfil de conexão (Diga "RelatórioName.cps"), desmarque o Encrypt ... (dessa maneira, podemos modificar as informações no arquivo XML manualmente).
Agora, temos o "RelatórioName.cps", um arquivo XML que podemos modificar de acordo com o ambiente em que colocamos nosso relatório (Desenvolvimento, Produção, ...). O problema é que "DS" carregou estaticamente essas informações de "reportname.cps". Ele os carrega dinamicamente se encontrar "reportname.cps" no caminho absoluto que especificamos. Portanto, alterando o ambiente, o caminho do arquivo será diferente e o relatório não encontrará nosso arquivo. Para dizer ao relatório o local correto do arquivo e carregá -lo dinamicamente, vamos escrever um script:
Configurar um script anterior Para usar o perfil de conexão implantado na pasta de recursos que pode ser diferente para cada ambiente:
var myresourcefolder = reportContext.getDesignHandle().getResourceFolder(); this.setExtensionProperty("OdaConnProfileStorePath", myresourcefolder + "/reportName.cps");