Pergunta

Eu gostaria de ser capaz de percorrer todos os parâmetros definidos em meus relatórios e construir uma seqüência de caracteres do nome do parâmetro e valor de exibição. Eu, em seguida, exibir os resultados no relatório que o usuário saiba quais parâmetros foram usados ??para que a execução específica. O único problema é que eu não posso loop através da coleção Parameters. Não parece ser um indexador na coleção de parâmetros, nem parece a implementar IEnumerable. Ninguém tem sido capaz de fazer isso? Estou usando SSRS 2005 e deve ser implementada no Código Report (montagem ou seja, não externo). Obrigado!

Foi útil?

Solução

Infelizmente, parece que não há nenhuma maneira simples de fazer isso. Consulte http://www.jameskovacs.com/blog/DiggingDeepIntoReportingServices.aspx para obter mais info. Se você olhar para os comentários de que pós , existem algumas maneiras de contornar isso, mas eles não são muito elegante. A solução mais simples vai exigir que você tem uma lista de parâmetros de relatório em algum lugar em seu código Report, que obviamente viola a princípio DRY , mas se você quiser a solução mais simples, você só tem que viver com isso.

Você pode querer repensar a sua restrição de nenhuma montagem externa, como parece-me que seria muito mais fácil de fazer isso com um conjunto externo. Ou se o relatório não vai mudar muito, você pode criar a lista de nomes e valores de parâmetros manualmente.

Outras dicas

Se eu estou entendendo sua pergunta, basta fazer o que eu faço: Deixar cair uma caixa de texto no relatório, em seguida, enquanto você estiver configurando o relatório, insira o seguinte: = "Parâmetro1:" + Parâmetros Parameter.Label + "Parameter2:" + Parâmetros Parameter2.Label ...

Com certeza, não é a coisa mais bonita, mas ela não funciona muito bem em nosso aplicativo.

E eu estou usando etiquetas em vez de valores uma vez que temos de data e hora valores, eo usuário só se preocupa tanto a data curta ou o mês e ano (dependendo das circunstâncias), e eu já fiz isso formatação trabalho na configuração -se os parâmetros.

Não consigo pensar em pelo menos duas maneiras de fazer isso. O primeiro trabalho poder, o segundo vai certamente funcionar.

  1. Use o serviço web. Tenho certeza API vi para obter uma coleção de parâmetros. Mesmo se não há acesso direto você pode sempre criar uma coleção padrão e copiar os objetos ReportParameter de um para o outro em um loop foreach - e depois Conde de acesso, com propriedades de parâmetro individuais disponíveis dereferenciando as instâncias ReportParameter

  2. Os relatórios são RDL. RDL é XML. Criar um XmlDocument e carregar o arquivo RDL, em seguida, usar o DOM para fazer, bem, qualquer coisa que você gosta até e incluindo a definição de valores padrão ou até mesmo reescrever seqüências de conexão.

Se o seu aplicativo não terá acesso de sistema de arquivos para os arquivos RDL você pode obtê-los através do serviço web.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top