TTprxADODataSet Options FiltroIncrementalForm
Descripción
El form TTprxADODataSet_Options_FiltroIncrementalForm (Filtro incremental F1) permite filtrar una grilla (sobre una columna) con dos opciones:
- Ingreso de texto incremental posicionando el cursor sobre el primer registro que comienza con esas letras:

- Ingreso de texto y filtrando por los registros que incluyen ese texto (hay que marcar el campo "Conteniendo"):

El form se invoca picando la tecla F1 sobre la columna de la grilla TfvsDGBrid que queremos filtrar.
Identidad
- Ancestro: TfvsForm
- Carpeta: C:\DevelopPrx\library
- Archivo: prxADODataSet_Options_FiltroIncrementalForm.pas
Declaración
type
TTprxADODataSet_Options_FiltroIncrementalForm = class(TTfvsForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
ComboBox_COLUMNAS: TComboBox;
Panel5: TPanel;
Panel6: TPanel;
Panel7: TPanel;
Panel8: TPanel;
Panel9: TPanel;
Panel10: TPanel;
Panel11: TPanel;
Button1: TButton;
EditTEXTO: TEdit;
CheckBox_Conteniendo: TCheckBox;
ButtonRESET: TButton;
procedure FormShow(Sender: TObject);
procedure EditTEXTOKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure EditTEXTOChange(Sender: TObject);
procedure CheckBox_ConteniendoClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
procedure ComboBox_COLUMNASSelect(Sender: TObject);
procedure ButtonRESETClick(Sender: TObject);
private
FGrid: TDBGrid;
FColumn: TColumn;
Fdataset_filtered: Boolean;
Fdataset_filter: String;
FADOFilter: TprxADODataSet_Options_Busqueda;
FRefreshing: Boolean;
protected
function SelectedColumn: TColumn;
property dataset_filtered: Boolean read Fdataset_filtered write Fdataset_filtered;
property dataset_filter: String read Fdataset_filter write Fdataset_filter;
property ADOFilter: TprxADODataSet_Options_Busqueda read FADOFilter write FADOFilter;
property Refreshing: Boolean read FRefreshing write FRefreshing;
property Column: TColumn read FColumn write FColumn;
public
property Grid: TDBGrid read FGrid write FGrid;
end;
property Grid: TDBGrid read FGrid write FGrid;
Inicializado con la grilla que llamó al form.
function SelectedColumn: TColumn
Retorna la columna seleccionada.
Implementación
procedure EditTEXTOChange(Sender: TObject)
Cada vez que se cambia el texto del control de edición:
- Si estamos haciendo una búsqueda incremental intenta localizar un registro en la grilla que comience con el texto ingresado, el comando es:
if (Trim(EditTEXTO.Text) <> '') and (CheckBox_Conteniendo.Checked = False) then
begin
Grid.DataSource.DataSet.Locate(Column.FieldName, EditTEXTO.Text, [loPartialKey]);
end
- Si estamos filtrando lo hace con:
else
if Trim(EditTEXTO.Text) <> '' then
begin
if Grid.DataSource.DataSet.Filtered then
Grid.DataSource.DataSet.Filtered := False;
Grid.DataSource.DataSet.Filter := Column.FieldName + ' LIKE ' + Q('%' + EditTEXTO.Text + '%');
Grid.DataSource.DataSet.Filtered := True;
end
Uso
Este filtrado se usa en: