Option Strict Off
Option Explicit On

Imports System.Configuration
Imports fatd_faturamento.BLL.Repositorio
Imports fatd_faturamento.ENTIDADE

Friend Class frmLocalizadorGeral
    Inherits System.Windows.Forms.Form
    Private mItem As System.Windows.Forms.ListViewItem ' Objeto que controla a linha do listview
    Dim vCodigo As String
    Dim vCodigo_1 As String
    Dim vCodigo_2 As String
    Dim vCodigo_3 As String
    Dim vCodigo_4 As String
    Dim vCampo As String
    Dim vTabela As String
    Dim vOrdena As String
    Dim i As Integer
    Dim vPassos As Short
    Dim vtQtdKey As Short
    Dim vColKey(10) As Short


#Region "Propriedades"

    Private Sub frmLocalizadorGeral_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load

        Try

            vPassos = 1
            LigDesControlesFiltros()

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub lvwCampos_ColumnClick(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.ColumnClickEventArgs) Handles lvwCampos.ColumnClick

        Dim ColumnHeader As System.Windows.Forms.ColumnHeader = lvwCampos.Columns(eventArgs.Column)

        Try
            lvwCampos.ListViewItemSorter = New ListViewItemComparer(eventArgs.Column)
            lvwCampos.Sort()
        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub lvwCampos_DoubleClick(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles lvwCampos.DoubleClick

        Try

            If lvwCampos.Items.Count > 0 Then

                lEditCampos(lvwCampos.FocusedItem.Name.Trim())

                AdionaFiltro(" " & vCampo)

                Me.cmdPesquisar.Enabled = False

            End If

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub lvwDados_ColumnClick(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.ColumnClickEventArgs) Handles lvwDados.ColumnClick

        Dim ColumnHeader As System.Windows.Forms.ColumnHeader = lvwDados.Columns(eventArgs.Column)

        Try
            lvwDados.ListViewItemSorter = New ListViewItemComparer(eventArgs.Column)
            lvwDados.Sort()
        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub lvwDados_DoubleClick(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles lvwDados.DoubleClick

        Try

            If lvwDados.Items.Count > 0 Then


                Select Case vtQtdKey
                    Case Is = 1
                        lEditDados(lvwDados.FocusedItem.Text.Trim())
                    Case Is = 2
                        lEditDados(lvwDados.FocusedItem.Text.Trim(), lvwDados.FocusedItem.SubItems(1).Text)
                    Case Is = 3
                        lEditDados(lvwDados.FocusedItem.Text.Trim(), lvwDados.FocusedItem.SubItems(1).Text, lvwDados.FocusedItem.SubItems(2).Text)
                    Case Is = 4
                        lEditDados(lvwDados.FocusedItem.Text.Trim(), lvwDados.FocusedItem.SubItems(1).Text, lvwDados.FocusedItem.SubItems(2).Text, lvwDados.FocusedItem.SubItems(3).Text)
                End Select

            End If

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub cmdCancelar_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdCancelar.Click

        Try

            lClose()

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub cmdDiferente_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdDiferente.Click

        Try
            AdionaFiltro(" " & Me.cmdDiferente.Text)
        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub cmdE_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdE.Click

        Try
            AdionaFiltro(" " & Me.cmdE.Text)
        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub cmdEntre_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdEntre.Click

        Try
            AdionaFiltro(" " & Me.cmdEntre.Text)
        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub cmdIgual_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdIgual.Click

        Try
            AdionaFiltro(" " & Me.cmdIgual.Text)
        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub cmdLike_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdLike.Click

        Try
            AdionaFiltro(" LIKE ")
        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub cmdLimpar_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdLimpar.Click

        Try
            lClear()
        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try
    End Sub

    Private Sub cmdMaior_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdMaior.Click

        Try
            AdionaFiltro(" " & Me.cmdMaior.Text)
        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub cmdMaiorIgual_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdMaiorIgual.Click

        Try
            AdionaFiltro(" " & Me.cmdMaiorIgual.Text)
        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub cmdMenor_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdMenor.Click

        Try
            AdionaFiltro(" " & Me.cmdMenor.Text)
        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub cmdMenorIgual_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdMenorIgual.Click

        Try
            AdionaFiltro(" " & Me.cmdMenorIgual.Text)
        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub cmdOu_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdOu.Click

        Try
            AdionaFiltro(" " & Me.cmdOu.Text)
        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub cmdParAbre_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdParAbre.Click

        Try
            Me.txtFiltro.Text = Me.txtFiltro.Text & Me.cmdParAbre.Text
        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub cmdParFecha_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdParFecha.Click

        Try
            Me.txtFiltro.Text = Me.txtFiltro.Text & Me.cmdParFecha.Text
        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub cmdValor_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdValor.Click

        Try

            If Microsoft.VisualBasic.Right(Trim(Me.txtFiltro.Text), 4) = "LIKE" Then
                AdionaFiltro(" '%" & Me.txtValor.Text & "%' ")
            Else
                AdionaFiltro(" " & IIf(IsNumeric(Me.txtValor.Text), Me.txtValor.Text, "'" & Me.txtValor.Text & "' "))
            End If

            Me.cmdPesquisar.Enabled = True

            Me.cmdPesquisar.Focus()

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub cmdPesquisar_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdPesquisar.Click

        Dim vCount As Short
        Dim vFiltro As String
        Dim vSQL As String

        Dim vlist

        Dim dt As DataTable

        Dim objLocalizadorGeral As New entidadeLocalizadorGeral
        Dim repositorioLocalizadorGeral As New repositorioLocalizadorGeral

        Try
            vCount = 0


            If vTabela.ToUpper() = "USUARIOS" Then
                objLocalizadorGeral.TABLE_SCHEMA = ConfigurationManager.AppSettings("table_nss")
                objLocalizadorGeral.TABLE_NAME = vTabela
            ElseIf vTabela.ToUpper() = "PERMISSAO_MENU" Then
                objLocalizadorGeral.TABLE_SCHEMA = ConfigurationManager.AppSettings("table_nss")
                objLocalizadorGeral.TABLE_NAME = vTabela
            Else
                objLocalizadorGeral.TABLE_SCHEMA = vMySqlDataBase
                objLocalizadorGeral.TABLE_NAME = vTabela
            End If

            vlist = repositorioLocalizadorGeral.Select(objLocalizadorGeral)

            For Each objLocalizadorGeralFor As entidadeLocalizadorGeral In vlist

                vCount = vCount + 1

                If objLocalizadorGeralFor.COLUMN_KEY = "PRI" Or objLocalizadorGeralFor.COLUMN_NAME = "id" Then
                    vtQtdKey = vCount
                    vColKey(vCount - 1) = Convert.ToInt32(vCount)
                End If

            Next


            Me.lblInformacao.Text = "Aguarde Pesquisando..."
            Me.lblInformacao.Refresh()

            vCount = 0

            vFiltro = String.Empty

            If Len(Me.txtFiltro.Text) > 0 Then
                vFiltro = Trim(Me.txtFiltro.Text)
                vFiltro = Replace(vFiltro, " E ", " AND ")
                vFiltro = Replace(vFiltro, " OU ", " OR ")
                'vFiltro = Replace(vFiltro, " ^ ", " LIKE ")
                vFiltro = Replace(vFiltro, " [ ] ", " BETWEEN ")
            End If

            vSQL = lQueryDados(vFiltro)

            objLocalizadorGeral.QUERY_NAME = vSQL
            objLocalizadorGeral.TABLE_NAME = vTabela

            dt = repositorioLocalizadorGeral.Select_1(objLocalizadorGeral)

            lvwDados.BeginUpdate()

            If lvwDados.Columns.Count <> dt.Columns.Count Then
                lvwDados.Columns.Clear()

                For Each column As DataColumn In dt.Columns
                    lvwDados.Columns.Add(column.ColumnName)
                Next
            End If

            lvwDados.Items.Clear()

            For Each row As DataRow In dt.Rows
                Dim item As ListViewItem = New ListViewItem(row(0).ToString())

                For i As Integer = 1 To dt.Columns.Count - 1
                    item.SubItems.Add(row(i).ToString())
                Next

                lvwDados.Items.Add(item)
                vCount = vCount + 1
            Next

            lvwDados.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent)
            lvwDados.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize)
            lvwDados.EndUpdate()

            Me.lblInformacao.Text = " Encontrado: " & vCount & " registros."

        Catch ex As Exception
            Exit Sub
        End Try


    End Sub

    Private Sub txtValor_Enter(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txtValor.Enter

        Try

            With Me.txtValor
                .SelectionStart = 0
                .SelectionLength = Convert.ToInt32(Len(.Text))
            End With

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub txtValor_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txtValor.KeyPress

        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)

        Try

            If KeyAscii = System.Windows.Forms.Keys.Return Then
                cmdValor_Click(cmdValor, New System.EventArgs())
            End If

            eventArgs.KeyChar = Chr(KeyAscii)

            If KeyAscii = 0 Then
                eventArgs.Handled = True
            End If

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub frmLocalizadorGeral_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress

        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)

        Try

            If Trim(Chr(KeyAscii)) = "=" Then
                If Me.cmdIgual.Enabled Then Call cmdIgual_Click(cmdIgual, New System.EventArgs())
            ElseIf Trim(Chr(KeyAscii)) = ">" Then
                If Me.cmdMaior.Enabled Then Call cmdMaior_Click(cmdMaior, New System.EventArgs())
            ElseIf Trim(Chr(KeyAscii)) = "<" Then
                If Me.cmdMenor.Enabled Then Call cmdMenor_Click(cmdMenor, New System.EventArgs())
            ElseIf Trim(Chr(KeyAscii)) = "[" Or Trim(Chr(KeyAscii)) = "]" Then
                If Me.cmdEntre.Enabled Then cmdEntre_Click(cmdEntre, New System.EventArgs())
            ElseIf Trim(Chr(KeyAscii)) = "*" Then
                If Me.cmdLike.Enabled Then cmdLike_Click(cmdLike, New System.EventArgs())
            ElseIf KeyAscii = System.Windows.Forms.Keys.Escape Then
                If Me.cmdCancelar.Enabled Then cmdCancelar_Click(cmdCancelar, New System.EventArgs())
            End If

            eventArgs.KeyChar = Chr(KeyAscii)

            If KeyAscii = 0 Then
                eventArgs.Handled = True
            End If

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub


#End Region

#Region "Métodos"

    Private Sub lAtualizaListCampos()

        Dim objLocalizadorGeral As New entidadeLocalizadorGeral

        Try

            If vTabela.ToUpper() = "USUARIOS" Then
                objLocalizadorGeral.TABLE_SCHEMA = ConfigurationManager.AppSettings("table_nss")
                objLocalizadorGeral.TABLE_NAME = vTabela
            ElseIf vTabela.ToUpper() = "PERMISSAO_MENU" Then
                objLocalizadorGeral.TABLE_SCHEMA = ConfigurationManager.AppSettings("table_nss")
                objLocalizadorGeral.TABLE_NAME = vTabela
            Else
                objLocalizadorGeral.TABLE_SCHEMA = vMySqlDataBase
                objLocalizadorGeral.TABLE_NAME = vTabela
            End If

            CarregarGridCampos(objLocalizadorGeral)

            If lvwCampos.Items.Count <> 0 Then

                lvwCampos.Focus()
                lvwCampos.Items.Item(0).Selected = True
                lvwCampos.FocusedItem = lvwCampos.Items.Item(0)
                lvwCampos.Items.Item(0).EnsureVisible()

            End If

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Public Sub PrepararListViewCampos()

        Try

            lvwCampos.Items.Clear()
            lvwCampos.Columns.Clear()
            lvwCampos.Columns.Add(String.Empty, "Campo", 50)
            lvwCampos.Columns.Add(String.Empty, "Descrição", 50)

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Public Sub CarregarGridCampos(ByRef objLocalizadorGeral As entidadeLocalizadorGeral)

        Try
            PrepararListViewCampos()
            i = 0
            For Each objLocalizadorGeralFor As entidadeLocalizadorGeral In New repositorioLocalizadorGeral().Select(objLocalizadorGeral)
                AddListItemCampos(mItem, objLocalizadorGeralFor)
            Next
        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Private Sub AddListItemCampos(ByRef xItem As System.Windows.Forms.ListViewItem, ByRef objLocalizadorGeral As entidadeLocalizadorGeral)

        Try

            i = i + 1

            xItem = lvwCampos.Items.Add(i.ToString(), objLocalizadorGeral.COLUMN_NAME.ToString(), String.Empty)

            If (String.IsNullOrEmpty(objLocalizadorGeral.COLUMN_NAME)) Then
                xItem.SubItems.Add(Space(1))
            Else
                xItem.SubItems.Add(objLocalizadorGeral.COLUMN_NAME)
            End If

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Private Sub PreencherValoresListCampos(ByRef Items As String)

        vCodigo = Items

        Dim Item As ListViewItem



        Try

            For Each Item In lvwCampos.Items

                If Item.Name = vCodigo Then

                    ''Pega a Coluna 0
                    'vCodOld = IIf(String.IsNullOrEmpty((Item.Text)), " ", (Item.Text))

                    'Para pegar os SubItems e so fazer o seguinte
                    vCampo = IIf(String.IsNullOrEmpty((Item.SubItems(1).Text)), " ", (Item.SubItems(1).Text))


                End If


            Next

            Item = Nothing


        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Private Sub lEditCampos(ByRef Item As String)

        vCodigo = Item

        Try

            PreencherValoresListCampos(vCodigo)

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Private Sub PreencherValoresListDados(ByRef Items_1 As String, Optional ByVal Items_2 As String = "", Optional ByVal Items_3 As String = "", Optional ByVal Items_4 As String = "")

        vCodigo_1 = Items_1
        vCodigo_2 = Items_2
        vCodigo_3 = Items_3
        vCodigo_4 = Items_4

        Dim Item As ListViewItem

        Dim vNumber_1 As Integer
        Dim vNumber_2 As Integer
        Dim vNumber_3 As Integer
        Dim vNumber_4 As Integer

        Try

            vNumber_1 = vColKey(0) - 1
            vNumber_2 = vColKey(1) - 1
            vNumber_3 = vColKey(2) - 1
            vNumber_4 = vColKey(3) - 1

            Select Case vtQtdKey
                Case Is = 1

                    For Each Item In lvwDados.Items

                        If Item.Text = vCodigo_1 Then

                            vfrmOld.Enabled = True

                            vfrmOld.SetaCodigo(vTabela, (Item.SubItems(vNumber_1).Text))

                            Me.Close()

                            vfrmOld.BringToFront()

                        End If

                    Next


                Case Is = 2

                    For Each Item In lvwDados.Items

                        If Item.Text = vCodigo_1 And Item.SubItems(1).Text = vCodigo_2 Then

                            vfrmOld.Enabled = True

                            vfrmOld.SetaCodigo(vTabela, (Item.SubItems(vNumber_1).Text), (Item.SubItems(vNumber_2).Text))

                            Me.Close()

                            vfrmOld.BringToFront()

                        End If

                    Next

                Case Is = 3

                    For Each Item In lvwDados.Items

                        If Item.Text = vCodigo_1 And Item.SubItems(1).Text = vCodigo_2 And Item.SubItems(2).Text = vCodigo_3 Then

                            vfrmOld.Enabled = True

                            vfrmOld.SetaCodigo(vTabela, (Item.SubItems(vNumber_1).Text), (Item.SubItems(vNumber_2).Text), (Item.SubItems(vNumber_3).Text))

                            Me.Close()

                            vfrmOld.BringToFront()

                        End If

                    Next

                Case Is = 4

                    For Each Item In lvwDados.Items

                        If Item.Text = vCodigo_1 And Item.SubItems(1).Text = vCodigo_2 And Item.SubItems(2).Text = vCodigo_3 And Item.SubItems(3).Text = vCodigo_4 Then

                            vfrmOld.Enabled = True

                            vfrmOld.SetaCodigo(vTabela, (Item.SubItems(vNumber_1).Text), (Item.SubItems(vNumber_2).Text), (Item.SubItems(vNumber_3).Text), (Item.SubItems(vNumber_4).Text))

                            Me.Close()

                            vfrmOld.BringToFront()

                        End If

                    Next

            End Select


            Item = Nothing

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Private Sub lEditDados(ByRef Item_1 As String, Optional ByVal Item_2 As String = "", Optional ByVal Item_3 As String = "", Optional ByVal Item_4 As String = "")

        vCodigo_1 = Item_1
        vCodigo_2 = Item_2
        vCodigo_3 = Item_3
        vCodigo_4 = Item_4

        Try

            Select Case vtQtdKey
                Case Is = 1
                    PreencherValoresListDados(vCodigo_1)
                Case Is = 2
                    PreencherValoresListDados(vCodigo_1, vCodigo_2)
                Case Is = 3
                    PreencherValoresListDados(vCodigo_1, vCodigo_2, vCodigo_3)
                Case Is = 4
                    PreencherValoresListDados(vCodigo_1, vCodigo_2, vCodigo_3, vCodigo_4)
            End Select

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Private Function lQueryDados(ByVal pFiltro As String) As String

        Dim vSQL As String

        Dim vlist

        Dim objLocalizadorGeral As New entidadeLocalizadorGeral
        Dim repositorioLocalizadorGeral As New repositorioLocalizadorGeral

        Try

            vSQL = String.Empty
            vSQL = vSQL & "SELECT "

            If vTabela.ToUpper() = "USUARIOS" Then
                objLocalizadorGeral.TABLE_SCHEMA = ConfigurationManager.AppSettings("table_nss")
                objLocalizadorGeral.TABLE_NAME = vTabela
            ElseIf vTabela.ToUpper() = "PERMISSAO_MENU" Then
                objLocalizadorGeral.TABLE_SCHEMA = ConfigurationManager.AppSettings("table_nss")
                objLocalizadorGeral.TABLE_NAME = vTabela
            Else
                objLocalizadorGeral.TABLE_SCHEMA = vMySqlDataBase
                objLocalizadorGeral.TABLE_NAME = vTabela
            End If

            vlist = repositorioLocalizadorGeral.Select(objLocalizadorGeral)

            For Each objLocalizadorGeralFor As entidadeLocalizadorGeral In vlist
                vSQL = vSQL & "`" & vTabela & "`.`" & objLocalizadorGeralFor.COLUMN_NAME & "`, "
            Next

            vSQL = Microsoft.VisualBasic.Left(vSQL, Len(vSQL) - 2) & vbCrLf
            vSQL = vSQL & "  FROM `" & vTabela & "` " & vbCrLf
            If Len(pFiltro) > 0 Then
                vSQL = vSQL & " WHERE " & pFiltro
            End If
            If vOrdena <> "" Then
                vSQL = vSQL & vOrdena
            Else
                vSQL = vSQL & " ORDER BY 1 ASC "
            End If

            Return vSQL

        Catch ex As Exception
            Exit Function
        End Try

    End Function

    Private Sub LigDesControlesFiltros()

        Try

            'Objeto dos campos
            Me.lvwCampos.Enabled = (vPassos = 1)
            'Ação referenciado
            Me.cmdMenor.Enabled = (vPassos = 2)
            Me.cmdMaior.Enabled = (vPassos = 2)
            Me.cmdMenorIgual.Enabled = (vPassos = 2)
            Me.cmdMaiorIgual.Enabled = (vPassos = 2)
            Me.cmdIgual.Enabled = (vPassos = 2)
            Me.cmdDiferente.Enabled = (vPassos = 2)
            Me.cmdEntre.Enabled = (vPassos = 2)
            Me.cmdLike.Enabled = (vPassos = 2)
            'Valor a referenciar
            Me.txtValor.Enabled = (vPassos = 3)
            Me.cmdValor.Enabled = (vPassos = 3)
            'Codição
            Me.cmdE.Enabled = (vPassos = 4)
            Me.cmdOu.Enabled = (vPassos = 4)
            If Me.txtValor.Enabled And Me.txtValor.Visible Then
                Me.txtValor.Focus()
            ElseIf Me.lvwCampos.Enabled And Me.lvwCampos.Visible Then
                Me.lvwCampos.Focus()
            ElseIf Me.cmdIgual.Enabled And Me.cmdIgual.Visible Then
                Me.cmdIgual.Focus()
            End If

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Public Sub SetParametros(ByVal astrTabela As String, ByVal astrNomeTitulo As String, ByVal afrmQuemChama As System.Windows.Forms.Form, Optional ByVal astrOrdena As String = "")

        Try

            vTabela = astrTabela
            Me.Text = "Pesquisar: " & astrNomeTitulo
            vfrmOld = afrmQuemChama
            vfrmOld.Enabled = False
            vOrdena = astrOrdena
            CarregaTabela()

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Private Sub AdionaFiltro(ByVal astrAuxiliar As String)

        Dim lstrFiltro As String

        Try

            lstrFiltro = String.Empty
            lstrFiltro = Trim(Me.txtFiltro.Text)
            lstrFiltro = Trim(lstrFiltro) & astrAuxiliar
            Me.txtFiltro.Text = lstrFiltro
            vPassos = vPassos + 1
            If vPassos > 4 Then vPassos = 1
            Call LigDesControlesFiltros()

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Private Sub CarregaTabela()

        Try
            lAtualizaListCampos()
        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Private Sub lClear()

        Try

            Me.txtFiltro.Text = String.Empty
            vPassos = 1
            LigDesControlesFiltros()
            Me.cmdPesquisar.Enabled = True

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Private Sub lClose()

        Try
            vfrmOld.Enabled = True
            Me.Close()
            vfrmOld.BringToFront()
        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

#End Region


End Class