CLASS LINQ POO COM SUB EXIBIR NO GRID

 Tópico anterior Próximo tópico Novo tópico

CLASS LINQ POO COM SUB EXIBIR NO GRID

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#497040 - 25/05/2021 08:37:38

MAXCIM
GUARULHOS
Cadast. em:Dezembro/2003


Olá amigos bom dia!
minha saga com POO continua!

tenho uma classe cliente, e  dentro tenho um aributo _endereco ( subclasse)  com logradouro, cidade, uf e cep.


class_cliente
razao
cnpj
_endereco
          Logradouro
          Cidade
          uf
          cep

preciso exibir no datagridview em uma unica linha todos os dados.

Razao | CNPJ |logradouro| cidade| uf | cep

desde ja agradeço






#497041 - 25/05/2021 09:27:44

JABA
CABO FRIO
Cadast. em:Agosto/2005


www.macoratti.net/16/10/c_dgvobj1.htm

_______________________________________________________________________________________________

Se a alma ou esprito so imateriais, como eles fazem para se localizar quando o corpo est em movimento?



#497042 - 25/05/2021 11:04:11

MAXCIM
GUARULHOS
Cadast. em:Dezembro/2003


jaba, obrigado pela resposta, foi excelente.

só tenho mais uma coisinha a pedir,  no exemplo ele usa o grid com colunas  fixadas,  

tem algo que preencha dinamicamente?  meu grid não tem as colunas.

montei esse LINQ

            Dim Linq3 = List_Pessoas.Select(Function(F) New With {
                                       .razao = F.Razao, .CNPJ = F.CNPJ,
                                       .Endereco = F._Endereco.Logradouro, .Bairro = F._Endereco.Bairro, .Cidade = F._Endereco.Cidade, .UF = F._Endereco.UF
                                              }).ToList

tem como fazer que  o select(off)  pegue todos os campos da Classe pessoa?  sem tem que reescrever uma a um?





#497044 - 25/05/2021 12:31:34

JABA
CABO FRIO
Cadast. em:Agosto/2005


Última edição em 25/05/2021 12:32:41 por JABA

    public sub GetPropriedades(obj as Object)
        For Each p As System.Reflection.PropertyInfo In obj.GetType().GetProperties()
               If p.CanRead Then
                   Console.WriteLine('{0}: {1}', p.Name, p.GetValue(obj, Nothing))
               End If
        next


'Para usar
GetPropriedades(cliente.Endereco)



_______________________________________________________________________________________________

Se a alma ou esprito so imateriais, como eles fazem para se localizar quando o corpo est em movimento?



#497045 - 25/05/2021 14:45:32

MAXCIM
GUARULHOS
Cadast. em:Dezembro/2003


oi Jaba. obrigado mais uma vez!

mas não consegui aplicar essa solução!

devo aplica-la ao select (OFF) para ela gerar a lista de campos horizontalmente ?

Dim Linq3 = List_Pessoas.Select(Function(F) New With {
                                       .razao = F.Razao, .CNPJ = F.CNPJ,
                                       .Endereco = F._Endereco.Logradouro, .Bairro = F._Endereco.Bairro, .Cidade = F._Endereco.Cidade, .UF = F._Endereco.UF
                                              }).ToList

aqui nesse exemplo eu usei uma classe curta  a de  Pessoas,   mas tenho classes longas ( muitos campos) e essa  função seria para listar o campos da classe no selct(off) do linq/




#497048 - 25/05/2021 21:48:44

JABA
CABO FRIO
Cadast. em:Agosto/2005


stackoverflow.com/questions/20554103/recursively-get-properties-child-properties-of-a-class

_______________________________________________________________________________________________

Se a alma ou esprito so imateriais, como eles fazem para se localizar quando o corpo est em movimento?



#497050 - 26/05/2021 00:34:32

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Cuidado para não abusar muito nessa técnica(que se chama Reflection), ela pode pesar bastante em runtime.

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#497053 - 26/05/2021 08:50:09

MAXCIM
GUARULHOS
Cadast. em:Dezembro/2003


Bom dia a todos!

acho que não estou sabendo me expressar bem,

oque eu gostaria de fazer é algo relativamente simples.  seria o equivalente ao tabela1.*   ( selecionar todos os campos da tabela 1) .

ao fazer o  LINQ  , passar para o GRID todos os campos da  classe CLIENTE  e em seguida eu monto a instrução pra pegar o endereço.

      Dim LinqP = List_Pessoas.Select(Function(F)  F.(todos os campos da classe pessoa),   .Endereco = F._Endereco.Logradouro, .Bairro = F._Endereco.Bairro, .Cidade = F._Endereco.Cidade, .UF = F._Endereco.UF)

eu consigo fazer, e assim o fiz, reescrevendo  todos os campos,  mas não é interessante ficar  digitando tudo,  deve ter uma função que enumere os campos.

isso aqui funciona
Dim Linq3 = List_Pessoas.Select(Function(F) New With {
                                       .razao = F.Razao, .CNPJ = F.CNPJ, e mais uns 20 atributos....
                                       .Endereco = F._Endereco.Logradouro, .Bairro = F._Endereco.Bairro, .Cidade = F._Endereco.Cidade, .UF = F._Endereco.UF
                                              }).ToList




#497055 - 26/05/2021 12:11:18

JABA
CABO FRIO
Cadast. em:Agosto/2005


Citação:
:
Bom dia a todos!

acho que não estou sabendo me expressar bem,

oque eu gostaria de fazer é algo relativamente simples.  seria o equivalente ao tabela1.*   ( selecionar todos os campos da tabela 1) .

ao fazer o  LINQ  , passar para o GRID todos os campos da  classe CLIENTE  e em seguida eu monto a instrução pra pegar o endereço.

      Dim LinqP = List_Pessoas.Select(Function(F)  F.(todos os campos da classe pessoa),   .Endereco = F._Endereco.Logradouro, .Bairro = F._Endereco.Bairro, .Cidade = F._Endereco.Cidade, .UF = F._Endereco.UF)

eu consigo fazer, e assim o fiz, reescrevendo  todos os campos,  mas não é interessante ficar  digitando tudo,  deve ter uma função que enumere os campos.

isso aqui funciona
Dim Linq3 = List_Pessoas.Select(Function(F) New With {
                                       .razao = F.Razao, .CNPJ = F.CNPJ, e mais uns 20 atributos....
                                       .Endereco = F._Endereco.Logradouro, .Bairro = F._Endereco.Bairro, .Cidade = F._Endereco.Cidade, .UF = F._Endereco.UF
                                              }).ToList


Tudo o que você precisa para resolver o problema já foi postado. Aqui vai uma forma de pegar as propriedades via LinQ: stackoverflow.com/questions/23492812/how-to-get-the-value-of-class-properties-with-linq-query-and-ienumerable

_______________________________________________________________________________________________

Se a alma ou esprito so imateriais, como eles fazem para se localizar quando o corpo est em movimento?



 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário