Pergunta

Eu tenho um relatório que administra um Proc armazenado:

EXEC ra_spProjectCalendar @Month, @Year, @ProjectID

O ProjectID é um suspensão de múltiplas seleções. Quando um único projeto é selecionado, funciona bem. Se eu selecionar vários projetos, recebo o erro:

"Must declare scalar variable "@ProjectID"

Funciona bem quando o executo na guia Dados, no entanto, quando o coloco no modo de visualização, tenho problemas.

Foi útil?

Solução

Eu tenho algo semelhante ao trabalho, construindo a consulta como uma expressão - em seu exemplo

="EXEC ra_spProjectCalendar @Month = '" & Parameters!Month.Value & "',@Year='" & Parameters!Year.Value & "',@ProjectID = '" &  Join(Parameters!ProjectID.Value, ",") & "'"

Alguns código no SP de destino dividem a sequência de múltiplas seleções em uma tabela temporária usada em junções para criar saída.

Não me lembro por que acabamos fazendo dessa maneira - estava bem no início de nossa mudança para o SSRS e as coisas se moveram um pouco desde então - mas pode ter sido o problema que você descreve.

Outras dicas

Eu tive o mesmo erro: deve declarar variável escalar.

Percebo agora que a primeira coisa a verificar é que, quando você entra na consulta como texto, ou o PROC armazenado como um tipo PROC armazenado, que o SSRS cria automaticamente a entrada de parâmetros na guia Parâmetros das propriedades do conjunto de dados. Se não os criar, não pode ler sua consulta corretamente.

No meu caso, eu estava usando o OpenQuery para chamar um cubo de serviços de análise e referenciar os nomes de campo que contêm muitos colchetes quadrados. Infelizmente, o SSRS adora reformatar seu código para que bem formados [medidas]. [Somemeasure] se transforme nessa feia fuga da bagunça de caráter [[medidas]]. [Somemeasure]]

Se você editar essa consulta em outra ferramenta, reapare-a novamente ao SSRS, o SSRS não poderá ler essa sintaxe! Mesmo que isso gerem! Portanto, remova todos os suportes quadrados extras e substitua as cotações duplas e o boom, ele funciona novamente e gera seus parâmetros.

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