Eu configurei várias datas como parâmetros de entrada e na consulta SQL, configurei a cláusula WHERE como:
WHERE datecol1 >= @date1 OR (@date1 IS NULL)
Isso trata as datas como parâmetros opcionais. Eu tenho três parâmetros de data. Quero fazer o relatório de forma que, se o usuário selecionar uma data, outras duas sejam anuladas, como o nulo deve ser verificado.
Além disso, agora, tenho essa configuração em valores padrão parte do parâmetro de data que desejo que seja dependente do outro parâmetro de data.
O que eu estou fazendo errado aqui? Porque isso ainda não funciona.
Nas capturas de tela, você está definindo a expressão para os valores padrão, que alterarão apenas os valores na exibição inicial do relatório. Isso não fará nada para impedir que um usuário altere esses valores, portanto, você pode facilmente obter uma solicitação de renderização com todos os parâmetros preenchidos com algo diferente do padrão.
Sugiro deixar claro para os usuários do seu relatório o que está acontecendo com essas datas, não faça mágica com seus parâmetros nos bastidores. Para fazer isso, crie uma opção em cada conjunto de parâmetros (você pode fazer algo como UNION e codificar o rótulo e a chave) para garantir que a execução do relatório não apenas faça o que você espera, mas deixe isso claro para qualquer outro desenvolvedor ou usuário.
O usuário pode selecionar algo como:
Você pode forçar esse comportamento com parâmetros em cascata. Você pode ter problemas com atualizações de parâmetros em cascata .
Configure assim:
@Param1
@Param2
@Param3
Isso garante que você só pode selecionar a opção "Não usado" para o parâmetro 2 se o parâmetro 1 tiver selecionado qualquer coisa, exceto "Não usado". Você ainda pode definir o padrão para não ser usado para todos eles.