VERSION 5.00
Object = "{CDE57A40-8B86-11D0-B3C6-00A0C90AEA82}#1.0#0"; "MSDATGRD.OCX"
Begin VB.Form FBusquedasMa 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Búsqueda"
   ClientHeight    =   6120
   ClientLeft      =   2940
   ClientTop       =   2235
   ClientWidth     =   7980
   Icon            =   "FBusquedasMaestros.frx":0000
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   6120
   ScaleWidth      =   7980
   StartUpPosition =   2  'CenterScreen
   Begin VB.Frame Frame1 
      Caption         =   "Datos"
      Height          =   1935
      Left            =   3810
      TabIndex        =   8
      Top             =   120
      Width           =   4095
      Begin VB.OptionButton Option1 
         Caption         =   "Que empieze con"
         Height          =   255
         Left            =   240
         TabIndex        =   10
         Top             =   360
         Value           =   -1  'True
         Width           =   2295
      End
      Begin VB.TextBox TxtDatoBuscado 
         Height          =   285
         Left            =   480
         TabIndex        =   9
         Top             =   680
         Width           =   3255
      End
      Begin VB.TextBox txtContiene 
         Height          =   285
         Left            =   480
         TabIndex        =   2
         Top             =   1440
         Width           =   3255
      End
      Begin VB.TextBox txtEmpieza 
         Height          =   285
         Left            =   480
         TabIndex        =   4
         Top             =   2280
         Width           =   3255
      End
      Begin VB.OptionButton optContga 
         Caption         =   "Que Contenga"
         Height          =   255
         Left            =   240
         TabIndex        =   5
         Top             =   1200
         Width           =   1575
      End
      Begin VB.OptionButton optEmpza 
         Caption         =   "Que empiece con"
         Height          =   255
         Left            =   240
         TabIndex        =   3
         Top             =   2040
         Width           =   1575
      End
   End
   Begin VB.ComboBox CmbCriterioBusqueda 
      Height          =   315
      ItemData        =   "FBusquedasMaestros.frx":030A
      Left            =   825
      List            =   "FBusquedasMaestros.frx":030C
      Style           =   2  'Dropdown List
      TabIndex        =   1
      Top             =   195
      Width           =   1815
   End
   Begin MSDataGridLib.DataGrid DBListar 
      Height          =   3855
      Left            =   90
      TabIndex        =   6
      Top             =   2115
      Width           =   7815
      _ExtentX        =   13785
      _ExtentY        =   6800
      _Version        =   393216
      BackColor       =   16777152
      HeadLines       =   1
      RowHeight       =   15
      BeginProperty HeadFont {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ColumnCount     =   2
      BeginProperty Column00 
         DataField       =   ""
         Caption         =   ""
         BeginProperty DataFormat {6D835690-900B-11D0-9484-00A0C91110ED} 
            Type            =   0
            Format          =   ""
            HaveTrueFalseNull=   0
            FirstDayOfWeek  =   0
            FirstWeekOfYear =   0
            LCID            =   10250
            SubFormatType   =   0
         EndProperty
      EndProperty
      BeginProperty Column01 
         DataField       =   ""
         Caption         =   ""
         BeginProperty DataFormat {6D835690-900B-11D0-9484-00A0C91110ED} 
            Type            =   0
            Format          =   ""
            HaveTrueFalseNull=   0
            FirstDayOfWeek  =   0
            FirstWeekOfYear =   0
            LCID            =   10250
            SubFormatType   =   0
         EndProperty
      EndProperty
      SplitCount      =   1
      BeginProperty Split0 
         BeginProperty Column00 
         EndProperty
         BeginProperty Column01 
         EndProperty
      EndProperty
   End
   Begin VB.Label lblRegistro 
      Alignment       =   1  'Right Justify
      AutoSize        =   -1  'True
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   240
      Left            =   6720
      TabIndex        =   7
      Top             =   5160
      Width           =   75
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "Criterio"
      Height          =   195
      Left            =   150
      TabIndex        =   0
      Top             =   255
      Width           =   480
   End
End
Attribute VB_Name = "FBusquedasMa"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'Autor : Enrique Franco
'Fecha : 09/09/2002
'GObtenerRegistros : Permite Recibir un Recordset desde un formulario
'                    para realizar búsquedas
'RetornarValores   : Almacena en el Formulario Activo un Marcador del Registro Buscado y
'                    el valor del campo Principal
'Observaciones     : Se tiene que declarar las siguientes variables en la
'                    sección Publica del formulario :
'                    Public GrecibeUbicacion As BookmarkEnum
'                    Public GrecibeColumnaID As String
'                    Public GrecibeColumnaOpcional As Variant
'Modificación 10/09/2002 :
'                    Columnas del Grid coinciden con las columnas
'                    de la Matriz recibida
'Modificación 12/09/2002 :
'                    Se aumento el retorno del valor de una columna
'                    Opcional: GrecibeColumnaOpcional

'  FBusquedasMa.GObtenerRegistros MrslistadodeUmedida, LArrayBusqueda, 2, 2, 7800, , 3400, 3800
'  FBusquedasMa.Show vbModal

Private MrsobtieneRegistros As ADODB.Recordset
Private MstrCodigo As String
Private Mstrdescripcion As String
Private MArrayDeBusqueda As Variant
Private MintNumerodeFilas As Integer
Private MintItemInicio As Integer
Private MstrOrden As String
Private MVarDevuelveColumna As Variant
Private Sub ActualizarGrid()
   For i = 1 To MintNumerodeFilas
       DBListar.Columns(i - 1).Width = MArrayDeBusqueda(i, 3)
       DBListar.Columns(i - 1).Caption = MArrayDeBusqueda(i, 2)
   Next
   If MintNumerodeFilas < MrsobtieneRegistros.Fields.Count Then
    For i = MintNumerodeFilas To MrsobtieneRegistros.Fields.Count - 1
       DBListar.Columns(i).Visible = False
       DBListar.Columns(i).AllowSizing = False
    Next
   End If
End Sub

'Funcionalidad : Almacena en el Formulario Activo un Marcador del Registro Buscado y
'                el valor del campo Principal

Private Sub RetornarValores()

'LA COLUMNA 1 ES LA QUE CONTIENE EL NOMBRE DEL CAMPO (BASE DE DATOS) A MOSTRAR

    With IIf(CliPro = 0, MDIFMaestros.ActiveForm, FClienteProducto)
        If Not MrsobtieneRegistros.EOF And Not MrsobtieneRegistros.BOF Then
           .GrecibeUbicacion = MrsobtieneRegistros.Bookmark
           .GrecibeColumnaID = MrsobtieneRegistros(MArrayDeBusqueda(1, 1))
           If MVarDevuelveColumna <> -1 Then
              .GrecibeColumnaOpcional = MrsobtieneRegistros(MArrayDeBusqueda(MVarDevuelveColumna, 1))
           Else
              .GrecibeColumnaOpcional = MrsobtieneRegistros(MArrayDeBusqueda(2, 1))
           End If
           If UBound(MArrayDeBusqueda) >= 3 Then
             .GrecibeColumnaOpcional2 = MrsobtieneRegistros(MArrayDeBusqueda(3, 1))
           End If
           If UBound(MArrayDeBusqueda) >= 4 Then   ' Si el Arreglo tiene 4 o mas columnas
               .GrecibeColumnaOpcional3 = MrsobtieneRegistros(MArrayDeBusqueda(4, 1))
           End If
        End If
    End With
    CliPro = 0
End Sub

Private Sub chkContiene_Click()
    If chkContiene.Value = 1 Then
        txtContiene.SetFocus
    End If
End Sub

Private Sub chkEmpieza_Click()
    If chkEmpieza.Value = 1 Then
        txtEmpieza.SetFocus
    End If
End Sub

Private Sub chkTermina_Click()
    If chkTermina.Value = 1 Then
        txtTermina.SetFocus
    End If
End Sub

Private Sub DBListar_DblClick()
   RetornarValores
   Unload Me
End Sub

Private Sub DBListar_HeadClick(ByVal ColIndex As Integer)
  MrsobtieneRegistros.Sort = (MArrayDeBusqueda(ColIndex + 1, 1)) & " " & MstrOrden
 
  If MstrOrden = "ASC" Then
     MstrOrden = "DESC"
  Else
     MstrOrden = "ASC"
  End If
End Sub

Private Sub DBListar_KeyUp(KeyCode As Integer, Shift As Integer)
   Select Case KeyCode
     Case 13
            If optEmpza.Value = True Then
               txtEmpieza.SetFocus
            End If
            If optContga.Value = True Then
               txtContiene.SetFocus
            End If
            RetornarValores
            Unload Me
     Case 27
            Unload Me
    End Select
End Sub

Private Sub Form_Load()
  MstrOrden = "ASC"
  For i = 1 To MintNumerodeFilas
      CmbCriterioBusqueda.AddItem MArrayDeBusqueda(i, 2)
  Next
  CmbCriterioBusqueda.ListIndex = MintItemInicio - 1 'mi mercado(seleccion de busqueda por codigo)
  'Me.Left = (Screen.Width - Me.Width) / 2
  
  DBListar_HeadClick (1)
 
'  Me.Top = (Screen.Height - Me.Height) / 2
'  Me.Left = (Screen.Width - Me.Width) / 2
End Sub

'Funcionalidad : Permite Recibir un Recordset desde un formulario
'para realizar búsquedas
'Argumentos de Entrada : 1)IRS (Recorset con conjuntos de Registros donde
'                          Se va efectuar la Búsqueda)
'                        2)IArrayBusqueda (Arreglo que tiene como columnas :
'                          Columna 1 : Nombre del campo en la Tabla o Vista
'                          Columna 2 : Nombre que se quiere Mostrar en el Grid
'                          Columna 3 : Ancho de la Columna
'                        3)IintFila : Número de Filas del Arreglo
'                        4)IintColumnaInicio : Columna por la que se inicia la Búsqueda

Public Sub GObtenerRegistros(ByVal IRS As ADODB.Recordset, _
                             IArrayBusqueda As Variant, IintFila As Integer, IintColumnaInicio As Integer, _
                             Optional IintAnchoForm As Integer = 7530, _
                             Optional IintAltoForm As Integer = 6600, _
                             Optional IintTopForm As Integer = 1905, _
                             Optional IintLeftForm As Integer = 2895, _
                             Optional IVarDevuelveColumna As Variant = -1)
                            
  Set MrsobtieneRegistros = IRS.Clone
  If Not MrsobtieneRegistros.EOF Then
     MrsobtieneRegistros.MoveFirst
  End If
  
  MArrayDeBusqueda = IArrayBusqueda
  MintNumerodeFilas = IintFila
  MintItemInicio = IintColumnaInicio
  MVarDevuelveColumna = IVarDevuelveColumna

'  PERMITE REDIMENSIONAR LA VENTANA DE BUSQUEDAS
  Me.Height = IintAltoForm
  Me.Top = IintTopForm
  Me.Left = IintLeftForm
  
'  If IintTopForm = 1905 And IintLeftForm = 2895 Then
'    Me.Top = (Screen.Height - Me.Height) / 2
'    Me.Left = (Screen.Width - Me.Width) / 2
'  Else
'    Me.Top = IintTopForm
'    Me.Left = IintLeftForm
'  End If
      
  If Not MrsobtieneRegistros.EOF And Not MrsobtieneRegistros.BOF Then
     MrsobtieneRegistros.MoveFirst
  End If
  
  Set DBListar.DataSource = MrsobtieneRegistros
      ActualizarGrid
      DBListar.Refresh
      lblRegistro.Caption = MrsobtieneRegistros.RecordCount & " registros encontrados"
End Sub

Private Sub Form_Resize()
'   DBListar.Width = Me.Width - 800
'   DBListar.Top = 840
End Sub

Private Sub Form_Unload(Cancel As Integer)
  Set MrsobtieneRegistros = Nothing
End Sub

Private Sub optContga_Click()
    
    'txtContiene.SetFocus
    txtEmpieza.Text = Empty
    txtContiene.Text = Empty
End Sub

Private Sub optEmpza_Click()
'    txtEmpieza.SetFocus
    txtContiene.Text = Empty
    txtEmpieza.Text = Empty
End Sub

Private Sub txtContiene_Change()
optContga.Value = True
'If KeyAscii = 13 Then
    If MrsobtieneRegistros.RecordCount = 0 Then
          MrsobtieneRegistros.Filter = ""
    End If
    If Not MrsobtieneRegistros.EOF Then   'And Trim(TxtDatoBuscado.Text) <> Empty
      ' MrsobtieneRegistros.MoveFirst
     
      ' Opciones de Busqueda avanzada
       If Len(Trim(txtContiene)) > 0 Then
          MrsobtieneRegistros.Filter = MArrayDeBusqueda(CmbCriterioBusqueda.ListIndex + 1, 1) & " LIKE '*" & Trim(CStr(txtContiene.Text)) & "*'"
          Set DBListar.DataSource = MrsobtieneRegistros
          ActualizarGrid
          DBListar.Refresh
       End If
    End If
'End If
End Sub

Private Sub txtContiene_KeyPress(KeyAscii As Integer)
  KeyAscii = GBloqueaCaracter(KeyAscii)
  Select Case KeyAscii
     Case 13
            RetornarValores
            Unload Me
     Case 27
     MDIFMaestros.ActiveForm.GrecibeUbicacion = 0
            Unload Me
  End Select

End Sub


Private Sub TxtDatoBuscado_Change()
On Error GoTo TrataError
  If Not MrsobtieneRegistros.EOF And Trim(TxtDatoBuscado.Text) <> Empty Then
   MrsobtieneRegistros.MoveFirst
'  Opciones de Busqueda avanzada

   MrsobtieneRegistros.Find MArrayDeBusqueda(CmbCriterioBusqueda.ListIndex + 1, 1) & " LIKE '" & Trim(TxtDatoBuscado.Text) & "%'"

   Set DBListar.DataSource = MrsobtieneRegistros
   ActualizarGrid
   DBListar.Refresh
  End If

TrataError:
End Sub

Private Sub TxtDatoBuscado_KeyPress(KeyAscii As Integer)
  KeyAscii = GBloqueaCaracter(KeyAscii)
  Select Case KeyAscii
     Case 13
            RetornarValores
            Unload Me
     Case 27
     MDIFMaestros.ActiveForm.GrecibeUbicacion = 0
            Unload Me
  End Select
End Sub

Private Sub txtEmpieza_Change()
optEmpza.Value = True

'If KeyAscii = 13 Then
    If MrsobtieneRegistros.RecordCount = 0 Then
          MrsobtieneRegistros.Filter = ""
    End If
    If Not MrsobtieneRegistros.EOF Then   'And Trim(TxtDatoBuscado.Text) <> Empty
      ' MrsobtieneRegistros.MoveFirst
     
      ' Opciones de Busqueda avanzada
       If Len(Trim(txtEmpieza)) > 0 Then
          MrsobtieneRegistros.Filter = MArrayDeBusqueda(CmbCriterioBusqueda.ListIndex + 1, 1) & " LIKE '" & Trim(CStr(txtEmpieza.Text)) & "*'"
          Set DBListar.DataSource = MrsobtieneRegistros
          ActualizarGrid
          DBListar.Refresh
       End If
    End If
'End If
End Sub


Private Sub txtEmpieza_KeyPress(KeyAscii As Integer)
  KeyAscii = GBloqueaCaracter(KeyAscii)
  Select Case KeyAscii
     Case 13
            RetornarValores
            Unload Me
     Case 27
     MDIFMaestros.ActiveForm.GrecibeUbicacion = 0
            Unload Me
  End Select

End Sub


