VERSION 5.00
Object = "{CDE57A40-8B86-11D0-B3C6-00A0C90AEA82}#1.0#0"; "MSDATGRD.OCX"
Begin VB.Form FBusquedaCCobrar 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Búsqueda"
   ClientHeight    =   5445
   ClientLeft      =   2940
   ClientTop       =   2235
   ClientWidth     =   8100
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   5445
   ScaleWidth      =   8100
   StartUpPosition =   2  'CenterScreen
   Begin VB.ComboBox CmbCriterioBusqueda 
      Height          =   315
      Left            =   4920
      Style           =   2  'Dropdown List
      TabIndex        =   1
      Top             =   210
      Width           =   2175
   End
   Begin VB.TextBox TxtDatoBuscado 
      Height          =   285
      Left            =   840
      TabIndex        =   0
      Top             =   210
      Width           =   3015
   End
   Begin MSDataGridLib.DataGrid DBListar 
      Height          =   4335
      Left            =   240
      TabIndex        =   2
      Top             =   720
      Width           =   7575
      _ExtentX        =   13361
      _ExtentY        =   7646
      _Version        =   393216
      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            =   7680
      TabIndex        =   5
      Top             =   5160
      Width           =   75
   End
   Begin VB.Label Label1 
      Caption         =   "Criterio"
      Height          =   255
      Left            =   4200
      TabIndex        =   4
      Top             =   240
      Width           =   615
   End
   Begin VB.Label LblDato 
      Caption         =   "Dato"
      Height          =   255
      Left            =   240
      TabIndex        =   3
      Top             =   240
      Width           =   1215
   End
End
Attribute VB_Name = "FBusquedaCCobrar"
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


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
   
   'Si la Ayuda Viene de Artículos hay que darle un Formato a la Columna de Stock
   'y a la Columna de Precio
   
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 MDIFCcobrar.ActiveForm
        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
           If UBound(MArrayDeBusqueda) >= 5 Then   ' Si el Arreglo tiene 5 o mas columnas
               .GrecibeColumnaOpcional4 = MrsobtieneRegistros(MArrayDeBusqueda(5, 1))
           End If
           If UBound(MArrayDeBusqueda) >= 6 Then   ' Si el Arreglo tiene 6 o mas columnas
               .GrecibeColumnaOpcional5 = MrsobtieneRegistros(MArrayDeBusqueda(6, 1))
           End If
        End If
    End With
    
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
            TxtDatoBuscado.SetFocus
            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
      
  'Me.Top = 1000
    
  Me.Left = (Screen.Width - Me.Width) / 2
  
  DBListar_HeadClick (1)
  
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 = 7230, _
                             Optional IintAltoForm As Integer = 5970, _
                             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
  
  'Me.Width = IintAnchoForm
  Me.Height = IintAltoForm
  Me.Top = IintTopForm
  Me.Left = IintLeftForm
  
  
  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 TxtDatoBuscado_Change()
  
  If Not MrsobtieneRegistros.EOF And Trim(TxtDatoBuscado.Text) <> Empty Then
   MrsobtieneRegistros.MoveFirst
   MrsobtieneRegistros.Find MArrayDeBusqueda(CmbCriterioBusqueda.ListIndex + 1, 1) & " LIKE '" & Trim(TxtDatoBuscado.Text) & "%'"

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

Private Sub TxtDatoBuscado_KeyPress(KeyAscii As Integer)
  KeyAscii = GBloqueaCaracter(KeyAscii)
  Select Case KeyAscii
     Case 13
            RetornarValores
            Unload Me
     Case 27
            Unload Me
  End Select
End Sub
