none
Como globalizar e manipular os valores de uma variável global RRS feed

  • Pergunta

  • Eu tenho uma aplicação no qual eu gostaria de pegar o valor de duas variáveis locais e aplica-las em variáveis globais, permitindo assim que a partir da pesquisa que o usuário realizar no sistema ele possa gerar um relatório. E pra isso gostaria de saber como faço pra criar e manipular variáveis globais.
    sexta-feira, 20 de julho de 2012 12:57

Respostas

  • Vamos entrar no conceito OOP.

    Encapsulamento:

    Encapsular um valor (variavel) ajuda na segurança do seu sistema,nas transições dos dados,com o uso de propriedades,isso evita que as variavies sejam acessadas diretamente,passando por propriedades de leitura e escrita,ou propriedades ReadOnly.

    Geralmente trabalhamos com Camadas onde existe todo um arranjo:

    Camada de acesso:
    Camada de Negocio:
    Camade de Transições de dados:
    Camada de acesso à dados:
    Camada de Visualizção:

    Vamos ver Camada de Transição de dados,ou DTO (Data Transaction Object).

    Exemplo:

    Classe Rotwailler:

    'Pacote "chachorro" onde existe varias classes diferentes porem do mesmo genero,isso ajuda na organização do projeto.
    Namespace Cachorro
        Public Class Rotwailler
            'Atributos da raça Rotwailler
            Dim nome As String
            Dim idade As Integer
            Dim sexo As Char
    
            'propriedades
            'Leitura e escrita:
            Public Property pr_nome() As String
                Get
                    'Protegendo a variavel,caso ela seja requisitada,é retornado apenas o valor dela
                    Return nome
                End Get
                Set(ByVal value As String)
                    'recebe o valor e guarda na variavel nome
                    nome = value
                End Set
            End Property
    
            'apenas leitura,nao tera como inserir os dados nessa propriedade.
            Public ReadOnly Property pr_idade() As Integer
                Get
                    'recebe o valor da variavel idade
                    Return idade
                End Get
            End Property
    
            'apenas escrita,nao tem como recuperar dados da variavel
            Public WriteOnly Property pr_sexo() As Char
                Set(ByVal value As Char)
                    sexo = value
                End Set
            End Property
        End Class
    End Namespace

    Para acessar este pacote,contendo varias classes no projeto,é preciso fazer um IMPORT:

    Imports WindowsApplication1.Cachorro

    Depois só acessar as propriedades.
    Tentando gravar os dados em uma propriedade somente leitura é gerado um erro:

    Quando voce for passar as informaçoes para outro form,ou outra classe,voce precisa passar o OBJETO detentora desta variavel,e nao somente a variavel,veja:

    'Instancio a classe
    Dim _rot As New Rotwailler
    'Seto o valor na propriedade pr_nome,e pr_nome se encarrega de setar na variavel
     _rot.pr_nome = "Lara"
    'Instancio o form2 onde existe um construtor,percebe-se que eu nao passo o valor direto,e sim o objeto contendo este valor
    Dim frm_2 As New Form2(_rot)
    'chamo o form2
     frm_2.Show()

    Form2:

    Imports WindowsApplication1.Cachorro
    
    Public Class Form2
        Sub New(ByVal _dog As Rotwailler)
            InitializeComponent()
            Me.Text = _dog.pr_nome
        End Sub
    End Class

    Resultado:


    Microsoft Technology Associate (MTA)

    sábado, 21 de julho de 2012 15:20

Todas as Respostas

  • Sua aplicação é webforms ou windownforms ?

    Junior

    sexta-feira, 20 de julho de 2012 13:03
  • Vamos entrar no conceito OOP.

    Encapsulamento:

    Encapsular um valor (variavel) ajuda na segurança do seu sistema,nas transições dos dados,com o uso de propriedades,isso evita que as variavies sejam acessadas diretamente,passando por propriedades de leitura e escrita,ou propriedades ReadOnly.

    Geralmente trabalhamos com Camadas onde existe todo um arranjo:

    Camada de acesso:
    Camada de Negocio:
    Camade de Transições de dados:
    Camada de acesso à dados:
    Camada de Visualizção:

    Vamos ver Camada de Transição de dados,ou DTO (Data Transaction Object).

    Exemplo:

    Classe Rotwailler:

    'Pacote "chachorro" onde existe varias classes diferentes porem do mesmo genero,isso ajuda na organização do projeto.
    Namespace Cachorro
        Public Class Rotwailler
            'Atributos da raça Rotwailler
            Dim nome As String
            Dim idade As Integer
            Dim sexo As Char
    
            'propriedades
            'Leitura e escrita:
            Public Property pr_nome() As String
                Get
                    'Protegendo a variavel,caso ela seja requisitada,é retornado apenas o valor dela
                    Return nome
                End Get
                Set(ByVal value As String)
                    'recebe o valor e guarda na variavel nome
                    nome = value
                End Set
            End Property
    
            'apenas leitura,nao tera como inserir os dados nessa propriedade.
            Public ReadOnly Property pr_idade() As Integer
                Get
                    'recebe o valor da variavel idade
                    Return idade
                End Get
            End Property
    
            'apenas escrita,nao tem como recuperar dados da variavel
            Public WriteOnly Property pr_sexo() As Char
                Set(ByVal value As Char)
                    sexo = value
                End Set
            End Property
        End Class
    End Namespace

    Para acessar este pacote,contendo varias classes no projeto,é preciso fazer um IMPORT:

    Imports WindowsApplication1.Cachorro

    Depois só acessar as propriedades.
    Tentando gravar os dados em uma propriedade somente leitura é gerado um erro:

    Quando voce for passar as informaçoes para outro form,ou outra classe,voce precisa passar o OBJETO detentora desta variavel,e nao somente a variavel,veja:

    'Instancio a classe
    Dim _rot As New Rotwailler
    'Seto o valor na propriedade pr_nome,e pr_nome se encarrega de setar na variavel
     _rot.pr_nome = "Lara"
    'Instancio o form2 onde existe um construtor,percebe-se que eu nao passo o valor direto,e sim o objeto contendo este valor
    Dim frm_2 As New Form2(_rot)
    'chamo o form2
     frm_2.Show()

    Form2:

    Imports WindowsApplication1.Cachorro
    
    Public Class Form2
        Sub New(ByVal _dog As Rotwailler)
            InitializeComponent()
            Me.Text = _dog.pr_nome
        End Sub
    End Class

    Resultado:


    Microsoft Technology Associate (MTA)

    sábado, 21 de julho de 2012 15:20