Documentación

La clase TDbf se encarga de la Gestión y control de:

- Ficheros DBF.- Apertura/Creación automática ficheros DBF
- Apertura/Creación automática ficheros Indices
- Trabajo en red automáticamente
- Reciclado de registros
- Encriptación de ficheros
- Scopes
- Creación automática de campos como DATOS de la clase
- Validación de campos
- Campos calculados

La utilización de la clase se puede hacer de tres maneras diferentes:

1.- Utilizando comandos predefinidos.
Ej. DEFINE FIELD ... OF oDbf
2.- Utilizando los métodos de la clase.
Ej. oDbf:AddField(...)
3.- Utilizando unos comandos y métodos simultáneamente.

Yo recomiendo que se utilicen los comandos predefinidos, pero ya que no están
implementados todos los métodos como comando a veces se hará imprescindible la
utilización mixta.

Implementar nuevos comandos definidos por usuario no es difícil por lo que
animo a Félix o a Mauricio o a cualquiera que utilice a que lo haga :-)

Voy a describir en primer lugar las variables de instancia de la clase y luego
los comandos y cada uno de los métodos.


*******************************************************************************
LA CLASE TDBF
*******************************************************************************

* VARIABLES DE INSTANCIA

Las variables de instancia o DATAS son las que van a definir características
y comportamientos del objeto. Las datas solo se deberían de cambiar a través de
los métodos de la clase para seguir con el más estricto método OOP, pero aquí
se puede acceder directamente a ellas por ej. lSync := .t..

Las voy a dividir según el tipo ya que en TDbf están prototipadas para que
haya una protección de tipo.

- Tipo Array:

. aTField: Guarda objetos de tipo TField.
Ej. ? aTField[ 3 ]:Val //Imprime el valor del primer campo

. aTIndex: Guarda objetos de tipo TIndex.
Ej. ? aTIndex[ 1 ]:nOrden //Imprime el orden del índice

. aTRelation: Guarda objetos de tipo TRelation.
Ej. ? aTRelation[ 2 ]:cLink //Imprime la cadena de enlace

- Tipo Caracter:

. cUsrAlias: Es alias que el usuario pone, la clase comprueba que no
existe ninguna con ese nombre en el sistema, si no existe el valor
de ::cAlias se iguala a :.cUsrAlias. Esto se ha hecho para que no
haya problemas en Windows al abrir la misma ventana mas de una vez
incluso en el mismo programa.

. cAlias: Una vez que se haya abierto la DBF guarda el alias, si se puso
un alias de usuario ::cUsrAlias debe coincidir con este. Este dato
no debe ser cambiado por el programador solo consultado.

. cRDD: Es driver que se esta utilizando, por defecto es DBFNTX.

. cFile: Nombre del fichero físico de la DBF.

- Tipo numérico:

. nArea: Es solo consulta, guarda el numero de área.

. nSeconds: Guarda el tiempo en segundos que espera entre reintentos en
los bloqueos en entornos de red.

. nFieldCount: Numero de campos de todo tipo que hay en la DBF.

- Tipo lógico:

. lBuffer: Determina si queremos trabajar con buffer de datos.

. lRecycle: Determina el sistema de reciclado de registros.

. lShared: Determina modo compartido en red.

. lReadOnly: Determina si la DBF se abre para consultas.

. lProtec: Determina la encriptacion de la DBF.

. lReset: Uso interno. Para activar el tiempo de reseteo.

. lRelation: Determina si hay relaciones activadas.

. lSync: Determina si se sincronizan las DBF hijas en relaciones.

. lEof: Determina si está en el final lógico de la DBF. Incluso aunque
haya filtros.

. lBof: Determina si esta en el principio lógico de la DBF. Incluso aunque
haya filtros.

. lScope: Determina la existencia de filtros.


- Tipo CodeBlock:

Atención todos los CodeBlock tienen que retornar un valor logico para
que funcionen correctamente.

. bNetError: Se ejecuta en caso de errores en red/bloqueos.

. bOnCreate: Se ejecuta antes crear la DBF.

. bOnOpen: Se ejecuta antes de abrir la DBF.

. bOnClose: Se ejecuta antes de cerrar la DBF.

. bBof: Se ejecuta al detectar el principio de la DBF.

. bEof: Se ejecuta al detectar el final de la DBF.

. bOpenError: Se ejecuta al detectar un error en la apertura de la DBF.

. bFor: Condición FOR para el tratamiento de registros. Aun no esta
implementada, se utilizara para los sumatorios, medias etc.


- Tipo Objeto:

. oIdxActive: Es el objeto de tipo TIndex que esta activo en este momento.

- Tipo todos:

. uValMin, uValMax: Valores máximo y mínimo de un SCOPE
.