Array
(
)

Duas funções um Botão

Teclesoft
   - 13 ago 2007

Bom dia Pessoal, eu tenho um sério problema e não sei como resolver.
Eu fiz uma classe com duas funções que são chamadas via botão de comando.
Só que eu fiz cada botão chamar uma função para testar se tudo estivesse OK.. cada função funciona perfeitamente com o seu botão.. Mas o que eu preciso agora era que as duas fossem executadas da mesma forma que são hoje em seus botões só que juntas num único botão.
Como fazer isso? Me falaram em fazer métodos..
metodo1()
metodo2()..
Mas nem sei como começar.. Como colocar os códigos dentro disso tudo..
Será que alguém pode me ajudar a montar esse código?
Segue abaixo minha classse/funções e o código de cada botão que chama as funções.

#Código

Public Class CalcPlanilha

´-----Primeira função de validar Data de Nascimento
Public Function VerificarNascimentos(Optional ByVal Linha As Integer = 3, _
                                         Optional ByVal Coluna As Integer = 6, _
                                         Optional ByVal ApagarErros As Boolean = False) As Boolean

        Dim ok As Boolean = True
        Dim tempData As DateTime
        Dim tempStr As String = ""
        Dim ii As Integer

        If ApagarErros Then Erros.Clear()

        For ii = Linha To Planilha.Lines - 1
            Try
                tempStr = Planilha.Cell(ii, Coluna) & ""
                If tempStr.Length = 8 Then
                    tempStr = tempStr.Substring(0, 2) & "/" & tempStr.Substring(2, 2) & "/" & tempStr.Substring(4, 4)
                End If
                tempData = Date.Parse(tempStr)
            Catch
                ok = False
                tempStr = "Dt.Nasc. L" & ii & ": " & tempStr
                Erros.Add(tempStr)
            End Try
        Next
        Return (ok)
    End Function

´---------------------Segunda função de validar CPF
    
Public Function DeusDeAmor(Optional ByVal Linha As Integer = 3, _
                            Optional ByVal Coluna As Integer = 4, _
                            Optional ByVal ApagarErros As Boolean = False) As Boolean
        Dim okk As Boolean = True
        Dim tempStrr As String = ""
        Dim iii As Integer
        Dim i, a, n1, n2 As Integer

        If ApagarErros Then Erros.Clear()
        For iii = Linha To Planilha.Lines - 1
            Try
                tempStrr = Planilha.Cell(iii, Coluna) & ""

                If tempStrr = "" OrElse _
     tempStrr.Trim.Length <> 11 OrElse _
     tempStrr = "11111111111" OrElse _
     tempStrr = "22222222222" OrElse _
     tempStrr = "33333333333" OrElse _
     tempStrr = "44444444444" OrElse _
     tempStrr = "55555555555" OrElse _
     tempStrr = "66666666666" OrElse _
     tempStrr = "77777777777" OrElse _
     tempStrr = "88888888888" OrElse _
     tempStrr = "99999999999" Then
                    Throw New Exception("CPF Inválido")
                End If

                If tempStrr.Length = 11 Then
                    tempStrr = tempStrr.Replace(".", "").Replace(",", "").Replace("/", "").Replace("-", "")
                    tempStrr = tempStrr.Trim

                    For a = 0 To 1
                        n1 = 0

                        For i = 1 To 9 + a
                            n1 = n1 + Val(Mid(tempStrr, i, 1)) * (11 + a - i)
                        Next

                        n2 = 11 - (n1 - (Int(n1 / 11) * 11))
                        If n2 = 10 Or n2 = 11 Then n2 = 0

                        If n2 <> Val(Mid(tempStrr, 10 + a, 1)) Then
                            Throw New Exception("CPF Inválido")
                        End If
                    Next
                End If
            Catch ex As Exception
                okk = False
                tempStrr = "Dt.CNPJ. L" & iii & ": " & tempStrr
                Erros.Add(tempStrr)
            End Try
        Next
        Return (okk)
    End Function
End Class


Agora o código que está em cada botão que chama as funções.

Código que chama a função que valida as data de nascimento.

#Código
Private Sub btVerificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btVerificar.Click
        Dim ss As String
        Dim CalcP As BL_Excel.CalcPlanilha = Nothing

        Try
            Try
                ´... no seu código ASP, aqui você informa o local da planilha
                ss = Me.OpenXLSDialog.FileName
                CalcP = New BL_Excel.CalcPlanilha(ss)

            Catch ex As Exception
                ´... deve ser outro tratamento de erro no ASP
                MsgBox("Houve um erro no acesso aos dados... Error Msg: " & ex.Message, MsgBoxStyle.Information, "Atenção...")
                Exit Sub
            End Try

            Me.VerificarTextBox.Text = String.Empty
            If CalcP.VerificarNascimentos() Then
                Me.VerificarTextBox.Text = "Leitura da coluna Nascimento... tudo 100¬"
            Else
                ss = "Leitura da Coluna Nascimento com erros..."
                For x As Integer = 0 To CalcP.Erros.Count - 1
                    ss &= Environment.NewLine & CalcP.Erros(x)
                Next
                Me.VerificarTextBox.Text = ss
                MsgBox("Houve um erro, verifique as mensagens.")
            End If

        Finally ´... garante limpesa de memória
            If CalcP IsNot Nothing Then
                CalcP.Finalize()
            End If
        End Try
    End Sub


Agora o código que está no botão que valida CPF.

#Código
Private Sub VerificarCPF_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VerificarCPF.Click
        Dim CalcPP As BL_Excel.CalcPlanilha = Nothing
        Dim sss As String
        Try
            Try
                sss = Me.OpenXLSDialog.FileName
                CalcPP = New BL_Excel.CalcPlanilha(sss)

            Catch ex As Exception
                ´... deve ser outro tratamento de erro no ASP
                MsgBox("Houve um erro no acesso aos dados... Error Msg: " & ex.Message, MsgBoxStyle.Information, "Atenção...")
                Exit Sub
            End Try

            Me.VerificarTextBox.Text = String.Empty
            If CalcPP.DeusDeAmor() Then
                Me.VerificarTextBox1.Text = "Leitura da coluna CPF... tudo 100¬"
            Else
                sss = "Leitura da Coluna CPF com erros..."
                For x As Integer = 0 To CalcPP.Erros.Count - 1
                    sss &= Environment.NewLine & CalcPP.Erros(x)
                Next
                Me.VerificarTextBox1.Text = sss
                MsgBox("Houve um erro, verifique as mensagens.")
            End If
        Finally ´... garante limpesa de memória
            If CalcPP IsNot Nothing Then
                CalcPP.Finalize()
            End If
        End Try
    End Sub


Como deixar isso apenas em um botão.. e ainda mostrar as mensagens de erro ou de acerto para o usuário.. Pois isso é de suma importância.. Pois esse projeto depois irá para a WEB e quando o usuário for fazer o UPLOAD do arquivo do excel será mostrada as mensagens para ele com êxito ou falha e deve ser mostrado o que está de errado com o arquivo para que o usuário possa arrumar e tentar novamente fazer o UPLOAD do arquivo.
Grata

Letícia.[/tagcod]

Teclesoft
   - 13 ago 2007

Resolvi pessoal.. Ficou assim..

#Código

    Private Sub ChamaDuas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ChamaDuas.Click
        Dim Class_CalcP As BL_Excel.CalcPlanilha = Nothing
        Dim Recebe_Arq As String
        Dim Recebe_Err As String
        Try

           Try
                Recebe_Arq = Me.OpenXLSDialog.FileName
                Class_CalcP = New BL_Excel.CalcPlanilha(Recebe_Arq)
            Catch ex As Exception
                MsgBox("Erro no acesso aos dados, verifique o seu arquivo XLS e tente novamente")
                Exit Sub
            End Try
           Me.VerificarTextBox.Text = String.Empty
            If Class_CalcP.DeusDeAmor() Or Class_CalcP.VerificarNascimentos() Then
                Me.VerificarTextBox.Text = "Coluna CPF e coluna Data estão corretas"
            Else
                Recebe_Err = "Leitura das colunas com erros"
                For x As Integer = 0 To Class_CalcP.Erros.Count - 1
                    Recebe_Err &= Environment.NewLine & Class_CalcP.Erros(x)
                Next
                Me.VerificarTextBox.Text = Recebe_Err
                MsgBox("Houveram erros na verificação das informações do arquivo")
            End If
        Finally

            If Class_CalcP IsNot Nothing Then
                Class_CalcP.Finalize()
            End If
        End Try
    End Sub