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?

Foi útil?

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");
    
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top