[RESOLVIDO]Iniciar grid filtrando registros

Olá, tenho uma grid que mostra uma lista de registros e queria filtrar os mesmo conforme a permissão do usuário que logou.

Ex.: usuário loga usando empresa-1 , no grid só aparecerão registros dessa empresa.

Gravei uma variável global no evento onvalidadeSucess do form de login gerado pela segurança:

[code]sc_lookup(UsuarioEmpresa, “Select login, empresa from sec_users WHERE login=”.{login});

$EmpresaLogado = {UsuarioEmpresa[0][1]};
set_global($EmpresaLogado);[/code]

Tentei colocar o filtro na SQL do grid assim(no design):

SELECT ConID, ConEmpresaConveniante, ConEmpresaConveniada FROM convenio where ConEmpresaConveniante = '[EmpresaLogado]'

Também tentei fazer um lookup nos eventos onScriptInit e no onRecord do grid:

$Empresa = [EmpresaLogado]; sc_lookup(DS,"SELECT * FROM CONVENIO WHERE ConEmpresaConveniada=".$Empresa);

o grid não inicia filtrado, tentei trocar ‘[EmpresaLogado]’ por [EmpresaLogado] ou $EmpresaLogado no design da sql porém não deu certo. Alguma dica?

Grato,
Pablo

Pablo bom dia,

Isto aqui não existe:

set_global($EmpresaLogado);

Seria sc_set_global, mas essa macro já está em desuso. Como sugestão, faça assim no teu login:

sc_lookup(UsuarioEmpresa, "Select login, empresa from sec_users WHERE login=".{login});

[EmpresaLogado] = {UsuarioEmpresa[0][1]};

Quanto ao SQL da grid, deixe a variável com aspas mesmo.

Olá, obrigado pela resposta, com certeza vou usar a sugestão em vários casos. Neste específico consegui resolver assim:

[code]$EmpresaLogada = [EmpresaLogado];

if(empty({sc_where_atual})){
sc_select_where(add) = " WHERE ConEmpresaConveniante=".$EmpresaLogada;;[/code]