Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maseroli

[Resolvido] Controle de Itens do MainMenu dentro do Banco

Recommended Posts

Boa tarde a todos,

 

Estou eu aqui novamente para pedir socorro a vocês.

 

Estou evoluindo meu sistema na parte de controle de acesso.

 

Tenho uma tabela de loguin e outra de Grupos(são as empresas que ele tem acesso) e Limites(objetos)

 

Quando o usuario loga no sistema, o sistema ver a que grupo ele pertence e verifica os limites.

 

Até os grupos esta tudo funcionando como eu quero, o meu dilema são os limites.

 

Os limites são os objetos que por defalt estarão todos como False.

 

No delhi eu faria frm_nomedoobjeto.enable := false;

 

Agora como colocar isso "frm_nomedoobjeto.enable := false;" no banco para o delphi entender, lembrando que a lista de limites sera imensa.

 

Aqueles que puderem contribuir com dicas e apoio eu agradeço.

 

Att,

 

Mário Sergio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caros colegas,

 

Consegui resolver meu problema, não sei se foi do geito mais facil e correto, mas esta funcioando como eu esperava.

 

Caso alguem venha a precisar de algo parecido, deixo aqui o codigo que usei.

 

O que ele faz?

No item do menu eu cadastro um valor na tag do objeto, em seguida faço um cadastro no banco do Grupo do Usuario, uma breve descrição do menu em seguida o numero da tag do objeto, com isto todos os usuario que estiverem no nete grupo terão acesso ao Menu(botão).

 

E assim que o usuario se loga no sistema, ao entra no formulario principal e testado grupos e limites a que ele pertence e habilita o itens do menu.

 

Simples mas para mim e muito eficiente, atualmente, tenho cerca de 38 usuario acessando minha aplicação local e remotamente.

 

 

Obrigado a todos.

 

 

 

procedure TfrmPrincipal.FormCreate(Sender: TObject);

Var

mtag, mpos : Integer;

 

begin

 

With ADQ_TGMenu do

Begin

Close;

SQL.Clear;

SQL.Add('SELECT * FROM tbl_LoguinTGMenu');

SQL.Add('WHERE CODGRUPO = :pNIVEL');

SQL.Add('ORDER BY CODGRUPO, DESCRICAO');

Parameters.ParamByName('pNIVEL').Value := NivelUser;

Open;

 

End;

mpos := 0;

 

While mpos <= ComponentCount-1 Do

Begin

If Components[mpos] is TMenuItem then

Begin

mtag := TMenuItem(Components[mpos]).Tag;

If mtag > 0 Then

Begin

If ADQ_TGMenu.Locate('flag',mtag,[loCaseInsensitive]) Then

Begin

TMenuItem(Components[mpos]).visible := TMenuItem(Components[mpos]).Enabled;

End

Else

TMenuItem(Components[mpos]).visible := False;

End;

End;

Inc(mpos);

End;

ADQ_TGMenu.Close;

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.