DADOS UMA UMA TELA PARA OUTRA

MGALDINO 27/04/2011 16:05:15
#372623
Surgiu um caso que infelizmente ainda nao resolvi.

Estou conhecendo um pouco melhor vb.net.
Costumo nao utilizar combobox, para carregar tabelas que possivelmente vao ter muitos dados.

Utilizo uma tela de pesquisa com um datagrid dando dois click tras o registro para o form que chamou .

Essa é a duvida como vou trazer esses dados de um form para outro.
sabendo que essa tela de pesquisa é generica todos os forms do sistema podem acessar.
Teria como fazer isso com uma classe.


Tentei isso dois click na grid jogo os dados nas propriedade
Porem nao vou conseguir recuperar os dados do outro form.

Private Sub Grd_Grid_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles Grd_Grid.CellDoubleClick

_Codigo = Grd_Grid.Item(0, e.RowIndex).Value
_Nome = Grd_Grid.Item(1, e.RowIndex).Value
_Cadastro = Grd_Grid.Item(2, e.RowIndex).Value

End Sub
MGALDINO 27/04/2011 16:18:24
#372627
Citação:

:
CRIA UMA FUNÇÃO COM PARAMETROS.
FUNCAO MINHA_FUN(BYVAL CODIGO AS STRING,BYVAL CLIENTE AS STRING) AS STRING
MSGBOX CODIGO & CLIENTE


END FUNCTION

DAI CHAMA ELA ASSIM:

FORM1.MINHA_FUN([Ô]1000[Ô],[Ô]MANé[Ô])




Foi oque coloquei, nao posso criar um metodo no meu form,
pois essa é uma consulta generica, muitos forms vao abrir a mesma.
Terei que criar o mesmo metodo para todos os form...

Não sei se conseguiu entender...
MGALDINO 28/04/2011 08:19:50
#372664
Fera Imagino que voce nao entendeu...

Imaginei que tenho uma form Ordem de Serviço, nele tenho que informar o cliente, na tela tenho um textbox com um botao de pesquisa.
quando clicar nesse botão vai abrir um novo form com uma grid carregada com todos os clientes cadastrados.
Dois click tras o codigo e o nome do cliente para tela que chamou.

Nao quero fazer varios case na tela.
pois esse metodo vou usar para varios form.

criando uma classe para isso facilitaria, porem essa a duvida.
PEGUDO 28/04/2011 09:17:55
#372669
Resposta escolhida
Se o que você precisa é de uma classe genérica, você pode fazer o seguinte:
Vamos supor que você queira retornar o total de compras do cliente:

CLASSE
[txt-color=#0000f0]Public Class[/txt-color] Classe1
[txt-color=#0000f0]Public Function[/txt-color] Retorna_Compras ([txt-color=#0000f0]ByVal[/txt-color] QualNome [txt-color=#0000f0]As String[/txt-color]) [txt-color=#0000f0]As Integer
Dim[/txt-color] C [txt-color=#0000f0]As New[/txt-color] ADOBD.Connection, RecSet [txt-color=#0000f0]As[/txt-color] RecordSet

[txt-color=#007100][ô]Conexão com o BD[/txt-color]
Conectar() [txt-color=#007100][ô]AQUI é SÓ UM EXEMPLO TROQUE Conetar() PELA SUA STRING DE CONEXÃO COM O BD[/txt-color]

RecSet = C.Execute([txt-color=#e80000][Ô]SELECT TotalCompras FROM tblClientes WHERE NomeCliente = [ô] [Ô][/txt-color] & QualNome & [txt-color=#e80000][Ô] [ô] [Ô][/txt-color])

Retorna_Compras = RecSet([txt-color=#e80000][Ô]TotalCompras[Ô][/txt-color]).Value
[txt-color=#0000f0]Return[/txt-color] Retorna_Compras
[txt-color=#0000f0]End Function
End Class[/txt-color]

NO ESCOPO DO MÓDULO:
[txt-color=#0000f0]Public[/txt-color] ObjClasse [txt-color=#0000f0]As New[/txt-color] Classe1

NO CÓDIGO DO SEU FORM:
[txt-color=#0000f0]Dim[/txt-color] Total_De_Compras [txt-color=#0000f0]As Integer
Dim[/txt-color] Dado_Do_Cliente [txt-color=#0000f0]As String[/txt-color] [txt-color=#007100][ô]Atribua a esta variável, o valor clicado no grid[/txt-color]

Total_De_Compras = ObjClasse.Retorna_Compras(Dado_Do_Cliente)


Espero ter ajudado.
MGALDINO 28/04/2011 10:13:58
#372679
Amigo a Ideia é essa mesma...

Hoje eu tenho uma classe parecida com essa que me retorna um DataTable, onde preenche o DataGrid.

E o que nao tinha pensado é isso que colocou logo abaixo ter algumas Variaveis pegando os dados que consultei e trazer para meu form.

Mais vou tentar fazer diferente. ao inves de ter um modulo criar uma nova classe para somente trafegar os dados.

Aproveitar e fazer uma pergunta a quem é mais experiente, se eu instância uma classe no form que estou chamando a consulta, e na tela de consulta atribuir valores ao construtores, quando voltar a tela que chamou a consulta vou perder os dados???

E lembrando vb6 tem como chamar essa tela como modal???

Desculpa varias perguntas...
RODRIGOFERRO 28/04/2011 12:49:47
#372695
Citação:

Aproveitar e fazer uma pergunta a quem é mais experiente, se eu instância uma classe no form que estou chamando a consulta, e na tela de consulta atribuir valores ao construtores, quando voltar a tela que chamou a consulta vou perder os dados???

E lembrando vb6 tem como chamar essa tela como modal???



Nao vai perder os dados porque a instância continua aberta...
Ai voce quiz dizer VB.NET em vez de VB6 certo ?

entao seria assim...

Dim frmDialogue As New frmSecond
frmDialogue.ShowDialog()


Abraços !
MGALDINO 28/04/2011 13:27:19
#372698
Valeu...

Obrigado pela ajuda... quando fizer a tela mando novamente para mostrar como ficou...


Abraços
Tópico encerrado , respostas não são mais permitidas