[RESOLVIDO] Insclusão de complemento para SQL em todos os selects dos widgets

Olá, Bom dia / tarde pessoal.

Pessoal gostaria de compartilhar uma dúvida com vocês.

Tentarei explicar da forma mais simples e direta possível, caso não entenda posso detalhar mais, ok.

Tenho um DashBoard com vários gráficos que é aberto pelo usuário administrador. O SQL em cada gráfico é simples e busca informações no banco de dados todo.

Eu precisava que para outro tipo de usuário os gráficos do dashboard tivessem algumas informações a mais na cláusula sql. Precisava adicionar para todos os gráficos o seguinte complemento no SQL:

INNER JOIN
tbl_campanhas ON tbl_pesquisa.tbl_campanhas_cd_campanha = tbl_campanhas.cd_campanha
WHERE
(tbl_campanhas.tbl_empresa_cd_empresa = ‘[usr_cd_empresa]’)

Como eu não sabia uma forma de fazer isto de uma única vez, dupliquei cada gráfico, com outro nome, e adicionei manualmente o código acima em cada cláusula SQL. Não me pareceu muito inteligente, mas foi a forma que encontrei.

Se eu precisar fazer isto novamente, há uma forma mais inteligente de fazer? Informar de alguma forma que para todos os SQLs utilizados no DashBoard que eles devem ter uma cláusula SQL a mais?

SQL DO DASHBOARD 1 (Todas as empresas)

SELECT
r_alcool
FROM
tbl_pesquisa

SQL DO DASHBOARD 2 (Preciso filtrar a empresa)

SELECT
r_alcool
FROM

tbl_pesquisa
INNER JOIN

tbl_campanhas ON tbl_pesquisa.tbl_campanhas_cd_campanha = tbl_campanhas.cd_campanha

WHERE
(tbl_campanhas.tbl_empresa_cd_empresa = ‘[usr_cd_empresa]’)

Se é o que entendi a sua necessidade veja se essa macro do scriptcase te atende: sc_select_where(add) veja na documentação como utilizá-la.

1 Curtida

Vou testar essa macro que você falou .

Eu tenho 2 tipos diferentes de usuários, e para estes usuários eu tenho que mostrar um dashboard, é o mesmo dashboar, porém para um tipo eu mostro todos os registros de uma determinada empresa, e para o outro tipo de usuário e mostro todos os registros de todas as empresas. O que muda é o select de cada gráfico que faz parte do dashboard.

O que eu gostaria é de que todos os gráficos do dashboard respeitassem uma cláusula where de acordo com o tipo de usuário, sem que eu tenha que entrar em cada gráfico e alterar o SQL dele.

Resumindo “Dashboard, aplique o filtro empresa = 15 para todos os gráficos que você vai carregar”

isso e possível no dashboard ?

É possível sim!
Dê uma estudada na macro sc_select_where(add) que você vai ver que ela vai atender na sua necessidade porque em tempo de execução você vai add a cláusula where ao script sql da grid.

1 Curtida

nos indices do dashboard não é possível.
nas aplicações de gráfico carregadas pelo dashboard, sim é possivel alterar apenas a clausula where dinamicamente, mas adicionar e remover inner join dinamicamente não é possivel.

1 Curtida

senhores muito obrigado pela resposta ambos me ajudaram muito , resolvido.