NEW WINDOWS.FORM

ALEVALE 05/10/2012 09:52:35
#411329
Pessoal bom dia,

Tenho uma query que estou montando porém irei utillizar ela em vários form, estou pensando que na hora de carregar poderia passar o nome do form como parametro como eu faço isso ?
Estava pensando em gera uma variavel como :

Dim strNomeForm as new Windows.form

Porém da erro:

Função:
Public Function fncListarStatus(NOMEFORM)
[ô]SQL
strConn = New SqlConnection(ConnectionString)
strConn.Open()
selectText = [Ô]SELECT * FROM tblStatusEquipamentos[Ô]
myCommand = New SqlCommand(selectText, strConn)

dr = myCommand.ExecuteReader()
While (dr.Read())
NOMEDOFORM.COMBOBOX.Items.Add(dr([Ô]dcDescricaoStatus[Ô]).ToString)
End While

strConn.Close()

End Function
KERPLUNK 05/10/2012 09:59:39
#411333
Resposta escolhida
1 - Crie uma classe para representar os status dos equipamentos, contendo as propriedades necessárias pra vc
2 - Crie uma outra classe que contenha um método que retorne uma lista de instâncias dessa classe que representa os status de equipamento, e que faz o que está no seu procedimento aí em cima
3 - Uma alternativa para ter a mesma coisa em todos os forms é criar um componente. Esse componente, vai conter a combo
4 - Não use notação húngara para tabelas, é completamente desnecessário, feio e dificulta a leitura do comando
ALEVALE 05/10/2012 10:18:19
#411341
Obrigado KerpLunk pelas dicas.
Esses esquemas de classe num manjo muito poderia colocar um exemplo ? Já estou olhando tbm mas se tiver alguma coisa de bate-pronto agradeço.

Obrigado.
KERPLUNK 05/10/2012 10:23:23
#411343
é o tipo de coisa que não tem como fazer um [Ô]exemplo[Ô] curtinho, tem que entender o conceito e saber o que está fazendo.
Também tem a alternativa de você fazer um form base que vai ser herdado pelos demais. Esse form base contém todos os controle necessários comuns em todos os formulários.
ALEVALE 05/10/2012 10:38:51
#411345
Entendi, acho que começei com uma luz...rsrsrs

Olha o que eu fiz...
[ô]CLASSE
Public Property PrimeiroNome() As String
Get
[ô]SQL
strConn = New SqlConnection(ConnectionString)
strConn.Open()
selectText = [Ô]SELECT * FROM tblStatusEquipamentos[Ô]
myCommand = New SqlCommand(selectText, strConn)

dr = myCommand.ExecuteReader()
While (dr.Read())
vPrimeiroNome = (dr([Ô]dcDescricaoStatus[Ô]).ToString)
End While

strConn.Close()
PrimeiroNome = vPrimeiroNome
End Get

Set(ByVal Value As String)
vPrimeiroNome = Value
End Set
End Property

[ô]FORM
[ô]POPULA GRID
Dim oMontaNome As New clsSQL
cboCentroCusto.Items.Add(oMontaNome.PrimeiroNome)

Está correto ?
A única coisa que percebi é que teria que ter a variavel como um array correto , pois assim ele só retorna a última.
KERPLUNK 05/10/2012 11:02:26
#411346
Citação:

A única coisa que percebi é que teria que ter a variavel como um array correto , pois assim ele só retorna a última.


Quase isso que você fez. A diferença é que essa classe que você criou, não vai ter código. Você vai criar uma outra classe com um método que retorno uma ListOf(T) dessa classe que você fez.
ALEVALE 05/10/2012 11:13:26
#411348
Entendi mas não compreendi, pode colocar um exemplo ?
KERPLUNK 05/10/2012 11:43:53
#411351
Mais ou menos assim:

(Classe)
Public Function BuscaStatus As ListOf(SuaClasseDeStatus)
strConn = New SqlConnection(ConnectionString)
strConn.Open()
selectText = [Ô]SELECT * FROM tblStatusEquipamentos[Ô]
myCommand = New SqlCommand(selectText, strConn)
Dim Retorno As ListOf(SuaClasseDeStatus) = New ListOf(SuaClasseDeStatus)
Dim item As SuaClasseDeStatus = New SuaClasseDeStatus
dr = myCommand.ExecuteReader()
While (dr.Read())
item.PrimeiroNome = (dr([Ô]dcDescricaoStatus[Ô]).ToString)
item.OutraCoisaQualquer = (dr([Ô]Um outro campo[Ô]).ToString)
Retorno.Add(item)
End While

strConn.Close()
BuscaStatus = Retorno
End
Tópico encerrado , respostas não são mais permitidas