TPVwin/TDlgBuscar.cpp
2021-09-12 22:19:30 +02:00

110 lines
3.2 KiB
C++

//---------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "TDlgBuscar.h"
//---------------------------------------------------------------------
#pragma link "Grids"
#pragma resource "*.dfm"
TDlgBuscar *DlgBuscar;
//---------------------------------------------------------------------
__fastcall TDlgBuscar::TDlgBuscar(TComponent* AOwner)
: TForm(AOwner)
{
}
//---------------------------------------------------------------------
bool __fastcall TDlgBuscar::Buscar(int Tipo, TTable *Sender)
{
switch( Tipo )
{
case PRIOR:
if ( TbBusquedas -> FindPrior() == true )
{
try{
Sender -> GotoCurrent( TbBusquedas );
}catch(...){/*nothing*/}
return true;
} else
MessageBox( 0, "Coincidencia no hayada", "¡ Buscar Anterior !", MB_OK );
break;
case NEW:
ShowModal();
if ( ModalResult == mrOk )
{
try{
Sender -> GotoCurrent( TbBusquedas );
}catch(...){/*nothing*/}
return true;
}
break;
case NEXT:
if ( TbBusquedas -> FindNext() == true )
{
try{
Sender -> GotoCurrent( TbBusquedas );
}catch(...){/*nothing*/}
return true;
} else
MessageBox( 0, "Coincidencia no hayada", "¡ Buscar Siguiente !", MB_OK );
break;
}
return false;
}
//---------------------------------------------------------------------
void __fastcall TDlgBuscar::ComboBox1Change(TObject *Sender)
{
// Make the field we're locating in the leftmost field.
TbBusquedas->FieldByName(ComboBox1->Text)->Index = 0;
TbBusquedas->IndexName = "";
Edit1->SetFocus();
Edit1->Text = "";
}
//---------------------------------------------------------------------------
void __fastcall TDlgBuscar::Edit1Change(TObject *Sender)
{
AnsiString BuscarEsto;
BuscarEsto = Edit1->Text;
{ // Some non-indexed field.
AnsiString BuscarCota;
BuscarCota = BuscarEsto + "Z";
TbBusquedas->FilterOptions = TbBusquedas->FilterOptions << foCaseInsensitive;
TbBusquedas->Filter = "( ([" + ComboBox1->Text + "] >= '" + BuscarEsto + "') AND [" + ComboBox1->Text + "] < '" + BuscarCota + "')" + ( Filter.IsEmpty()?AnsiString(""):AnsiString(" AND " + Filter));
TbBusquedas->Filtered = true;
// else
// TbBusquedas->Filtered = false;
}
TbBusquedas->Refresh();
}
//---------------------------------------------------------------------------
void __fastcall TDlgBuscar::DBGrid1DblClick(TObject *Sender)
{
ModalResult = mrOk;
}
//---------------------------------------------------------------------------
void __fastcall TDlgBuscar::TbBusquedasAfterOpen(TDataSet *DataSet)
{
// Rellenamos el combo de "campos donde buscar", con TODOS los campos
// de la base de datos...
TbBusquedas -> GetFieldNames( ComboBox1 -> Items );
TbBusquedas->FilterOptions = TbBusquedas->FilterOptions << foCaseInsensitive;
TbBusquedas->Filter = Filter;
TbBusquedas->Filtered = true;
if ( !DefaultField.IsEmpty() )
{
TbBusquedas->FieldByName(DefaultField)->Index = 0;
ComboBox1->ItemIndex = ComboBox1->Items->IndexOf( DefaultField );
}
}
//---------------------------------------------------------------------------