COMO PASSAR ESSE PARAMETRO?

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

COMO PASSAR ESSE PARAMETRO?

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#482749 - 05/07/2018 10:35:39

FERDEAD
LIMEIRA
Cadast. em:Outubro/2004


Olá!

tenho uma classe Cliente
uma classe Conta


  
Public Class Cliente
        Inherits clsTabelasBD.cliente '(tem o ID, nome, endereço, etc)

        Public Property Conta As New clsConta

end class


    Public Class clsConta
        Inherits clsTabelasBD.conta 'campos data, descrição, entrada, saída

        Public Function SaldoEM(Data As String) As Decimal
            Return ExecutarSQL("select ifnull(sum(entrada) - sum(saida),0) as saldo  from conta where datediff(data," & DataSQL(Data) & ") < 0 and idcliente = " & ????? ) '--> como eu faço aqui ?
        End Function
    End Class


Bom, agora quando eu instancio a classe cliente (ele já preenche pra mim todos os campos tudo certinho)..

dim cli as new Cliente("nome")
dim saldoanterior as decimal = cli.conta.saldoem("05/07/2018")

Agora, como eu faço para passar pro SQL da função SaldoEM o ID desse cliente que eu acabei de instanciar?




#482750 - 05/07/2018 10:57:33

GUIMORAES
ITAPETININGA
Cadast. em:Agosto/2009


  

Public Function SaldoEM(Data As String, idCliente as integer) As Decimal
            Return ExecutarSQL("select ifnull(sum(entrada) - sum(saida),0) as saldo  from conta where datediff(data," & DataSQL(Data) & ") < 0 and idcliente = " & idCliente) '--> como eu faço aqui ?
        End Function





#482751 - 05/07/2018 10:58:01

NOWLIGHTS
SUMARE
Cadast. em:Abril/2011


Última edição em 05/07/2018 11:29:14 por NOWLIGHTS

" & cli.Id & "



__________________________________
- Everyone has a chance


#482799 - 06/07/2018 10:15:50

FERDEAD
LIMEIRA
Cadast. em:Outubro/2004


Citação:
:
  

Public Function SaldoEM(Data As String, idCliente as integer) As Decimal
            Return ExecutarSQL("select ifnull(sum(entrada) - sum(saida),0) as saldo  from conta where datediff(data," & DataSQL(Data) & ") < 0 and idcliente = " & idCliente) '--> como eu faço aqui ?
        End Function



Eu já faço desta forma.. só que não queria ficar passando o ID de parâmetro da função, já que a classe "pai" tem essa informação.. eu pensei que teria algum modo de pegar a informação da classe acima..



#482800 - 06/07/2018 10:29:31

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


Membro da equipe
Me.Conta.Cliente.Id não funciona?

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#482801 - 06/07/2018 10:35:43

FERDEAD
LIMEIRA
Cadast. em:Outubro/2004


Citação:
:
Me.Conta.Cliente.Id não funciona?


não.. "conta is not a member of Cliente.Conta"




Resposta escolhida #482813 - 06/07/2018 18:21:51

JABA
CABO FRIO
Cadast. em:Agosto/2005


Evite ficar amarrando suas classes com herança desnecessária, isso causa muita indireção e amarração no seu código. Outra dica interessante é parar de colocar prefixos nas classes, como clsCliente, clsConta, etc..., em vez disso, coloque Cliente, Conta, etc...

Toda conta necessariamente possui um dono, e você vai ter que indicar isso pra ela. Para resolver isso você poderia criar um atributo privado de Cliente dentro dela e receber a instância desse cliente via construtor. Ficaria mais ou menos assim:

Public Class clsConta
        Inherits clsTabelasBD.conta 'campos data, descrição, entrada, saída
        
        Private cli as Cliente

        Public Sub New(cliente as Cliente)
             cli = cliente
        End Sub

        Public Function SaldoEM(Data As String) As Decimal
            Return ExecutarSQL("select ifnull(sum(entrada) - sum(saida),0) as saldo  from conta where datediff(data," & DataSQL(Data) & ") < 0 and idcliente = " & cli.ID )
        End Function
    End Class


_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#482815 - 06/07/2018 18:25:58

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


Membro da equipe
Eu acho que quando se quer usar assim estruturalmente, melhor partir para um ORM já maduro, como o Entity Framework ou NHibernate

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#482817 - 06/07/2018 18:29:27

FERDEAD
LIMEIRA
Cadast. em:Outubro/2004


Obrigado pelas Dicas Jaba, gostei dessa forma que você exemplificou..

agradeço a todos que tentaram ajudar!




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


Tópico encerrado, respostas não sao permitidas
Encerrado por FERDEAD em 06/07/2018 18:29:41