DBNavigatorE es un componente idéntico a DBNavigator de delphi
(de hecho es una copia a la que se han hecho una serie de modificaciones)
al que se le ha añadido nuevas funcionalidades : Por una parte
su aspecto y por otra la posibilidad de buscar un registro determinado
por un valor que se nos pedirá. Esta búsqueda se hará
directamente sobre los registros recuperados por la fuente de datos del
control (TDBNavigatorE.Datasource) o entre los registros de una consulta
distinta pero cuyos datos nos servirán para buscar más fácilmente
el registro que nos interesa (por ejemplo buscar una factura determinada
pero conociendo el nombre del cliente que es un dato que se encuentra
en otra tabla).
Aspecto del componente :
Propiedades :
Las propiedades son las mismas que las de TDBNavigator más las
siguientes nuevas :
FieldFindParam :
OrderBy : Campos de ordenación
de los registros mostrados en la pantalla de registros encontrados.
KeyField : Campo clave. Se
devolverá el valor de este campo cuando se pulse aceptar en la
ventana de búsqueda en el caso de que ReturnedField sea vacío.
(Es un campo de la tabla especificada en la propiedad TDBNavigatorE.FieldFindParam.Tablename).
LocateField : Campo de la
fuente de datos de TDBNavigatorE sobre el que se buscará.
Por defecto se buscará en el campo sobre el que se encuentre
situado el cursor cuando se pulsa sobre el botón de búsqueda.
ReturnedField : Campo de
la tabla TDBNavigatorE.FieldFindParam.Tablename vuyo valor
se devolverá para buscar en el campo LocateField..
FieldFormat : Formato de
los campos para formar la sentencia SELECT. Por defecto '%s'.
OtherFields : Nombre de los
campos que se mostrarán en la pantalla de registros encontrados(Son
campos de la tabla especificada en la propiedad TDBNavigatorE.FieldFindParam.Tablename).
SQLObject : Objeto TDataset
de tipo Query. Debe tener una propiedad SQL.
SQLUpper : Función
para convertir en mayúsculas. Por defecto UPPER (aunque puede
ser UCASE o cualquier otra función que en SQL convierta una cadena
a mayúsculas)
TableName : Nombre de la
tabla (puede ser distinta a TDBNavigatorE.TableName)
Like : La búsqueda
se hace como campo LIKE %cadena% (valor TRUE) sobre los datos del Select
siguiente o como campo=cadena (valor FALSE) sobre la fuente de datos
del control.
La sentencia SQL que se forma con los datos
de FieldFindParam es la siguiente : |
SELECT {ReturnedField},
{KeyField}, OtherFields
FROM Tablename
WHERE {QSLUpper(KeyField)
| KeyField} LIKE
'%FINDTEXT%'
{ORDER BY OrderBy}
FINDTEXT : Texto/Valor a buscar (Se recoge por pantalla)
Busca : Valor de LocateField = Valor
de ReturnedField
Ejemplo :
Select Apellidos,
NIF
From Clientes
Where UPPER(Apellidos) LIKE '%GALLEGO%'
Order by Apellidos, NIF
|
FindWindowPos : Posición
de la ventana de resultados. Por defecto se coloca en el medio de la pantalla.
Left: Posición
horizontal de la ventana (y).
Top: Posición vertical
de la ventana (x)
Width : Anchura de la ventana.
Height : Altura de la ventana.
Gradiente :mirar
FieldName : Esta es una propiedad
pública, que no publicada. Contendrá el valor del campo
en el que se encuentra situado el cursor en el momento de pulsar sobre
uno de los botones del navegador. Esta propiedad sólo contendrá
un valor correcto cuando se pregunte sobre ella dentro de un evento que
se haya provocado por la pulsación de uno de los botones, por ejemplo
en el BeforeAction que salta después de pulsar un botón
del navegador pero antes de ejecutar la acción de propio botón.
Eventos :
Sólo se ha modificado un evento el resto funcionan igual que el Navegador
de Delphi.
BeforeAction : Salta cuando
se pulsa sobre un botón del navegador y justo antes de ejecutar la acción
del propio botón. Se le ha añadido un nuevo parámetro 'Cancel' que permitirá
abortar la ejecución de la acción.
Para ver el funcionamiento de este componente descargue el siguiente ejemplo y mire su código fuente.
|