Diferencia entre revisiones de «TTprxADODataSet Options FiltroIncrementalForm»
Ir a la navegación
Ir a la búsqueda
Sin resumen de edición |
Sin resumen de edición |
||
Línea 94: | Línea 94: | ||
end | end | ||
</pre> | </pre> | ||
=Uso= | |||
Este filtrado se usa en: | |||
*[[TTfvsDBClientFrameGridConsultas|Implementa grilla para consultas (TTfvsDBClientFrameGridConsultas)]]. | |||
*[[TTfvsDBClientFrameGridClases|Implementa grilla para clases (TTfvsDBClientFrameGridClases)]]. |
Revisión del 15:55 5 jun 2025
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: