none
Parametros baseados em combobox aninhados [nested] RRS feed

  • Pergunta

  • Senhores bom dia,

    Montei um relatorio com parametros baseados em valores do combobox, é possivel eu montar os dados de um combobox baseado em outro combobox no mesmo relatorio ?

    Obrigado.

    terça-feira, 9 de novembro de 2010 16:06

Respostas

  • Olá Ricardo.

    Isto é possivel de se fazer e mais fácil que você imagina, basicamente você terá que criar dois dataSets em seu relatório, um para cada combo e terá de criar um parâmetro para cada combo em seu relatório.

    Então vamos lá:

    1- Crie um DataSet através da aba "DATA" para o combo que virá preenchido inicialmente (exemplo de nome para o dataset: dsOrigem, exemplo de query:"SELECT ID,NOME FROM TABELAPRIMARIA")

    2- Crie um parâmetro através data aba "Layout" (Botão direito em uma parte vazia do relatório / ReportParameter) para que represente este primeiro combo (exemplo de nome do parâmetro: Origem), e defina que este parâmetro será preenchido através do dataset criado anteriormente (Selecione a opção from Query, selecione o seu DataSet "dsOrigem" defina o Value Field e Label Field de acordo com os campos desejados)

    3- Crie um segundo DataSet (ex: dsDestino) através da aba "DATA" para o segundo combo que é o que será preenchido após a seleção no primeiro combo, é importante que a query deste dataSet tenha em sua clausula Where um Filtro pelo campo definido como Value Field do primeiro combo (exemplo de query:"SELECT ID,ID_TABELA_PRIMARIA,NOME FROM TABELASECUNDARIA WHERE ID_TABELA_PRIMARIA = @ID_TABELA_PRIMARIA)"

     4-Após criar,testar este novo DataSet e salvar o relatório, automaticamente um novo parâmetro será adicionado ao relatório (No exemplo acima chamaria ID_TABELA_PRIMARIA), mas ainda falta definir de onde vai vir este parâmetro (No caso o combo), para isto, ainda na aba "DATA" com o respectivo DataSet selecionado (dsDestino) clique no primeiro botão que se encontra após o DataSet que é representado por 3 pontos (...), feito isto abrirá uma nova janela com diversas abas, selecione a aba "Parameters", considerando o exemplo acima estará exibindo algo do tipo: Name Value @ID_TABELA_PRIMARIA =Parameters!ID_TABELA_PRIMARIA.Value A opção contida em Value deve ser alterado para utilizar como parâmetro o valor selecionado no primeiro combobox, para o exemplo citado acima ficaria da seguinte forma: =Parameters!Origem.Value Lembrando que Origem nada mais é que o nome do Parâmetro criado no passo 2

    5-Feito isto na aba "Layout" você terá de configurar o segundo parâmetro (ID_TABELA_PRIMARIA) para que utilize este ultimo dataSet criado como fonte de dados (Selecione a opção from Query, selecione o seu DataSet "dsDestino" defina o Value Field e Label Field de acordo com os campos desejados)

    É isto. Espero ter ajudado. 


     Se o post foi útil marque como resposta. - Advanced Web Application - MCP - Twitter: @mpghelli

    quarta-feira, 10 de novembro de 2010 17:10