FUNCTION

JOHNHEY 26/08/2010 06:05:25
#351319
gostaria de colocar em um módulo uma função que irei usar inumeras vezes em várias partes do programa, pois assim não seria preciso digita-la sempre bastaria chama-la.

coloquei no meu módulo assim:
Sub verificautilizador()
Dim sqlConnectString As String = [Ô]Data Source=.\SQLEXPRESS;AttachDbFilename=E:\PRGTIAL\TIAL\TIAL\BDTial.MDF;Integrated Security=True;Connect Timeout=30;User Instance=True[Ô]

[ô]aqui abro a conexão novamente
conexao = New SqlClient.SqlConnection(sqlConnectString)
conexao.Open()

[ô]executo o comando
sql = [Ô]SELECT * FROM TBUsuario WHERE Nome=[ô][Ô] & usuariologado & [Ô][ô][Ô]
cmd = New SqlClient.SqlCommand(Sql, conexao)
Dim leitor As SqlClient.SqlDataReader = cmd.ExecuteReader
Dim incluir, salvar, excluir, alterar, pesquisar As String

If leitor.Read = True Then
[ô]verifica se o utilizador pode ou não fazer inclusões, alterar, salvar, excluir e devolve nos checkbox
incluir = leitor.Item([Ô]incluir[Ô]).ToString
salvar = leitor.Item([Ô]salvar[Ô]).ToString
excluir = leitor.Item([Ô]excluir[Ô]).ToString
alterar = leitor.Item([Ô]alterar[Ô]).ToString
pesquisar = leitor.Item([Ô]pesquisar[Ô]).ToString

End If
leitor.Close()
End Sub

e quando for precisar dela é só colocar

Call verificautilizador()

mas agora vem a dúvida.
tenho em varios forms, botões tipo: Salvar, Incluir, Pesquisar, Excluir, Alterar, etc com os mesmos nomes.
cmdsalvar
cmdexcluir
cmdalterar
como eu poderia coloca-los na funçao do módulo?
pois gostaria de colocar assim:

depois que verificasse o que o usuario podesse fazer e retornar o valor
-
-
-
-
[ô]verifica se o utilizador pode ou não fazer inclusões, alterar, salvar, excluir e devolve nos checkbox
incluir = leitor.Item([Ô]incluir[Ô]).ToString
salvar = leitor.Item([Ô]salvar[Ô]).ToString
excluir = leitor.Item([Ô]excluir[Ô]).ToString
alterar = leitor.Item([Ô]alterar[Ô]).ToString
pesquisar = leitor.Item([Ô]pesquisar[Ô]).ToString

[txt-size=2][txt-color=#e80000]cmdsalvar.enable = true
cmdincluir.enable = true
cmdexcluir.enable = false
[/txt-color][/txt-size]
FOXMAN 26/08/2010 10:56:47
#351343
Resposta escolhida
Se esse botoes estiver dentro de algum outro controle, por exemplo um GroupBox ou um Painel, vc pode adicionar na sua função um parametro do tipo controle, podendo ser um GroupBox ou um Painel,

Neste caso vc faria um loop no objeto e de acordo com a condição imposta ele habilitaria ou não o botão.

o exemplo a seguir demonstra como limpar textBox

Public Function Limpar(ByVal parent As Control)
Dim strErrorMess As String = Nothing
For Each ctrl As Control In GetChildControls(parent)
If TypeOf ctrl Is TextBox Then
ctrl.Text = String.Empty
End If
Next
Return Nothing
End Function


Pode adapta-lo de acordo com sua necessidade.


JOHNHEY 26/08/2010 11:07:44
#351348
ok, deu certo, mas agora preciso de outra coisa, conforme retornasse o valor do banco de dados ele ativava ou desativa o botao:

ex:
primeiro verifica se no bd o usuario pode ou nao fazer inclusões
incluir = leitor.Item([Ô]incluir[Ô]).ToString
segundo verifica se no bd o usuario pode ou nao salvar
salvar= leitor.Item([Ô]salvar[Ô]).ToString
e assim por diante, depois de verificar ele colocaria meus botões conforme a autorização e não todos.
JOHNHEY 26/08/2010 11:23:10
#351352
fiz da seguinte maneira:

Sub ativar()
[ô]deixar todos os combobox sem seleção
For Each ctl As Control In Me.Controls
If TypeOf (ctl) Is Button Then


DirectCast(ctl, Button).Enabled = False
End If
Next
End Sub

só que agora gostaria se possivel o seguinte:
no espaço em branco gostaria de fazer um select
tipo assim:

Sub ativar()
[ô]deixar todos os combobox sem seleção
For Each ctl As Control In Me.Controls
If TypeOf (ctl) Is Button Then
Select Case ctl
Case Incluir [ô] caso fosse o botao Incluir
DirectCast(ctl, Button).Enabled = retornaincluir [ô]retornaincluir é o resultado que foi retornado do bd, que pode ser true ou false
End Select
End If
Next
End Sub
Tópico encerrado , respostas não são mais permitidas