none
Criar Restrição de Campos RRS feed

  • Pergunta

  • Boa noite,

    Fiz dois formularios, um form de cadastro de usuario e outro de produtos, preencho o form de cadastro e seleciono um cargo dentro ComboBox, quando clico no botão Produtos ele me retorna a form produtos, até ai tudo bem, o que eu não to conseguindo fazer é colocar uma restrição dependendo do cargo de cada usuario, por exemplo, se o cargo for de gerente ele abre o form produtos com todos os campos ativos, e se for um vendedor, ele abre o form produtos restringindo alguns campos.

    Consegui fazer funcionar todos os botões, Cadastrar, Editar e Excluir, mais não consigo fazer essas restrições.

    Segue formularios e codigo que estou tentando fazer.

     

    Esse é o começo do código que estou tentando fazer, está completamente incompleto, porque não sei onde defino os campos que cada cargo irá poder acessar.

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
            If ComboBox1.Text = "Gerente" Or ComboBox1.Text = "Presidente" Then
                frmProdutos.Show()
            Else
                MsgBox(" Usuário não ''AUTORIZADO''")

            End If

        End Sub

    E esse é o formulario de Produtos e seus devidos campos.

    Desde já sou Grato a todos !!!

    

    sexta-feira, 27 de março de 2015 01:56

Respostas

Todas as Respostas

  • Boa noite Gilmar

    Segue alguns links que podem lhe ajudar:

    http://ef3cinco.com/2011/08/25/como-bloqueardesbloquear-campos-de-um-formulario-usando-vba/

    http://imasters.com.br/artigo/11029/vbnet/vb_net__datagridview_e_dataset_dicas/

    https://social.msdn.microsoft.com/Forums/pt-BR/6b7af533-caa6-41f8-891b-fbd39e7c0450/como-evitar-que-uma-tabpage-seja-selecionada-?forum=vsvbasicpt

    Abraços


    Matheus Leopardi Mello Canelada Campos

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    TechNet Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 2 de abril de 2015 02:24
  • Gilmar, 

    Se todos vão acessar os Produtos, acredito que você possa manipular os itens do form com a propriedade

    enabled ou readonly.

    Ou seja, quando não for o cargo de Gerente, por exemplo, não permite alterar os campos.

    Ou se não quiser que apareça, alterar a propriedade visible.

    quinta-feira, 2 de abril de 2015 20:06
  • Boa noite ArthurAugusto, mais como eu faria essa condição, direto nos botões ou com alguma codificação em especifico ?

    domingo, 5 de abril de 2015 01:27
  • no evento do click do botão Produtos, voce faria uma verificação tipo:

    if (perfil == "Gerente")
    {
       MostraCampos(true);
    }
    else
    {
       MostraCampos(false);
    }

    Onde a tua função MostraCampos teria um parametro boolean, que define se vai mostrar o campo ou não.

    sua função ficaria algo do tipo assim. Ex:

    function MostraCampos(bool mostrarOuNao)
    {
        // para alterar a visibilidade
        txt1.Visible = mostrarOuNao;
        // para alterar a edição
        txt1.Enabled = mostrarOuNao;
    
        txt2.Visible = mostrarOuNao;
        txt2.Enabled = mostrarOuNao;
    
    }

    A função sempre receberia o valor para mostrar ou não.

    Se passar true, é porque é o gerente, então mostra os campos.

    Caso seja false, não é o gerente, então não mostra os campos. Ou nem abre o form..

    aí depende do que você quer.


    Att, Arthur Augusto

    domingo, 5 de abril de 2015 01:55
  • Então, essa codificação explicativa que você fez está em C#, to precisando em VB.

    Tentei fazer usando essa lógica, mais, ai ele mostra só os campos do form Cadastro, e não me mostra os campos do frmProdutos para que eu os deixe visiveis ou não.

    O código do botão produtos está assim, onde eu colocaria para ele chamar e visibilizar ou não os textbox do form Produtos ?

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
            If ComboBox1.Text = "Gerente" Or ComboBox1.Text = "Presidente" Then
                frmProdutos.Show()
                If ComboBox1.Text = "Vendedor" Or ComboBox1.Text = "Estagiário" Then






                Else
                    MsgBox(" Usuário não ''AUTORIZADO''")
                End If

            End If

        End Sub

    domingo, 5 de abril de 2015 02:22
  • Gilmar, pra você ter acesso aos campos do formulários de produtos ele precisa estar instanciado.

    Não sei a sintaxe correta do VB,mas.. no seu caso, acredito que possa fazer assim:

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
            If ComboBox1.Text = "Gerente" Or ComboBox1.Text = "Presidente" Then
    //aqui antes de mostrar o form, manipular a visibilidade
                frmProdutos.txtCampo1.Visible = false;
    // depois de manipular todos os campos você mostra o formulário com o frmProdutos.Show();
                frmProdutos.Show()
                If ComboBox1.Text = "Vendedor" Or ComboBox1.Text = "Estagiário" Then
    
    
    
    
    
    
                Else
                    MsgBox(" Usuário não ''AUTORIZADO''")
                End If
    
            End If
    
        End Sub

    Acredito que já consegue resolver assim.


    Att, Arthur Augusto

    • Marcado como Resposta Gilmar Souza terça-feira, 7 de abril de 2015 11:18
    domingo, 5 de abril de 2015 13:37
  • Agora com esse código apareceu outro porém, ao clicar em "Produtos" ele fecha os formularios e retorna para os codigos, saberia informar porque isso ocorre ?
    segunda-feira, 6 de abril de 2015 20:26
  • Agora com esse código apareceu outro porém, ao clicar em "Produtos" ele fecha os formularios e retorna para os codigos, saberia informar porque isso ocorre ?

    Problema resolvido.

    Agora que consegui bloquear os campos desejados, tava pensando em dá acesso aos botões cadastrar, editar e excluir há apenas alguns usuários. Tava pensando em criar uma tabela de usuários com nível de acesso, onde eu utilizaria um select case, por exemplo, quando fosse selecionado o vendedor que teria nível 3 dentro da tabela, no case seria posto uma condição onde ele iria poder cadastrar e consultar, e não poderia excluir. É viável fazer dessa maneira ?

    terça-feira, 7 de abril de 2015 11:18
  • Gilmar, 

    acho que tá dentro do padrão dos sistemas.

    Permissões de visualizar, inserir, editar e excluir. 

    Na minha visão, está correto o pensamento.


    Att, Arthur Augusto

    terça-feira, 7 de abril de 2015 20:45
  • Gilmar, 

    acho que tá dentro do padrão dos sistemas.

    Permissões de visualizar, inserir, editar e excluir. 

    Na minha visão, está correto o pensamento.


    Att, Arthur Augusto

    Arthur Augusto,

    Obrigado de verdade pela ajuda !!!

    quarta-feira, 8 de abril de 2015 01:53
  • Por nada, estamos aí pra ajudar.

    Att, Arthur Augusto

    quarta-feira, 8 de abril de 2015 18:41