Una aplicación es una base de datos diseñada para responder a una necesidad específica. Tiene una interfaz de usuario diseñada especialmente para facilitar su uso. Las tareas que una aplicación realiza están limitadas a aquellas apropiadas para su objetivo. La creación de aplicaciones con 4D es más fácil que con programación tradicional. 4D se puede utilizar para crear una variedad de aplicaciones, incluyendo:
Un sistema de facturación
Un sistema de control de inventarios
Un sistema de contabilidad
Un sistema de pago de nómina
Un sistema de recursos humanos
Un sistema de seguimiento de clientes
Una base de datos accesible por Internet o Intranet
Incluso es posible que una sola aplicación pueda contener todos estos sistemas. Este tipo de aplicaciones corresponden al uso tradicional de bases de datos. Adicionalmente, las herramientas en 4D le permiten crear aplicaciones originales, tales como:
un sistema de seguimiento de documentos
un sistema gráfico de manejo de imágenes
una aplicación de publicación de catálogos
un sistema de control y monitoreo de un dispositivo serial
un sistema de mensajería electrónica (E-mail)
un sistema de programación multiusuario
una lista como una lista de menús, una colección de videos, o una colección de música
Generalmente, una aplicación puede comenzar como una base de datos utilizada en el entorno Diseño. La base se “transforma” en una aplicación a medida que se personaliza. Lo que diferencia una aplicación es que el sistema necesario para manejar la base de datos está oculto del usuario. La gestión de la base está automatizada, y los usuarios utilizan menús para realizar tareas específicas.
Cuando utiliza una base 4D en el entorno Diseño, debe conocer los pasos a seguir para obtener un resultado. En una aplicación 4D, se utiliza el modo Aplicación, en el cual debe manejar todos los aspectos que son automáticos en el entorno Diseño, es decir:
Navegación entre tablas: la ventana Lista de tablas, el comando Últimas tablas utilizadas o los botones de navegación no están disponibles para el usuario. Puede utilizar los comandos de menús y métodos para controlar la navegación entre tablas.
Menús: en modo Aplicación, sólo aparecen por defecto los menús Archivo con el comando de menú Salir, Edición, Modo y Ayuda (así como el menú aplicación bajo Mac OS). Si la aplicación necesita más menús, debe crearlos y manejarlos utilizando métodos 4D o acciones estándar.
Editores: los editores, como los editores de búsqueda y de ordenación, no están disponibles automáticamente en el entorno Aplicación. Si quiere utilizarlos, debe llamarlos utilizando métodos 4D.
Las siguientes secciones incluyen ejemplos de automatización del uso de una base utilizando el lenguaje.
Los menús personalizados son la interfaz primaria de una aplicación. Los menús personalizados facilitan a los usuarios el aprendizaje y utilización de una base de datos. Crear menús personalizados es muy sencillo, asocie métodos o acciones estándar a cada comando de menú (también llamados elementos de menús) en el editor de menús.
La sección “Punto de vista del usuario” describe lo que sucede cuando el usuario selecciona un comando de menú. Luego, “Detrás del escenario” describe el trabajo de diseño que se ha efectuado. Aunque el ejemplo es sencillo, es evidente cómo los menús personalizados hacen que una base sea más fácil para aprender y utilizar. En el entorno Diseño, en lugar de las herramientas “genéricas” y comandos de menú, el usuario sólo ve elementos que corresponden a sus necesidades.
El usuario selecciona un comando de menú llamado Crear del menú Personas para añadir una nueva persona a la base de datos.
Aparece el formulario de entrada de la tabla Personas.
El usuario introduce el nombre de la persona y luego presiona la tecla Tab para pasar al siguiente campo.
El usuario introduce el apellido de la persona.
El usuario presiona la tecla Tab para pasar al siguiente campo: el apellido se convierte en letras mayúsculas.
Una vez el usuario termina de introducir el registro y hace clic en el botón de validación (generalmente el último botón en la barra de botones).
Aparece otro registro vacío, y el usuario hace clic en el botón Cancelar (el que tiene una “X”) para terminar el “bucle de entrada de datos.” El usuario vuelve a la barra de menús.
La barra de menús fue creada en el entorno Diseño, utilizando el editor de menús.
El comando de menú Nuevo está asociado a un método de proyecto llamado Nueva persona. Este método fue creado en el entorno Diseño, utilizando el editor de métodos.
Cuando el usuario selecciona este comando de menú, el método Nueva persona se ejecuta:
Repeat ADD RECORD([Personas]) Until(OK=0)
El bucle Repeat...Until al interior del cual se encuentra el comando ADD RECORD tiene exactamente los mismo efectos que le comando de menú Nuevo Registro en el entorno Diseño. Muestra el formulario de entrada al usuario, de manera que pueda añadir un nuevo registro. Cuando el usuario guarda el registro, aparece otro nuevo registro vacío. Este bucle ADD RECORD continúa ejecutándose hasta que el usuario hace clic en el botón Cancelar.
Cuando se introduce un registro, ocurre lo siguiente:
No hay método para el campo Nombre, entonces no se ejecuta nada.
Hay un método para el campo Apellido. Este método fue creado en el entorno Diseño utilizando los editores de formularios y métodos. El método se ejecuta:
Esta línea convierte los caracteres del campo Apellido en mayúsculas.
Después de introducir un registro, cuando el usuario hace clic en el botón Cancelar en el formulario siguiente, la variable OK toma el valor cero, terminando la ejecución del bucle ADD RECORD.
Como no hay más instrucciones a ejecutar, el método Nueva persona se detiene y devuelve el control a la barra de menús.
Los mismos comandos utilizados en el ejemplo anterior pueden usarse para automatizar más la base de datos.
Miremos la nueva versión del método Mi Informe.
El usuario elige Informe en el menú Personas. Un método llamado Mi informe2 se asocia al comando de menú. Se ve de esta manera:
QUERY([Personas];[Personas]Empresa="Acme") ORDER BY([Personas];[Personas]Apellido;>;[Personas]Nombre;>) FORM SET OUTPUT([Personas];"Informe") PRINT SELECTION([Personas];*)
Se ejecuta la primera línea:
QUERY([Personas];[Personas]Empresa="Acme")
No aparece el editor de búsquedas. En su lugar, la consulta se especifica y realiza por el comando QUERY. El usuario no tiene que hacer nada.
Se ejecuta la segunda línea del método Mi informe2:
ORDER BY([Personas];[Personas]Apellido;>;[Personas]Nombre;>)
El editor Ordenar no aparece, y la ordenación se realiza de inmediato. Una vez más, no es necesaria ninguna acción por parte del usuario.
Se ejecutan las líneas finales del método Mi informe2:
Las cajas de diálogo de impresión no aparecen. El comando PRINT SELECTION acepta un parámetro opcional asterisco (*) que le indica al comando que utilice los parámetros de impresión vigentes cuando el formulario del informe fue creado. Se imprime el informe.
Esta automatización adicional le ahorra al usuario tener que introducir opciones en tres cajas de diálogo. Estos son los beneficios:
La búsqueda se efectúa automáticamente: esto evita que los usuarios seleccionen un criterio de búsqueda equivocado cuando hacen una búsqueda.
La ordenación se realiza automáticamente: esto evita que los usuarios seleccionen criterios de ordenación equivocados cuando definen una ordenación.
La impresión se efectúa automáticamente: esto evita que los usuarios seleccionen un formulario equivocado para imprimir.
A medida que desarrolla una aplicación 4D, descubrirá muchas funcionalidades que no había observado cuando comenzó. Incluso puede aumentar la versión estándar de 4D añadiendo otras herramientas y plug-ins a su entorno de desarrollo 4D.
Existe una comunidad 4D internacional muy activa, compuesta por grupos de usuarios, foros electrónicos y Partners 4D. Los Partners 4D producen Herramientas de terceras partes. Puede suscribirse al foro de usuarios de 4D en la siguiente dirección:
http://forums.4D.fr
La comunidad 4D ofrece acceso consejos y soluciones, información y herramientas adicionales que le ahorrarán tiempo y energía y aumentarán su productividad.