[RESOLVIDO]Filtro por usuario

Boa tarde !
Tenho um menu de itens que contem alguns formulários de cadastro e algumas lista(Grid editável view) para entrar no menu tem que logar com usuário e senha eu gostaria que cada lista quem tem algum dados de empresa cadastrado só mostrasse ao usuário os dados da empresa que ele e cadastrado
EX:
no caso como eu estou no usuário teste1 no MEC_VENDA so deveria lista os dados que tem as empresas 3 e 6 e o resto teria que fica oculto , como eu faria isso ?


Crie uma tabela de Usuários vs empresas.

No SQL das aplicacos que vc quer controlar, coloque o critério de verificação se o usuário existe para a empresa na tabela de usuários vs empresas.

Faço desta forma em algumas aplicações e funciona muito bem.

No caso essa tabela eu já tenho que seria a USER_EMPRESA, mas como eu faria esse critério de verificação sou meio leigo ainda no scriptcase, obg

Ajuste este código a sua aplicação e tabela.

WHERE id_cliente in(select id_cliente from clientes_x_usuarios where id_user=’[login]’)

Esta condição só carrega os registros das empresas que o usuário pode esta cadastrado.

Minha tabela USER_EMPRESA{CODIGO,COD_USER,COD_EMPRESA}, no caso meu sql ficaria :

codigo in(SELECT COD_EMPRESA FROM USER_EMPRESA WHERE COD_USER = '[usr_login]') 

So me retornava 1 resultado, então apaguei e inseri os dados novamente agora não me retorna nada

Tem que ver na app_login qual a varíavel global que esta pegando o código do usuário para poder colocar na SQL corretamente:

codigo in(SELECT COD_EMPRESA FROM USER_EMPRESA WHERE COD_USER = [usr_CodigoUsuario??]) 

Como estão os dados na sua tabela de user_empresa e usuários?

na tabela USER_EMPRESA estão os código das empresas e dos usuários, na tabela de usuário e a que o próprio scriptcase faz ao cria o login

Deve ser isso que o Jailton falou então. Veja a aplicação de login qual o nome da variavel global que pega o código do usuario.

Vou tentar explicar como faço.
Na tabela de usuários tenho todos os usuários cadastrados.
Na tabela de usuários x clientes tenho o login dos usuários e o id do cliente.

E desta forma cadastro os usuários relacionando eles aos clientes, depois nas aplicações onde preciso controlar este tipo de acesso incluo no comando sql a condição de se o usuário existe para o cliente.

Minha variável global que define o login e [usr_login], no caso na minha tabela aonde eu cadastro os usuários a chave primaria e login então ela não tem um campo código, na minha tabela de USER_EMPRESA então no COD_USER eu não uso o código do usuário então fica o login ao invés do id
então a tabela fica Login x Código da empresa , o fato de não ter um código pode influenciar em algo?

user_empresa :

sec_users (cadastra o usuario)

Coloque o seu sql completo aqui pra vermos como você está fazendo

na minha Cláusula Where tem apenas isso :

codigo in(SELECT COD_EMPRESA FROM USER_EMPRESA WHERE COD_USER = '[usr_login]')

Bom, suponho que voce esteja fazendo o select na tabela sec_users. Sendo assim, “codigo in(…” está errado.

O correto seria

login in (SELECT COD_EMPRESA FROM USER_EMPRESA WHERE COD_USER = '[usr_login]')

Pelo que entendi, ele esta buscando o id do cliente na tabela de clientes x usuarios.
WHERE id_cliente in(select id_cliente from clientes_x_usuarios where id_user=’[login]’)

Rs…foi o que falei

Não estou tentando em outra tabela, Deixa eu me expressar melhor oque eu quero eu tenho tabela USER_EMPRESAS eu queria que em qualquer tabela que tenha algum dado de empresa so aparecesse os dados que corresponde ao login que ta cadastrado

Exemplo :

ai tem esses dados mas meu usuario so tem cadastrado as empresas 5 e 4 , então a linha que contem a empresa 6 não deveria aparecer , e se meu usuario tivesse apenas a 6 cadastrada as outras duas não deveria aparecer

Habilita o modo ‘Debug’ do SC, ai você vai executar e acompanhar o que ele tá realmente filtrando no SQL, ai depois é só você ver ‘analisar’ quais os campos
e tabelas corretas e trocar a SQL do Where que vai dar certo.

Bom depois de algum tempo batendo a cabeça eu conseguir resolver da seguinte maneira, refiz minha tabela EMPRESA X USUARIO e usei o seguinte codigo para filtrar :

EMPRESA IN (SELECT COD_EMPRESA FROM VW_USER_EMPRESA WHERE LOGIN = '[usr_login]')

OBRIGADO A TODOS PELA AJUDA :wink: