Selecionar dinamicamente os campos do filtro dinamico

(wenik) #1

Existe um meio de mudar os campos do filtro dinâmico durante a execução?

Ex.: tenho o campo regional, subregional e unidade
se é um cliente, aparece regional, subregional e unidade para filtrar.
se é outro aparece apenas unidade.

na consulta o sc_field_display inibe ou mostra como eu quero, mas no filtro dinâmico, mesmo inibido, ele aparece.

(Mestre Scriptcase) #2

Boa noite, @wenik!!

Td certo, mestre?

O Scriptcase não permite alterar filtro dinamicamente.

Porém, uma coisa que usamos em alguns dos nossos projetos e que pode te ajudar é trabalhar com duas consultas, com filtros diferentes.

Nesse caso, usamos uma blank, que é chamada pelo item do menu. Nela, temos a regra que define para qual consulta o cliente logado será redirecionado.

Se tiver duvida ou curiosidade entra em contato com a gente que trocamos esse conhecimento! :wink:

Abraço!!

(wenik) #3

gostaria de saber como faz sim. Imaginei algo do tipo , pois já faço assim para alguns casos, mas os códigos acabam ficando muito longos…

(Jailton) #4

Se você usar o plano de senhas padrão do SC, é só criar as consultas com os filtros, que
precisa e colocar todas elas no menu.

Depois entrar na app_login no evento onValidateSuccess:

	    // Colocar seu IF aqui para desativar / ativar grid correto dependendo do cliente [glo_ClienteTipo].
		
		if ($rs->fields[0]=='grid_consulta_cliente_tipo1') {
		    sc_apl_status($rs->fields[0], 'off');
		}
		if ($rs->fields[0]=='grid_consulta_cliente_tipo2') {
		    sc_apl_status($rs->fields[0], 'off');
		}		
		
		if ([glo_ClienteTipo]==1 and $rs->fields[0]=='grid_consulta_cliente_tipo1') {
			sc_apl_status($rs->fields[0], 'on');
		}
		if ([glo_ClienteTipo]==2 and $rs->fields[0]=='grid_consulta_cliente_tipo2') {
			sc_apl_status($rs->fields[0], 'on');
		}

Ai ele vai Ativar/Desativar no menu para o usuário a aplicação que ele precisa, as que
ficam Desativadas o usuário nem vai ver elas no menu.

1 Like
(wenik) #5

Obrigado pela resposta, vou fazer testes. Valeu.