Diferencia entre revisiones de «TTprxADODataSet Options FiltroIncrementalForm»
Ir a la navegación
Ir a la búsqueda
(Página creada con «=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. miniaturadeimagen|no|Búsqueda incremental. *Ingreso de texto y filtrando por los registros que incluyen ese texto. Archivo:20250529 1510 F1 FI…») |
(→Uso) |
||
(No se muestran 3 ediciones intermedias del mismo usuario) | |||
Línea 1: | Línea 1: | ||
=Descripción= | =Descripción= | ||
El form '''TTprxADODataSet_Options_FiltroIncrementalForm''' (Filtro incremental F1) permite filtrar una grilla (sobre una columna) con dos opciones: | 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 incremental posicionando el cursor sobre el primer registro que comienza con esas letras: | ||
[[Archivo:20250529 1509 F1 BUSQUEDA INCREMENTAL.png|miniaturadeimagen|no|Búsqueda incremental.]] | [[Archivo:20250529 1509 F1 BUSQUEDA INCREMENTAL.png|miniaturadeimagen|no|Búsqueda incremental.]] | ||
*Ingreso de texto y filtrando por los registros que incluyen ese texto | *Ingreso de texto y filtrando por los registros que incluyen ese texto (hay que marcar el campo "Conteniendo"): | ||
[[Archivo:20250529 1510 F1 FILTRADO.png|miniaturadeimagen|no|Filtrado.]] | [[Archivo:20250529 1510 F1 FILTRADO.png|miniaturadeimagen|no|Filtrado.]] | ||
El form se invoca picando la tecla F1 sobre la columna de la grilla [[TfvsDGBrid]] que queremos filtrar. | |||
=[[QUEESESTO/IDENTIDAD|Identidad]]= | =[[QUEESESTO/IDENTIDAD|Identidad]]= | ||
[[Category:MANUAL/PROGRAMADOR]] | [[Category:MANUAL/PROGRAMADOR]] | ||
Línea 14: | Línea 14: | ||
*Carpeta: C:\DevelopPrx\library | *Carpeta: C:\DevelopPrx\library | ||
*Archivo: prxADODataSet_Options_FiltroIncrementalForm.pas | *Archivo: prxADODataSet_Options_FiltroIncrementalForm.pas | ||
=Declaración= | |||
<pre> | |||
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; | |||
</pre> | |||
===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: | |||
<pre> | |||
if (Trim(EditTEXTO.Text) <> '') and (CheckBox_Conteniendo.Checked = False) then | |||
begin | |||
Grid.DataSource.DataSet.Locate(Column.FieldName, EditTEXTO.Text, [loPartialKey]); | |||
end | |||
</pre> | |||
*Si estamos filtrando lo hace con: | |||
<pre> | |||
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 | |||
</pre> | |||
=Uso= | |||
Este filtro se usa en: | |||
*[[TTfvsDBClientFrameGridConsultas|Implementa grilla para consultas (TTfvsDBClientFrameGridConsultas)]]. | |||
*[[TTfvsDBClientFrameGridClases|Implementa grilla para clases (TTfvsDBClientFrameGridClases)]]. |
Revisión actual - 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 filtro se usa en: