Clases de la aplicación de cliente-servidor de ejemplo

La mayor parte de la funcionalidad de la aplicación de cliente-servidor de ejemplo se ha generado en clases. Los objetos basados en dichas clases se han creado como respuesta a las acciones del usuario.

CSEngine

Cuando se ejecuta la aplicación, se crea un objeto en Csmain.prg basado en la clase CSEngine de Csprocs.prg:

oEngine = CREATEOBJECT('csengine')

La clase CSEngine proporciona un método genérico para borrar e instalar entornos, así como métodos que tratan la funcionalidad de la aplicación.

Método Descripción
DropTable Elimina una tabla en la base de datos del servidor.
ExecuteTempSPT Ejecuta comandos de transferencia de SQL y trata los errores generados por la transferencia.
ServerStart Crea el objeto de regla comercial que valida los salarios de los empleados.
ServerStop Libera el objeto de regla.
ServerValidateRow Valida datos mediante el objeto comercial.

Para obtener más información acerca de éstos y otros métodos en la clase CSEngine, consulte el código del archivo Csprocs.prg.

OpenDBC

Después de crear el objeto oEngine, el código de Csmain.prg crea un objeto basado en el formulario OpenDBC de Sample.vcx:

oStartForm = CREATEOBJECT('OpenDBC')

El formulario OpenDBC permite a un usuario abrir la base de datos de ejemplo, de forma exclusiva o compartida, así como cerrar la base de datos y modificar la conexión con la base de datos del servidor. Necesitará una conexión con una base de datos de servidor para hacer un upsizing de la tabla de este ejemplo y para tener acceso a ella como una vista remota.

También hay código para crear y mostrar este formulario en el evento Click del botón Base de datos del formulario SampleApp.

OpenDBC es un formulario modal. Cuando se elige Aceptar en el formulario OpenDBC, se ejecutará el siguiente código y continuará la ejecución del programa.

RELEASE THISFORM
oEngine.Start = .T.

Si se ha creado el formulario OpenDBC en Csmain.prg, se ejecutará el siguiente código cuando se cierre OpenDBC y se creará una instancia de la clase SampleApp en Sample.vcx:

IF oEngine.Start
   oCSApp = CREATEOBJECT('SampleApp')
   oCSApp.Show
ENDIF

SampleApp

SampleApp es el formulario principal de la aplicación de cliente-servidor de ejemplo. Este formulario contiene un marco con dos páginas. Los controles de la primera página permiten abrir la tabla, la vista local y la remota, así como aumentar el tamaño de la tabla, restaurar los datos originales en la tabla y alternar la vista en pantalla con la vista fuera de línea. Los controles de la segunda página permiten ver y modificar datos en la tabla o vista seleccionada.

El código del formulario SampleApp proporciona acceso a funcionalidad más encapsulada mediante la creación de dos objetos adicionales si es necesario: Salaryrule y Conflicts.

SalaryRule

SalaryRule es una clase en un servidor de Automatización. El proyecto para el servidor de Automatización es Bizrules.pjx y la clase se define en Bizrules.pjx:

DEFINE CLASS salaryrule AS Custom OLEPUBLIC

El código asociado con el evento Click de la casilla de verificación chkRules realiza una llamada al método StartServer de CSEngine. El código del método StartServer crea una instancia de la clase SalaryRule:

this.oServer = CREATEOBJECT('Bizrules.SalaryRule')

Si desea más información, vea "Implementar reglas comerciales en la aplicación de cliente-servidor de ejemplo", más adelante en esta sección.

Conflicts

La clase de formulario Conflicts muestra el valor actual, el antiguo y los valores modificados de campos de un registro con conflicto de datos. Se crea una instancia de la clase Conflicts en el método ResolveConflicts del formulario SampleApp:

frmConflicts = CREATEOBJECT('Conflicts')
frmConflicts.Show

Si desea más información acerca de la solución de conflictos, vea "Tratar conflictos de datos en la aplicación de cliente-servidor de ejemplo", más adelante en esta sección.

Vea también

Ejemplos de soluciones | Ejemplo de cliente-servidor | Base de datos de la aplicación de cliente-servidor de ejemplo | Actualizar datos en la aplicación de cliente-servidor de ejemplo | Tratar conflictos de datos en la aplicación de cliente-servidor de ejemplo | Implementar reglas comerciales en la aplicación de cliente-servidor de ejemplo