Documentos de Académico
Documentos de Profesional
Documentos de Cultura
WEBDEV 21
Documentación Versión 21 (2) -1215
Visite regularmente la página web www.pcsoft.fr, espacio actualizado para ver si hay actualizaciones disponibles.
Consejo: Para recibir directamente las actualizaciones provisionales y consejos de uso, abónese a LST (revista
trimestral + DVD), en francés.
Esta documentación no es contractual. PC SOFT se reserva el derecho de modificar o borrar cualquier tema tratado en
este documento.
Todos los nombres de productos y otras marcas mencionadas aquí son marcas comerciales registradas por sus
respectivos propietarios.© PC SOFT 2015: Queda prohibida la reproducción total o parcial de este material en
cualquier formato que pueda llevarse a cabo sin el permiso expreso del PC SOFT.
WEBDEV 21 |2
WEBDEV 21 |3
Contenido
Introducción ....................................................................................................................................................... 14
Preliminares .................................................................................................................................................... 14
Presentación del curso de autoformación. ......................................................................................................... 14
¿Cómo acceder a la ayuda en línea? ................................................................................................................. 14
Para lanzar directamente la ayuda en línea desde el producto: ........................................................................ 16
Leyenda de los símbolos .................................................................................................................................. 16
Si ya conoce WEBDEV 20 … ............................................................................................................................. 16
¿Qué puedo hacer con WEBDEV?...................................................................................................................... 16
Lección 1.1. Descubra WEBDEV ........................................................................................................................... 19
Lo que va a aprender en esta lección… ............................................................................................................. 19
Presentación ................................................................................................................................................... 20
Lanzamiento de WEBDEV ................................................................................................................................. 20
Entorno de desarrollo ....................................................................................................................................... 20
El editor ....................................................................................................................................................... 20
La barra de menú (cinta) en detalle ............................................................................................................... 21
WLangage ....................................................................................................................................................... 22
Lección 1.2. El desarrollo WEB y WEBDEV ............................................................................................................ 23
Lo que va a aprender en esta lección… ............................................................................................................. 23
Principio Navegador/Servidor............................................................................................................................ 24
¿Cómo funciona? .......................................................................................................................................... 24
¿Y en WEBDEV? ........................................................................................................................................... 24
Intranet/Extranet/Internet................................................................................................................................ 27
Principios ..................................................................................................................................................... 27
¿Y en WEBDEV? (Clásico/AWP, PHP, Estático) ................................................................................................ 27
El método para crear un sitio............................................................................................................................ 28
Lección 1.3. Mis primeras páginas ........................................................................................................................ 30
Lo que va a aprender en esta lección… ............................................................................................................. 30
Presentación ................................................................................................................................................... 31
Apertura del proyecto ................................................................................................................................... 31
Creación de una página “formulario” ................................................................................................................. 31
Creación de la página ................................................................................................................................... 31
Creación de campos ..................................................................................................................................... 32
Mejoras de la página .................................................................................................................................... 36
Prueba de la página...................................................................................................................................... 38
Guardar los datos en un fichero de datos. ......................................................................................................... 38
Creación del fichero de datos ........................................................................................................................ 38
Guardar los datos. ........................................................................................................................................ 40
Prueba de la página...................................................................................................................................... 41
Visualizar los datos introducidos .................................................................................................................... 41
Añadir controles de entrada ............................................................................................................................. 42
WEBDEV 21 |4
Introducción obligatoria ................................................................................................................................ 42
Verificación de la contraseña. ........................................................................................................................ 42
Búsqueda simple en una base de datos ............................................................................................................. 43
Creación de la página ................................................................................................................................... 43
Creación de los campos ................................................................................................................................ 44
Prueba de la página...................................................................................................................................... 46
Conclusión ...................................................................................................................................................... 46
Lo que va a aprender en esta lección… ............................................................................................................. 48
Presentación del proyecto realizado en este capítulo .......................................................................................... 49
Lección 2.2. WebDev y las bases de datos ............................................................................................................ 50
Lo que va a aprender en esta lección… ............................................................................................................. 50
Presentación ................................................................................................................................................... 51
HFSQL ............................................................................................................................................................ 51
Los distintos modos de acceso a las bases de datos ........................................................................................... 51
Acceso Nativo .............................................................................................................................................. 51
Acceso ODBC directo .................................................................................................................................... 52
Acceso OLE DB............................................................................................................................................. 52
Acceso ODBC vía OLE DB .............................................................................................................................. 52
Lección 2.3. Proyecto y análisis ............................................................................................................................ 53
Lo que va a aprender en esta lección… ............................................................................................................. 53
Presentación ................................................................................................................................................... 54
Creación del proyecto ...................................................................................................................................... 54
Creación del análisis ........................................................................................................................................ 55
Creación de la descripción del fichero de datos .................................................................................................. 56
Creación de un fichero de datos: Uso de un fichero predefinido. ..................................................................... 57
Creación de un fichero de datos: creación del fichero y los campos ................................................................. 58
Importación de un fichero CSV ...................................................................................................................... 61
Importación directa de ficheros de datos existentes ....................................................................................... 64
Creación de las relaciones ................................................................................................................................ 65
Generación del análisis ..................................................................................................................................... 70
Lección 3.1. Presentación .................................................................................................................................... 73
Lo que va a aprender en esta lección… ............................................................................................................. 73
Presentación del sitio realizado en este capítulo ................................................................................................. 74
Lección 3.2. Principio de visualización de un sitio WEBDEV dinámico ...................................................................... 76
Lo que va a aprender en esta lección… ............................................................................................................. 76
Principio de visualización de un sitio WEBDEV dinámico ..................................................................................... 77
La sesión WEBDEV ....................................................................................................................................... 77
Los contextos de la página ............................................................................................................................ 77
Programación ............................................................................................................................................... 77
Lección 3.3. Páginas de adición y modificación...................................................................................................... 79
Lo que va a aprender en esta lección… ............................................................................................................. 79
WEBDEV 21 |5
Presentación ................................................................................................................................................... 80
Creación de una página dinámica para listar los productos ................................................................................. 80
Creación de una página utilizando un modelo................................................................................................. 80
Creación de los campos ................................................................................................................................ 82
Prueba de la página...................................................................................................................................... 86
Modificar productos mediante una página dinámica “Ficha de producto” ............................................................. 86
Creación de la página ................................................................................................................................... 86
¿Qué deberá hacer la página? ....................................................................................................................... 87
Creación de los campos de entrada ............................................................................................................... 87
Mostrar los datos en la página....................................................................................................................... 89
Creación de los botones ................................................................................................................................ 90
Añadir un nuevo producto mediante la página “Ficha del producto” .................................................................... 96
Lección 4.1. Presentación .................................................................................................................................. 101
Lo que va a aprender en esta lección… ........................................................................................................... 101
Presentación del sitio realizado en este capítulo ............................................................................................... 102
Lección 4.2. Principio de visualización de un sitio AWP ........................................................................................ 103
Lo que va a aprender en esta lección… ........................................................................................................... 103
Principio de visualización de un sitio WEBDEV AWP .......................................................................................... 104
¿Qué es una página AWP? .......................................................................................................................... 104
Funcionamiento de los sitios AWP ............................................................................................................... 104
¿Cómo compartir las informaciones (valores) entre dos páginas AWP?........................................................... 106
Lección 4.3. Creación de páginas AWP ............................................................................................................... 107
Lo que va a aprender en esta lección… ........................................................................................................... 107
Presentación ................................................................................................................................................. 108
Creación de una página AWP que liste los nuevos productos ............................................................................ 108
Creación de la página ................................................................................................................................. 108
Creación de la lista de los nuevos productos ................................................................................................ 109
Visualización del detalle de una novedad ......................................................................................................... 114
Creación de la página ................................................................................................................................. 114
¿Qué deberá hacer la página? ..................................................................................................................... 115
Creación de los campos .............................................................................................................................. 115
Mostrar los datos en la página..................................................................................................................... 118
Mostrar la ficha desde la lista de productos. ................................................................................................ 119
Gestión de los estilos. .................................................................................................................................... 120
Importar una hoja de estilos CSS ................................................................................................................ 120
Aplicar los estilos CSS ................................................................................................................................. 121
Enlace del sitio Internet y del sitio Intranet ..................................................................................................... 122
Creación de una página mostrando las condiciones generales de venta ............................................................. 125
Creación de la página ................................................................................................................................. 125
Creación del campo .................................................................................................................................... 125
Conclusión .................................................................................................................................................... 126
WEBDEV 21 |6
Lección 5.1. Búsqueda Multi-criterio ................................................................................................................... 128
Lo que va a aprender en esta lección… ........................................................................................................... 128
Presentación ................................................................................................................................................. 129
Creación de la consulta para buscar los pedidos .............................................................................................. 130
Creación de la consulta ............................................................................................................................... 130
Prueba de la consulta ................................................................................................................................. 132
Uso de parámetros en la consulta................................................................................................................ 133
Prueba de la consulta parametrizada ........................................................................................................... 136
Creación de la página proponiendo la búsqueda multicriterio ............................................................................ 137
Creación de una página .............................................................................................................................. 137
Creación de los campos de parametrización de criterios y visualización del resultado ...................................... 137
Optimización de la visualización de la página ................................................................................................... 148
Lección 5.2. Imprimir una factura ...................................................................................................................... 150
Lo que va a aprender en esta lección… ........................................................................................................... 150
Presentación ................................................................................................................................................. 151
Principio de impresión en Internet .................................................................................................................. 151
Impresión directa ....................................................................................................................................... 151
Generación de documentos HTML, PDF, XML, … .......................................................................................... 151
¿De qué está constituido un informe? ............................................................................................................. 151
Creación del informe “Factura” ....................................................................................................................... 152
Creación de la consulta ............................................................................................................................... 152
Creación de un informe basado en una consulta........................................................................................... 154
Modificaciones del informe “Factura” ........................................................................................................... 160
Visualizar el informe impreso desde un botón .................................................................................................. 162
Colocación de la impresión .......................................................................................................................... 163
Prueba de la impresión ............................................................................................................................... 163
Lección 5.3. Enviar un email .............................................................................................................................. 166
Lo que va a aprender en esta lección… ........................................................................................................... 166
Presentación ................................................................................................................................................. 167
Una página PopUp para enviar los emails ........................................................................................................ 168
Creación de la página PopUp....................................................................................................................... 168
Creación de los campos que permitan introducir las características del email ................................................. 168
Envío del email ........................................................................................................................................... 169
Mejoras en la página ...................................................................................................................................... 170
Cierre de la página PopUp........................................................................................................................... 170
Apertura de la página PopUp....................................................................................................................... 171
Lección 5.4. Identificador del usuario: El Groupware Usuario ............................................................................... 173
Lo que va a aprender en esta lección… ........................................................................................................... 173
Presentación ................................................................................................................................................. 174
Integrar el groupware usuario ........................................................................................................................ 174
Configurar el groupware usuario ..................................................................................................................... 175
WEBDEV 21 |7
Integración del espacio cliente en el sitio ..................................................................................................... 175
Prueba del sitio .......................................................................................................................................... 176
Creación de usuarios y grupos .................................................................................................................... 177
Definición de los derechos .......................................................................................................................... 178
Prueba del sitio .......................................................................................................................................... 180
Desmarcar la gestión del groupware usuario ................................................................................................... 181
Lección 5.5. Gestionar el Multi-Lenguaje ............................................................................................................. 182
Lo que va a aprender en esta lección… ........................................................................................................... 182
¿Qué es un sitio multi-lenguaje? ..................................................................................................................... 183
Seleccione los idiomas del proyecto ................................................................................................................ 183
Internalización de los elementos del proyecto .................................................................................................. 184
Internalización de una imagen .................................................................................................................... 185
Internalización del menú ............................................................................................................................. 186
Internalización de los campos ..................................................................................................................... 187
Internalización de un mensaje de programación ........................................................................................... 187
Las herramientas de traducción ...................................................................................................................... 188
Entrada directa de las traducciones ............................................................................................................. 188
Traducción con WDMSG y WDTRAD ............................................................................................................ 188
Otros elementos para traducir: los mensajes de framework .......................................................................... 189
Programación del cambio de lenguaje ............................................................................................................. 189
Añadir una opción de menú ........................................................................................................................ 190
Programación ............................................................................................................................................. 190
Prueba del proyecto ................................................................................................................................... 190
Lección 5.6. La referenciación ............................................................................................................................ 192
Lo que va a aprender en esta lección… ........................................................................................................... 192
Presentación ................................................................................................................................................. 193
Recuerde: Modo AWP ................................................................................................................................. 193
Los métodos a su disposición ...................................................................................................................... 193
Asistente de referenciación............................................................................................................................. 193
Propiedades de las páginas ............................................................................................................................ 195
Frecuencia de la actualización ..................................................................................................................... 195
Importancia en el sitio ................................................................................................................................ 195
Plan de navegación ........................................................................................................................................ 195
Nombre físico de las páginas .......................................................................................................................... 196
Lección 6.1. Desplegar un sitio .......................................................................................................................... 198
Lo que va a aprender en esta lección… ........................................................................................................... 198
Presentación ................................................................................................................................................. 199
Configuración necesaria ................................................................................................................................. 199
Instalación y configuración del “Servidor de Aplicaciones WEBDEV – 10 Conexiones” ......................................... 199
Instalación del “Servidor de Aplicaciones WEBDEV – 10 conexiones” ............................................................. 199
Configuración a través del Centro de Control de Hospedaje .......................................................................... 201
WEBDEV 21 |8
Creación de una cuenta de despliegue ......................................................................................................... 202
Los distintos modos de despliegue .................................................................................................................. 204
Un ejemplo detallado: Despliegue por FTP ................................................................................................... 204
Correspondencia entre los directorios del puesto de desarrollo y el despliegue .................................................. 209
Lección 6.2. Administrar un sitio ........................................................................................................................ 210
Lo que va a aprender en esta lección… ........................................................................................................... 210
Presentación ................................................................................................................................................. 211
Administrador WEBDEV local .......................................................................................................................... 211
Administrador WEBDEV remoto ...................................................................................................................... 213
Lección 7.1. Los estilos ...................................................................................................................................... 216
Lo que va a aprender en esta lección… ........................................................................................................... 216
Presentación ................................................................................................................................................. 217
Descubrir los estilos ....................................................................................................................................... 217
Un campo: varios elementos ....................................................................................................................... 217
Descubrir los estilos mediante un ejemplo ................................................................................................... 217
Seleccionar el estilo CSS de un campo ......................................................................................................... 218
Editar el estilo CSS de un campo ................................................................................................................. 218
Estilos WEBDEV.......................................................................................................................................... 220
Actualizar los estilos: un ejemplo práctico ....................................................................................................... 221
Sobrecargar un estilo CSS para un campo .................................................................................................... 222
Modificar un estilo CSS para todos los campos ............................................................................................. 222
Estilos y texto enriquecido .............................................................................................................................. 222
Lección 7.2. Los cookies .................................................................................................................................... 224
Lo que va a aprender en esta lección… ........................................................................................................... 224
¿Qué es un cookie? ........................................................................................................................................ 225
¿Qué contiene un cookie? ........................................................................................................................... 225
Ejemplo práctico ........................................................................................................................................ 225
¿Cómo utilizar los cookies?.......................................................................................................................... 225
Lección 7.3. Transacciones y pagos securizados .................................................................................................. 227
Lo que va a aprender en esta lección… ........................................................................................................... 227
Asegurar las informaciones y las páginas mediante TLS/SSL ............................................................................. 228
Presentación .............................................................................................................................................. 228
Actualización de las transacciones aseguradas por el protocolo TLS/SSL ........................................................ 228
Transacciones aseguradas por TLS/SSL en un sitio WEBDEV ......................................................................... 228
Pago seguro .................................................................................................................................................. 228
Presentación .............................................................................................................................................. 228
Sistema de pago seguro en un sitio WEBDEV ............................................................................................... 229
Lección 7.4. Anclajes y Zoning ........................................................................................................................... 231
Lo que va a aprender en esta lección… ........................................................................................................... 231
Presentación ................................................................................................................................................. 232
Creación de una página en modo zoning ......................................................................................................... 232
WEBDEV 21 |9
Configurar el anclaje ...................................................................................................................................... 234
Lección 8.1. Los componentes internos .............................................................................................................. 238
Lo que va a aprender en esta lección… ........................................................................................................... 238
Presentación ................................................................................................................................................. 239
Paso a paso................................................................................................................................................... 239
Paso 1: Creación de un componente interno ................................................................................................ 239
Paso 2: Uso del componente interno ........................................................................................................... 243
Lección 8.2. Gestión automática de los errores ................................................................................................... 246
Lo que va a aprender en esta lección… ........................................................................................................... 246
Presentación ................................................................................................................................................. 247
Funcionamiento.......................................................................................................................................... 247
Colocación ................................................................................................................................................. 247
Tipos de errores a los que concierne ........................................................................................................... 247
Gestión automática de los errores: un ejemplo didáctico .................................................................................. 247
Lección 8.3. Importar/Exportar .......................................................................................................................... 250
Lo que va a aprender en esta lección… ........................................................................................................... 250
Importar elementos ....................................................................................................................................... 251
Exportar elementos ........................................................................................................................................ 251
Importaciones específicas .............................................................................................................................. 252
Importación de un proyecto WINDEV .......................................................................................................... 252
Importación de una página HTML ................................................................................................................ 253
Lección 9.1. Presentación .................................................................................................................................. 255
Lo que va a aprender en esta lección… ........................................................................................................... 255
Presentación ................................................................................................................................................. 256
Apertura del proyecto ................................................................................................................................. 256
Lección 9.2. Auditorías del proyecto ................................................................................................................... 257
Lo que va a aprender en esta lección… ........................................................................................................... 257
¿Qué es una auditoría? .................................................................................................................................. 258
Auditoría estática. .......................................................................................................................................... 258
Procedimiento no ejecutado ........................................................................................................................ 259
Elemento huérfano ..................................................................................................................................... 260
Consulta a optimizar ................................................................................................................................... 261
Limpieza del proyecto ................................................................................................................................. 262
Auditoría dinámica. ........................................................................................................................................ 262
Lección 9.3. Analizador de actuaciones ............................................................................................................... 265
Lo que va a aprender en esta lección… ........................................................................................................... 265
Presentación ................................................................................................................................................. 266
Lanzar el analizador de actuaciones ................................................................................................................ 266
Análisis del resultado ..................................................................................................................................... 266
Lección 9.4. Depuración de un proyecto ............................................................................................................. 271
Lo que va a aprender en esta lección… ........................................................................................................... 271
WEBDEV 21 |10
Presentación ................................................................................................................................................. 272
Utilizar el depurador ...................................................................................................................................... 272
Lección 10.1. Introducción ................................................................................................................................. 276
Lo que va a aprender en esta lección… ........................................................................................................... 276
Presentación ................................................................................................................................................. 277
¿Para qué pasar un sitio a modo HFSQL Cliente/Servidor? ................................................................................ 277
Lección 10.2. Establecimiento de una base de datos Cliente/Servidor ................................................................... 278
Lo que va a aprender en esta lección… ........................................................................................................... 278
Presentación ................................................................................................................................................. 279
Instalación de un servidor HFSQL local............................................................................................................ 279
Creación de un sitio utilizando una base de datos HFSQL Cliente/Servidor ......................................................... 279
Adaptación de un sitio para utilizar una base de datos HFSQL Cliente/Servidor .................................................. 280
Presentación .............................................................................................................................................. 280
Adaptación del ejemplo .............................................................................................................................. 280
Funcionalidades disponibles en modo HFSQL Cliente/Servidor .......................................................................... 283
Lección 10.3. Administrar una base de datos Cliente/Servidor .............................................................................. 284
Lo que va a aprender en esta lección… ........................................................................................................... 284
Presentación ................................................................................................................................................. 285
Configuración de los puestos .......................................................................................................................... 285
El Centro de Control HFSQL ............................................................................................................................ 285
Crear una cuenta usuario en el Centro de Control HFSQL ................................................................................. 286
Copia de seguridad de la base de datos .......................................................................................................... 290
Conclusión .................................................................................................................................................... 291
Lección 11.1. Gestor de fuentes(GDS) ................................................................................................................ 293
Lo que va a aprender en esta lección… ........................................................................................................... 293
Introducción .................................................................................................................................................. 294
GDS (Gestor de fuentes) ................................................................................................................................ 294
Principio del GDS ........................................................................................................................................ 294
Creación de la base de datos ...................................................................................................................... 295
Lección 11.2. Integración de un proyecto en el GDS............................................................................................ 296
Lo que va a aprender en esta lección… ........................................................................................................... 296
Integración de un proyecto en el GDS ............................................................................................................. 297
Añadir el proyecto en el GDS....................................................................................................................... 297
Apertura del proyecto desde el GDS ............................................................................................................ 300
Configuración del GDS ................................................................................................................................ 301
Lección 11.3. Manipular un proyecto en el GDS................................................................................................... 302
Lo que va a aprender en esta lección… ........................................................................................................... 302
Presentación ................................................................................................................................................. 303
Modificación de un parámetro del proyecto ..................................................................................................... 303
Modificar una página del proyecto. ................................................................................................................. 304
Modificación del elemento extraído .............................................................................................................. 305
WEBDEV 21 |11
Reintegración del elemento extraído ............................................................................................................ 306
Sincronización del proyecto ............................................................................................................................ 307
Modo desconectado (o nómada) ..................................................................................................................... 307
Administrador del GDS ................................................................................................................................... 307
Desconexión del GDS ..................................................................................................................................... 308
Anexo 1. Vocabulario ........................................................................................................................................ 310
Lo que va a aprender en esta lección… ........................................................................................................... 310
Principales términos utilizados ........................................................................................................................ 311
Anexo 2. Bases de programación ....................................................................................................................... 317
Lo que va a aprender en esta lección… ........................................................................................................... 317
Introducción. ................................................................................................................................................. 318
Declaración de los distintos tipos de variables. ................................................................................................ 318
Los distintos tipos de variables .................................................................................................................... 318
Declaración de las variables y su alcance. .................................................................................................... 318
Instrucciones de WLangage............................................................................................................................ 319
Instrucciones condicionales (código servidor y navegador)............................................................................ 319
Instrucciones de bucle ................................................................................................................................ 320
Comentarios .............................................................................................................................................. 321
Operadores básicos de WLangage .................................................................................................................. 321
Operadores lógicos ..................................................................................................................................... 322
Operadores de comparación........................................................................................................................ 322
Operadores de indirección .......................................................................................................................... 322
Procedimientos y funciones ............................................................................................................................ 323
Definición .................................................................................................................................................. 323
Procedimiento local .................................................................................................................................... 323
Procedimiento global y colección de procedimientos. .................................................................................... 323
¿Cómo elegir si un procedimiento es global o local?...................................................................................... 324
A propósito del paso de parámetros ............................................................................................................ 324
Llamada de un procedimiento ..................................................................................................................... 324
Creación de un procedimiento ..................................................................................................................... 324
¿Un ejercicio de aplicación? Su turno! .......................................................................................................... 325
Tratamientos de las cadenas (código servidor y navegador) ............................................................................. 325
Ejemplo práctico ........................................................................................................................................ 326
Principales manipulaciones sobre una cadena de caracteres. ......................................................................... 326
¿Un ejercicio de aplicación? Su turno! .......................................................................................................... 327
Tratamientos de los numéricos (código servidor y navegador) .......................................................................... 327
Ejemplo práctico ........................................................................................................................................ 327
Principales manipulaciones sobre los numéricos ........................................................................................... 328
¿Un ejercicio de aplicación? Su turno! .......................................................................................................... 328
Tratamiento de los monetarios (código servidor solamente) ............................................................................. 329
Ejemplo práctico ........................................................................................................................................ 329
WEBDEV 21 |12
Detalles ..................................................................................................................................................... 329
Mezcla de cadenas y numéricos................................................................................................................... 329
Tratamiento de las fechas y de las horas (código servidor y navegador) ........................................................... 330
Las fechas (código servidor y navegador) ........................................................................................................ 330
Ejemplo práctico ........................................................................................................................................ 330
Máscara de introducción y valor devuelto ..................................................................................................... 330
¿En qué día estamos? ................................................................................................................................. 332
¿En qué día estamos, pero el día y el mes en letras? .................................................................................... 332
¿Cuál es el número de días entre dos fechas? .............................................................................................. 332
¿Qué día de la semana es una fecha concreta? ............................................................................................ 333
Pequeño ejercicio práctico .......................................................................................................................... 333
Manipulación de las variables de tipo Fecha ................................................................................................. 333
¿Un ejercicio de aplicación? Su turno! .......................................................................................................... 334
Las horas (código servidor y navegador) ......................................................................................................... 334
Ejemplo práctico ........................................................................................................................................ 334
¿Qué hora es? ............................................................................................................................................ 335
¿Cuánto tiempo ha transcurrido entre dos horas? ......................................................................................... 335
¿Un ejercicio de aplicación? Su turno! .......................................................................................................... 336
Cálculos con las fechas y las horas.................................................................................................................. 336
Anexo 3. El editor de código: Preguntas y Respuestas ......................................................................................... 337
Lo que va a aprender en esta lección… ........................................................................................................... 337
Preguntas/Respuestas .................................................................................................................................... 338
Conclusión ........................................................................................................................................................ 341
WEBDEV 21 |13
Introducción
Preliminares
Atencion: Este manual es un curso de auto-formación. Es aconsejable que utilice la ayuda en línea cuando utilice
WEBDEV.
El manual del curso de auto-formación tiene por objeto hacerle descubrir WEBDEV, familiarizarle con los editores y
que aprenda los conceptos de WEBDEV.
Dedique algunas horas para seguir este curso y para aprender WEBDEV. Lo rentabilizará rápidamente!.
Si intenta iniciar el desarrollo de un sitio sin haber seguido este curso, perderá mucho más tiempo que las horas
dedicadas a seguir este curso de auto-formación.
El curso se ha diseñado para poder seguirse de dos formas:
Siguiendo todos los ejercicios detallados en las lecciones del curso (método aconsejado).
Si tiene prisa y tiene también una experiencia significativa, puede leer sin ejecutar los ejercicios (todas las
manipulaciones están ilustradas). Sin embargo, para que los conceptos se asimilen más rápidamente, es
preferible ejecutar las manipulaciones.
WEBDEV está en permanente evolución; las imágenes de las ventanas y de las páginas que ilustran el curso pueden
ser distintas de las ventanas mostradas por el producto durante las distintas manipulaciones.
Cada ventana de diálogo mostrada por WEBDEV propone un botón que permite acceder a la página de
ayuda correspondiente.
El menú de ayuda de los editores (opción “Ayuda” disponible en el panel “Inicio”, dentro del grupo “Ayuda en
línea” del menú de WEBDEV) le permitirá lanzar la ayuda en línea.
La ayuda en línea puede mostrarse:
o En un “navegador de ayuda” específico:
WEBDEV 21 |14
o En un navegador de internet, si dispone de acceso a internet:
La ayuda en línea de WINDEV, WEBDEV y WINDEV Mobile en internet está accesible desde
cualquier puesto que disponga de acceso a internet, sin que el producto tenga que estar
forzosamente instalado. Esta ayuda se actualiza regularmente.
Notas
WEBDEV 21 |15
Para lanzar directamente la ayuda en línea desde el producto:
1. En el panel “Inicio”, dentro del grupo “Entorno”, despliegue “Opciones” y selecciones la opción “Opciones
generales de WEBDEV”.
2. En la pestaña “Ayuda”, seleccione:
El modo de acceso a la base de ayuda
El contenido de la ayuda: ayuda común a WINDEV, WEBDEV y WINDEV Mobile o ayuda del producto en curso
de utilización.
Este símbolo indica la duración de la lección y sus ejercicios. Atención: el tiempo puede variar según su
experiencia.
Hay disponible un ejemplo para completar el curso. Los ejemplos están disponibles a través de la ventana
de inicio de WEBDEV.
Este símbolo presenta una “Astucia”: la lectura del texto asociado está vivamente aconsejada.
Este símbolo presenta una particularidad relacionada con Internet: la lectura del textos está vivamente
aconsejada.
Si ya conoce WEBDEV 20 …
Si conoce ya WEBDEV 20, el seguir este curso solo le reportará beneficios: será una buena ocasión de “revisar” las
posibilidades de WEBDEV!
WEBDEV 21 |16
Multimedia (Presentación de sociedad, sitios “escaparate”, …)
Intranet (logins, accesos securizados, …)
…
WEBDEV es un entorno de desarrollo completo que integra todas las herramientas necesarias para el ciclo de
realización de un sitio Internet o Intranet.
Contrariamente a otros lenguajes de desarrollo tradicionales, no es necesario buscar y reunir los módulos para poder
concebir, probar y subir (o “desplegar”) un sitio.
El L5G (lenguaje de quinta generación) de WEBDEV, el WLangage, le sorprenderá por su simplicidad. Unas pocas
horas son suficientes para aprender el lenguaje, una semana basta generalmente para mostrarle toda su potencia!
Al estar en francés, WLangage (también disponible en inglés), le hará ganar mucho tiempo!
WEBDEV 21 |17
CAPÍTULO 1
Descubriendo
WEBDEV
Lanzamiento de WEBDEV
Lance WEBDEV 21 (si no lo había hecho)
Si nunca había lanzado WEBDEV 21, se lanza un asistente de bienvenida:
Si tenía una versión antigua de WEBDEV, este asistente permite recuperar las configuraciones
existentes.
Si es un nuevo usuario, el asistente permite parametrizar su entorno.
Podrá de este modo elegir la configuración de pantalla utilizada y parametrizar los Centros de Control.
Para más detalles, consulte la ayuda en línea.
Si ya había lanzado WEBDEV 21, identifíquese si fuera necesario. Se abrirá el entorno de desarrollador.
Aparecerá la ventana de bienvenida. Esta ventana de bienvenida permite:
Crear un proyecto.
Abrir un proyecto existente.
Abrir un ejemplo.
Abrir un proyecto del curso de auto-formación.
Entorno de desarrollo
El editor
El entorno de desarrollo de WEBDEV está constituido de un interface específico y de varios editores que permiten
crear los distintos elementos de sus aplicaciones.
Así, el editor de páginas permite crear las páginas, el editor de informes permite crear los informes, …
Todos los editores tienen el mismo entorno:
Los distintos paneles de la cinta permiten acceder a las opciones de los distintos editores para el proyecto en curso.
Varios tipos de paneles están disponibles:
El panel en curso: La pestaña del panel aparece en gris claro y un trazo naranja se muestra arriba de la pestaña.
Los paneles contextuales, específicos del elemento en curso: el nombre del panel se muestra en azul.
Los paneles disponibles: El nombre del panel aparece en blanco.
La zona de las opciones:
En función del panel seleccionado, las opciones que se muestran en la cinta cambian. Hay disponibles varios tipos de
opciones:
Opciones a marcar
Botones a clicar
Botones flecha que permiten desplegar las opciones. Hay disponibles dos tipos de botones de flecha:
o Los botones de flecha que permiten solamente desplegar un menú.
o Los botones de flecha que permiten desplegar un menú (clic sobre la flecha), o efectuar una acción por
defecto (clic sobre el icono del botón).
Las opciones están reunidas por grupo. Cada grupo de opciones tiene un nombre y puede tener un botón de
agrupación . Este botón permite efectuar una acción específica según el grupo en curso: mostrar la descripción
del elemento en curso, mostrar la ayuda, …
En este curso, para designar una opción de menú, hablaremos de paneles y grupos.
Por ejemplo:
Para mostrar la ayuda, en el panel “Inicio”, en el grupo “Ayuda en línea”, clique sobre “Ayuda”.
WLangage
El WLangage es el lenguaje de programación común de WINDEV, WEBDEV y WINDEV Mobile.
Si no conoce este lenguaje, le aconsejamos que siga la lección “Bases de programación”. Esta lección presenta
rápidamente los distintos tipos de variables, las instrucciones básicas de WLangage, los tratamientos de las cadenas,
numéricos, fechas, horas, …
Ejemplo práctico:
Para comprender mejor la distinción entre los tratamientos de servidor y los tratamientos de navegador, hemos
preparado un ejemplo sencillo:
1. Lance WEBDEV 1 (si no lo había hecho previamente). Si es necesario, muestre la ventana de inicio del
WEBDEV: utilice la combinación de teclas [CTRL]+[>].
2. Abra el proyecto “Conceptos WebDev”. Para ello, en la ventana de inicio, clique en “Curso de auto-formación”
y seleccione el primer proyecto “Conceptos WebDev (Ejercicio)”.
(Ejercicio)”.
Todos los proyectos del curso de auto-formación son accesibles en este menú.
Si el mecanismo de UAC está activo en Windows, una ventana específica podría aparecer. Esta
ventana indica que el programa WD210Admin.exe se va a ejecutar en el puesto en curso. Dé el
permiso de ejecución. Este programa corresponde al administrador local WEBDEV que permite la
Notas
prueba de los sitios desarrollados con WEBDEV. Veremos sus funcionales más adelante en este
curso.
Abra la página “PAGE_Inscripcion” en el editor: doble clic sobre su nombre en el explorador del proyecto
El explorador del proyecto permite mostrar en el entorno la lista de todos los elementos
presentes en el proyecto. Estos elementos se reagrupan por tema: Páginas, Procedimientos, …
Para mostrar el explorador del proyecto:
Notas
Esta página contiene campos de introducción y un botón “Inscribirse”. El botón “Inscribirse” deberá realizar dos
cosas:
1. Verificar que todos los campos están rellenos.
2. Guardar los valores de los campos en la base de datos.
Visualicemos el código asociado al botón:
1. Seleccione el botón “Inscribirse”.
2. Muestre el menú contextual del botón (clic derecho) y seleccione la opción “Código”.
3. Se muestra el editor de código con los distintos elementos relacionados con el campo Botón.
Observemos el código mostrado: La distinción entre el código servidor y el código navegador se efectúa gracias a un
código de colores:
En verde, es el código navegador, es decir, el código que va a ejecutarse en el puesto del internauta.
En amarillo, es el código servidor, es decir el código que se va a ejecutar en el servidor.
En nuestro ejemplo, en el código en verde (código navegador), se efectuarán todas las verificaciones de entradas. Por
ejemplo, el campo “EDT_Nombre” no puede estar vacío. El código correspondiente es el siguiente:
Esta verificación se efectúa en código navegador porque es inútil devolver al servidor para verificar que los campos
están bien rellenos.
Las idas y vueltas inservibles se evitan de esta forma y la espera del internauta es limitada; el sitio es más fluido.
Después de ejecutar el código navegador, la página envía los valores introducidos al servidor. El servidor ejecuta
entonces el código servidor. En el código servidor, se puede ejecutar, por ejemplo, el tratamiento de las
informaciones recibidas.
En nuestro ejemplo, las informaciones añadidas se añaden a la base de datos mediante el siguiente código:
Esta operación no puede realizarse en código navegador, porque la base de datos es común a todos los usuarios del
sitio y está situada en el servidor.
Cierre la ventana de código (utilice el aspa arriba a la derecha).
Intranet/Extranet/Internet
Principios
Un sitio intranet o extranet es comúnmente considerado como una aplicación de gestión en modo Web, es decir,
una aplicación ejecutada en un navegador.
Esta aplicación Web puede presentar:
Funcionalidades de negocio destinadas a un usuario determinado.
Tratamientos que deberán ser securizados: cualquier persona no puede tener acceso a la aplicación.
La aplicación Web puede ser accesible:
Solo desde una red empresarial; en este caso se habla de un sitio Intranet.
Desde internet; en este caso se habla de un sitio Extranet.
En ambos casos, la aplicación Web está securizada por una gestión de logins, contraseñas, derechos, …
Un sitio Internet es un sitio con una destinación “pública” (pública de particulares o de profesionales).
Un sitio Internet deberá encontrarse fácilmente en la Web. Algunos ejemplos: sitio de presentación, sitio de venta on-
line, …
Para llevar el mayor número de internautas al sitio, es preciso que éste sea referenciable por los motores de
búsqueda. Para que los motores de búsqueda puedan referenciar correctamente cada página, aparece una restricción
complementaria: las páginas del sitio deberán ser accesibles directamente sin importar el momento. Pero esta
restricción es también una promesa de simplicidad para el internauta: puede copiar/pegar un enlace sobre una página
y así, reutilizar el enlace a su conveniencia.
¿Y en WEBDEV? (Clásico/AWP, PHP, Estático)
En WEBDEV, para hacer un sitio Intranet o Extranet, el modo “clásico” es el más apropiado debido notoriamente
a las siguientes funcionalidades: seguridad integrada, contextos automáticos.
Efectivamente, el modo clásico tiene la particularidad de tener sesiones automáticas. El identificador de la sesión
forma parte integrante de la URL. La dirección de las páginas depende entonces de este identificador que cambia a
cada conexión.
Inconveniente: los motores de búsqueda no pueden indexar este sitio.
En WEBDEV, para hacer un sitio Internet, puede elegir entre los siguientes modos:
El modo AWP (Active WebDev Page).
El modo de generación PHP.
El modo estático si su sitio lleva páginas definidas de antemano (no hay base de datos).
Ejemplo práctico.
A continuación, vamos a observar el funcionamiento de una página de Internet:
1. En el proyecto “Conceptos_WebDev” (que hemos abierto al principio de esta lección), abra la página
“PAGE_Internet” en el editor: doble clic sobre su nombre en el explorador del proyecto.
Para buscar rápidamente una página en el proyecto en curso, utilice la combinación de teclas
[CTRL]+[E]. Una ventana se muestra permitiendo realizar una búsqueda de todas las páginas
Astucia
que contengan las cadena de letras introducidas en la zona de búsqueda. Bastará con
seleccionar la página deseada y validar para que cada página que se abre en el editor.
2. Verificamos el tipo de la página:
6. Cierre el navegador.
DESARROLLO WEBDEV
Las páginas permiten mostrar o introducir en la pantalla las informaciones. El internauta puede
Notas
Estos ejemplos le permitirán comprender el funcionamiento de los sitios Internet/Intranet y le permitirán manipular su
primera base de datos.
Apertura del proyecto
Lance WEBDEV 21 (si no lo había hecho ya). Si es necesario, cierre el proyecto en curso para hacer aparecer la
ventana de inicio.
Abra el proyecto “Mis_Primeras_Páginas”.
Un proyecto corregido está disponible. Este proyecto contiene las distintas páginas creadas en
esta lección. Para abrir el proyecto corregido, en el panel "Inicio”, dentro del grupo “Ayuda en
Notas
2. La ventana de creación de un nuevo elemento se mostrará. Esta ventana permite crear todos los elementos
que pueden estar asociados a un proyecto.
3. Clique sobre “Pagina” y luego sobre “Página”. Se mostrará el asistente de creación de una página.
4. Seleccione “En blanco – Disposición simple” y valide (botón verde bajo de la ventana). La página se crea
automáticamente en el editor.
Para guardar la página que acabamos de crear:
1. Clique sobre en los botones de acceso rápido (puede utilizar también el atajo [CTRL]+[S]).
2. Aparecerá la ventana para guardar-
3. Introduzca el título de la página: “Formulario”.
Para cada página creada en el editor, WEBDEV genera varios tipos de ficheros:
Un fichero “WWH” que contiene la página para el editor de páginas. Este fichero se guarda
en el directorio del proyecto.
Un fichero “AWL” que corresponde a la descripción de la página para el motor WEBDEV en el
directorio EXE del proyecto.
Notas
Un fichero “HTM” que contiene el código HTML y el código JavaScript de la página destinada
a ser enviada al navegador. Este fichero está guardado en el subdirectorio
“\<NombreDelProyecto>_WEB\XX” del directorio del proyecto (un subdirectorio por idioma,
por ejemplo “FR” para el idioma francés, “UK” para el idioma inglés, …)
Creación de campos
Vamos a crear los distintos campos del formulario. Estos campos permitirán al usuario de rellenar los datos necesarios
para la inscripción.
El formulario está constituido por los siguientes campos:
Apellidos
Nombre
Domicilio
Email
Login
Contraseña
Todos estos campos son campos de entrada, en los que el usuario va a introducir los datos.
Para crear un campo de introducción:
1. Clique sobre el campo (simple clic): El texto pasa a edición. Si prefiere utilizar el teclado, basta con pulsar la
tecla [ESPACE] o la tecla [ENTER] para pasar el texto a modo edición.
2. Introduzca “Apellidos” y valide con la tecla [ENTER]. El texto se modifica automáticamente. El nombre del
campo es igualmente modificado: aparecerá en el texto de ayuda que aparece al pasar el ratón sobre el
campo: EDT_Nombre.
Observe bien el nombre del campo que WEBDEV propone por defecto: este nombre comienza
por las letras “EDT_”. Este prefijo se añade automáticamente porque el proyecto utiliza una carta
de programación.
La carta de programación permite definir un prefijo para cada tipo de objeto y así identificar
rápidamente el elemento manipulado:
Notas
Una página empieza por “PAGE_” (ya lo habíamos visto al guardar una página).
Un campo de edición empieza por “EDT_”-
Un botón comienza por “BTN_”, etc.
Si no quiere utilizar esta carta, basta con desmarcar: en la cinta, en el panel “Proyecto”, dentro
del grupo “Otras acciones”, despliegue “Carta” y desmarque la opción “Utilizar la carta”.
Acabamos de hacer una modificación simple sobre el campo de entrada: cambiar su texto.
Para modificar más en detalle las características del campo, basta con hacer doble clic sobre el campo.
Aparecerá una ventana de descripción del campo:
Atención: El primer campo que selecciona es importante, porque las opciones de alineamiento se
basan en:
El tamaño del primer campo seleccionado: Servirá de referencia para el tamaño de los
Notas
campos restantes.
La posición del primer campo seleccionado: Todos los campos seleccionados serán
alineados con respecto al primer campo seleccionado.
2. Muestre el panel “Alineación” del menú de WEBDEV. Este panel contiene todas las opciones de alineación
disponibles para los campos.
3. Deseamos que los bordes izquierdos y derechos de los campos estén alineados. Clique sobre la opción
“Justificado (Interno y Externo)”.
Si desconoce que alineación elegir, pase sobre las distintas opciones propuestas por el panel
“Alineación” de WEBDEV. Cuando pasa sobre la opción con el ratón, los campos seleccionados
en la página se posicionan automáticamente en función de la opción sobre la que se encuentra.
Notas
4. Guarde la página: Clique sobre en los botones de acceso rápido (o utilice el atajo de las teclas
[CTRL]+[S]).
La tecla de atajo [F4] permite repetir sobre los campos seleccionados la última modificación
efectuada. En nuestro caso, el cambio de color se repite automáticamente sobre el campo
Notas
“Contraseña”.
Prueba de la página
Lance la prueba de esta página (clique sobre el icono en los botones de acceso rápido). Podrá introducir
datos, pero estos datos no serán tratados ni guardados.
Cierre el navegador.
4. El nombre del fichero se rellena automáticamente con el nombre de la página. Vamos a modificar algunos
elementos:
Introduzca “Inscripción” en el nombre.
Introduzca “Inscripción” en el texto.
Introduzca “una inscripción” en el último campo.
5. Avance al paso siguiente (flecha amarilla bajo del asistente).
6. Seleccione los campos a recuperar. En nuestro caso, todos los campos de la página corresponden a un
registro.
Una clave permite un acceso más rápido para las búsquedas (clave con duplicados) y/o
Notas
asegurarse de que el valor de un registro solo puede guardarse una vez (clave única).
PageToFile ()
HAdd (Inscripcion)
Info (“Registro añadido”)
5. Cierre el navegador.
Verificación de la contraseña.
Para verificar la contraseña, vamos primero a crear el campo de introducción que permitirá al usuario introducir
nuevamente su contraseña. A continuación, introduciremos el código necesario para la verificación.
Cree un nuevo campo de entrada: puede por ejemplo hacer un “Copiar/Pegar” del campo “Contraseña”
Capítulo 1 – Descubriendo WebDev |42
existente en la página. Este campo tendrá de texto “Verificación” y será de tipo “Password”.
El código de verificación de la contraseña deberá introducirse en los tratamientos asociados al botón “Guardar”.
1. Clique sobre el botón “Guardar” y pulse la tecla [F2].
2. Esta verificación consistirá en comparar el valor introducido en el campo “Contraseña” y el introducido en el
campo “Verificación”. Para hacer esta verificación, el servidor no vale: esta verificación puede efectuarse
localmente en el navegador.
3. Vamos ahora a introducir el siguiente código en el tratamiento de navegador “Clic”:
1. Clique sobre en los botones de acceso rápido (también puede utilizar el atajo [CTRL]+[S]).
2. Se muestra la ventana para guardar el elemento.
Capítulo 1 – Descubriendo WebDev |43
3. Introduzca el título de la página: “Login”.
4. Valide.
Creación de los campos
La página de login contendrá los siguientes campos:
Dos campos de introducción:
o “Login” para introducir el login
o “Contraseña” para introducir la contraseña.
Dos botones:
o “Conectarse” para verificar el login y la contraseña.
o “Inscribirse” para abrir la página de inscripción (que ya hemos creado).
Ya hemos creado estos tipos de campo; he aquí un recuerdo de las manipulaciones a realizar:
Para crear un campo de introducción:
El campo “Contraseña” deberá ser de tipo “Password”. Para cambiar el tipo de campo de
Notas
1. En el panel “Creación”, dentro del grupo “Campos habituales”, clique sobre debajo de “Botón”.
2. Clique en la página para crear el botón (por ejemplo debajo de los campos de entrada). El campo está
creado.
3. Pulse sobre la barra espaciadora: el texto pasa a modo edición.
4. Introduzca el texto (“Conectarse” e “Inscribirse”) y valide con la tecla [ENTER]. El texto se modifica
automáticamente.
Obtendrá la página siguiente:
Aquí no se necesita ningún código: asociamos directamente en el editor del botón la acción a
Notas
Para el botón “Conectarse”, será necesario introducir el código WLangage permitiendo realizar la búsqueda:
1. Seleccione el botón “Conectarse” y muestre los tratamientos asociados (tecla [F2]).
2. Introduzca el siguiente código en el trtratamiento “Clic (Servidor)”:
Conclusión
Solamente realizando dos páginas, hemos visto numerosas posibilidades de WEBDEV:
Creación de campos: campos de entrada y botones.
Posibilidades de alineamientos y de organización de los campos en la página.
Añadir registros en los ficheros de datos.
Encadenamiento de páginas.
Búsqueda de registros en los ficheros de datos.
Uso de códigos servidor y navegador.
…
Tras esta visión general, en el próximo capítulo vamos a profundizar en el análisis y la definición de las características
de la base de datos antes de abordar el desarrollo de un sitio completo.
Mi primera
base de datos
Mi primera
base de datos
WEBDEV sabe gestionar perfectamente distintos formatos de base de datos (por no decir todos). Los formatos más
habituales son:
HFSQL, sistema de base de datos integrado con WEBDEV y proporcionado en estándar. La base de datos HFSQL
está disponible en modo clásico o cliente/servidor.
AS/400, Access, Sybase, Informix, …
Oracle, SQL Server, MySQL, xBase, ….
Todas las bases accesibles en lenguaje SQL bajo Windows.
Texto (ficheros ASCII).
Para acceder a los datos, hay distintas técnicas (llamadas “Modos de acceso”):
Acceso Nativo.
Acceso OLE DB.
Acceso ODBC directo.
Acceso EDBC vía OLE DB.
HFSQL
HFSQL es una base de datos a la vez muy potente, muy rápida y muy robusta.
HFSQL funciona bajo Windows y Linux, en móviles (iOS, Android, Windows), en las redes de cualquier tamaño y
cualquier tipo, y gestiona automáticamente centenares de accesos simultáneos.
HFSQL está disponible en versión clásica y versión cliente/servidor.
La difusión de HFSQL es libre y gratuita con los sitios WEBDEV.
HFSQL propone todas las funcionalidades de una base de datos, especialmente:
La explotación
Las transacciones
La replicación
Los triggers
Los procedimientos almacenados,
Los clusters, …
Para más detalles sobre el establecimiento de las funcionalidades, consulte la ayuda en línea.
En los distintos capítulos de este curso de auto-formación, vamos a manipular una base de datos HFSQL Clásica y
luego una base de datos HFSQL Cliente/Servidor.
Si utiliza un acceso OLE DB, deberá obligatoriamente instalar el MDAC en los puestos de usuario
Atención!
Todas las bases de datos no son accesibles a través de este método. Si desea utilizar este tipo de acceso, verifique
que existe un piloto OLE DB.
Las funciones WLangage SQL* y HLit* pueden utilizarse con este tipo de acceso.
Acceso ODBC vía OLE DB
Resumiendo se trata de una mezcla de OLE DB y de ODBC. Esta técnica es la más “pesada” y la menos eficaz en
término de realizaciones. Es totalmente desaconsejable para bases de pequeño tamaño.
Las funciones WLangage SQL* y HLit* pueden utilizarse con este tipo de acceso.
4. Por defecto, WEBDEV propone crear este proyecto en el directorio “\Mis sitios\Mi_Sitio_WebDev”. Puede
conservar este emplazamiento o modificarlo mediante el botón […].
Cuando desarrolla para la Web, es preferible evitar los caracteres acentuados en el nombre de
Notas
Para el resumen del proyecto, introduzca “El proyecto tiene por objetivo gestionar los productos”.
5. Los distintos apartados del asistente se muestran en el margen derecho. Puede pasar rápidamente desde un
punto a otro clicando sobre él. Los otros apartados de la parte “Descripción” no son fundamentales, clique
directamente en “Cartas”.
Los ambientes permiten armonizar el aspecto visual de un sitio y permitir que los cambios de
aspecto más sencillos y más rápidos.
Notas
El ambiente proporciona las imágenes, las fuentes, la textura, la forma de los botones y los
estilos disponibles para el proyecto.
Seleccione “Evolution”.
8. Vamos ahora a dar las informaciones concernientes a la base de datos. Clique directamente en “Base de
datos”.
9. Seleccione la opción “Si, Crear una nueva base de datos” y valide. El asistente de creación de análisis se
lanza.
Para seguir las distintas lecciones de este capítulo y optimizar su aprendizaje de WEBDEV, es
aconsejable crear el proyecto “Mi_Sitio_WebDev”.
Un ejemplo corregido está disponible en cualquier momento para validar las operaciones
Notas
efectuadas.
Para abrir el proyecto corregido, en el panel “Inicio”, en el grupo “Ayuda en línea”, despliegue
“Guia de auto-formación” y luego seleccione “Mi sitio WebDev (Corrregido)”.
Para crear los distintos ficheros de este análisis, vamos a utilizar distintos métodos disponibles en WEBDEV.
2. Se muestra la lista de ficheros de datos predefinidos. Vamos a crear el fichero “Cliente”. En la lista de ficheros
de datos, seleccione “Cliente”. Pase a la etapa siguiente.
3. El asistente propone una lista de los campos a integrar en el fichero Cliente. Esta lista es impresionante por lo
que permite gestionar numerosos tipos de ficheros Cliente.
4. Clique sobre “Ninguno” para des-seleccionar todos los campos. Luego, marque solamente los siguientes
campos: IDCliente, Sociedad, Nombre, Apellidos, Direccion, CodigoPostal, Poblacion, EstadoDepartamento,
Pais, Telefono, Movil, Email.
5. Pase a la siguiente etapa del asistente.
6. Valide el asistente. El fichero “Cliente” se crea automáticamente en el editor de análisis.
También puede crear un fichero de datos directamente desde el editor de análisis: en el panel
Notas
4. Vamos a crear el fichero “Pedido”. Introduzca su nombre, ”Pedido”, en el asistente. Este nombre se utilizará:
Para manipular el fichero de datos en programación. La variable asociada al fichero será “Pedido”.
Para construir el nombre del fichero de datos físico asociado (fichero “Pedido.fic”).
Automáticamente, aparecerán el texto y la descripción de los elementos representados por los registros del
fichero de datos.
En el asistente, el campo “Un registro representa” permite tener un texto claro de la descripción
de los enlaces entre los ficheros de datos. Automáticamente, un texto se propone a partir del
Notas
Vamos a introducir los campos del fichero “Pedido”. En la ventana de descripción del fichero de datos, puede observar
que ya se ha creado un campo automáticamente: “IDPedido”. Este campo corresponde al identificador automático del
fichero de datos. Este campo se compone con las letras “ID” y el nombre del fichero.
Vamos a crear los restantes campos del fichero de datos.
En primer lugar, vamos a crear el campo “Fecha”. Este campo contendrá la fecha del pedido.
1. En la ventana de descripción de los campos, doble clic sobre la columna “Nombre” de la primera línea vacía.
Esta columna pasa automáticamente a modo introducción. Introduzca “Fecha”.
2. Clique en la columna “Texto”. Automáticamente aparece el nombre del campo. Vamos a modificar el texto del
campo clicando debajo: introduzca “Fecha del pedido”. En la columna “Tipo”, aparecerá seleccionado de
modo automático el tipo “Texto”. Despliegue la lista y seleccione el tipo “Fecha”.
3. Este campo será una clave (índice) de nuestro fichero de datos. Las claves permite acelerar el acceso y las
clasificaciones.
Capítulo 2 – Mi primera base de datos |59
En el caso de una base de datos con formato SQL, el motor utiliza mejor los índices.
En el caso de un recorrido secuencial en un fichero de datos, hay que indicar el índice para el recorrido (es
decir, la clave).
5. También es igualmente necesario definir el sentido del recorrido de la clave. El sentido del recorrido permite
definir la clasificación por defecto de este campo. En nuestro caso, para efectuar el recorrido sobre esta clave,
la clasificación por defecto será “ascendiente”.
Ahora vamos a crear el campo “Situacion” que permite conocer la situación del pedido.
1. Posiciónese sobre una nueva línea de la tabla e introduzca:
El nombre: Situacion
El texto: Situación del pedido
El tipo: Selector, Lista, Combo. En la ventana que se abre, puede seleccionar el tipo de campo creado por
defecto para este campo. Aquí, será un selector. Valide la ventana.
2. En la parte inferior de la pantalla, clique sobre la doble flecha para mostrar los parámetros del campo
enlazados con el campo seleccionado.
Las informaciones que se introduzcan aquí se utilizarán automáticamente cuando se creen las páginas
enlazadas al fichero de datos. Aquí encontrará el tipo de campo y el texto.
Vamos a introducir las distintas opciones correspondientes a la situación del pedido en la pestaña
“Contenido”:
Clique en la pestaña “Contenido”.
La opción 1 corresponderá a “En espera”. Introduzca “En Espera” en el campo de entrada a derecha del
número 1.
Introduzca “Validado” en el campo de introducción a la derecha del número 2.
Clique sobre el botón “+” para añadir una nueva opción en el selector.
Introduzca “Anulado” en lugar de “opción 3”.
Un fichero CSV es un fichero de texto que utiliza un formato específico. Este fichero contiene
datos para cada línea. Estos datos están separados por un carácter de separación (generalmente
Notas
A partir del fichero CSV que contiene los datos, WEBDEB creará:
La descripción del fichero de datos en el análisis.
El fichero de datos HFSQL con los datos existentes en el fichero CSV.
Para importar un fichero (CSV u otro) en el análisis, también se puede realizar directamente un
“Drag and Drop” del fichero CSV (existente en el explorador de ficheros de Windows) hacia el
Astucia
11. El contenido del fichero CSV se convertirá automáticamente al formato HFSQL. El asistente propondrá crear el
fichero HFSQL en el directorio del proyecto. Conserve las opciones propuestas y pase a la etapa siguiente.
6. Valide la ventana de descripción de los campos y luego la ventana de descripción del fichero.
Importación directa de ficheros de datos existentes
El último método que vamos a ver para crear ficheros de datos es la simple importación de ficheros de datos HFSQL
que ya existen. Vamos a utilizar este método para crear el fichero “Producto”.
Para importar los ficheros de datos HFSQL:
1. En el explorador de ficheros de Windows, abra el subdirectorio siguiente de WEBDEV:
“\Autoformacion\Ejercicios\Mi_Sitio_WebDev”.
Capítulo 2 – Mi primera base de datos |64
2. Seleccione el fichero “Producto.fic”.
3. Efectúe un “Drag and Drop” del fichero “Producto” hacia el editor de análisis WEBDEV.
4. Se lanza el asistente de importación. Valide las distintas pantallas. El fichero de datos aparecerá en el editor
de análisis.
Todos los ficheros de datos necesarios, ya están presentes en el editor de análisis.
Ahora vamos a crear las relaciones entre los ficheros de datos. Una relación permite definir las constantes de
integridad (cardinalidades) entre dos ficheros de datos.
Crearemos a continuación la relación entre el fichero “Cliente” y el fichero “Pedido”: un cliente puede tener uno
o varios pedidos, y cada pedido está relacionado con un cliente.
1. En el panel “Análisis” (existente en la cinta), en el grupo “Creación”, clique sobre “Nueva relación”. El cursor
del ratón se transforma en lápiz.
2. Clique sobre el fichero “Cliente” y luego sobre el fichero “Pedido”.
3. Se lanza el asistente de creación de relación.
4. Responda a las cuestiones planteadas por el asistente:
5. Pase a la etapa siguiente. El asistente propone automáticamente la clave utilizada para la relación (IDCliente).
6. Muestre la pantalla siguiente del asistente. El asistente propone crear la clave “IDCliente” en el fichero Pedido
para almacenar el cliente correspondiente al pedido.
Ahora vamos a modificar el fichero de relación que ha creado WEBDEV. En efecto este fichero contendrá las líneas del
pedido.
Vamos a:
Modificar el nombre del fichero.
Modificar el nombre de sus campos.
Añadir campos para conocer las cantidad de productos pedidos y el total de la línea de pedido.
Primero vamos a renombrar el fichero. Ya hemos hecho una manipulación semejante cuando hemos cambiado
el texto del fichero importado. Pero aquí, no solo vamos a modificar el texto: vamos también a renombrar el
fichero físico enlazado con la descripción del fichero.
1. Seleccione el fichero “Pedido_Producto”. En el menú contextual, seleccione la opción “Descripción del fichero
de datos”.
2. En la ventana que se muestra, modifique:
1. Clique sobre el icono para mostrar la descripción de los campos del fichero de datos.
2. Este fichero tiene 3 campos. Posicione la cinta de selección en el campo “IDPedido_Referencia”. Este campo
es una clave compuesta.
7. Valide la descripción de los campo (botón verde bajo de la pantalla) y la del fichero.
El análisis es ahora el siguiente:
El asistente de modificación automática se lanza. Valide las distintas pantallas hasta que la aparezca la pantalla
que lista los ficheros a tener en cuenta:
El fichero ModoLiquidacion necesita una actualización. Conserve este fichero seleccionado.
El fichero Producto se ha copiado en el directorio del proyecto. WEBDEV propone asociarlo a este análisis.
Marque el fichero. Pase a la etapa siguiente.
El asistente propone realizar una copia de seguridad de los ficheros de datos existentes. No cambie nada y
pase a la etapa siguiente.
El asistente propone introducir las contraseñas de protección de los ficheros de datos modificados por la
modificación automática. Conserve las opciones por defecto y pase la etapa siguiente.
La lista de ficheros de datos a modificar aparecerá. Valide el asistente.
Se ha realizado la actualización de los ficheros de datos.
Cierre el editor de análisis.
Acaba de descubrir los principales pasos para la creación de un análisis.
Cuando su análisis esté descrito y generado, ya podrá:
Crear un sitio completo mediante el RAD (Rapid Application Developpement). Para más detalles, consulte la
ayuda en línea.
Crear un sitio completo totalmente personalizado. Este método se utilizará para desarrollar un sitio completo
basado en una base de datos en el capítulo 3 de este curso de autoformación. Este sitio se basará en un
análisis correspondiente al que acabamos de crear en este capítulo.
Sitio Intranet
con datos
Referenciación:
En un sitio dinámico WEBDEV, solo la página de inicio el sitio puede estar referenciada.
Notas
El capítulo 4 nos permitirá realizar la parte internet del sitio. Será posible listar los nuevos productos y visualizar su
detalle.
El capítulo 5 nos permitirá continuar el desarrollo del sitio, proponiendo las siguientes funcionalidades:
Impresión de informes
Gestión de niveles de uso.
Envío de emails
Gestión multi-lenguaje
…
El desarrollo de este sitio nos permitirá también abordar el despliegue del sitio en el capítulo 6. Veremos entonces los
puntos más importantes del desarrollo de un proyecto WEBDEV.
Hemos visto ya en el capítulo anterior como crear un proyecto y un análisis. No volveremos sobre ello. Ahora
trabajaremos en un proyecto que ya contiene un análisis y ficheros de datos rellenos. El análisis del sitio es una
versión mejorada del análisis que hemos creado en el capítulo anterior.
Este es el análisis utilizado.
Referenciación:
Corregido
En un sitio dinámico WEBDEV, solo la página de inicio el sitio puede estar referenciada.
La referenciación de un sitio WEBDEV está presente en la “Lección 5.6. La Referenciación”.
4. En los modelos predefinidos, seleccione “Simple” y luego, en la lista a la derecha, seleccione el modelo
“Menu”: Se trata de un modelo con un una cabecera arriba, un menú y el cuerpo de la página debajo.
Es aconsejable utilizar los modelos por reutilizar y armonizar el interface de sus sitios.
5. Verifique que la opción “Generar un modelo y una página” está bien marcado.
6. Valide el asistente (botón verde).
7. Aparece la nueva página en el editor.
Esta página contiene por defecto distintos campos que permiten visualizar las posibilidades de presentación. En
nuestro caso, vamos a eliminar los campos:
1. Seleccione los campos presentes en la página (con la combinación de teclas [CTRL]+[A]).
En el editor, por defecto, solo los campos de la página son accesibles. No se pueden editar los
campos y los tratamientos del modelo. Utilizando el atajo [CTRL]+[A], solo se seleccionan los
Notas
zona (que puede contener varios campos) repetida un cierto número de veces.
Los datos contenidos en cada zona así repetidos, se entiende que son distintos.
Detengámonos un instante en el campo que acabamos de crear: los datos ya se pueden ver en el campo, ahora
mismo en el editor.
Este es el concepto del “Live Data”: El contenido de los ficheros existentes en el puesto de desarrollo se utiliza en
las páginas o los informes manejados por el editor. Esta funcionalidad es muy interesante, por ejemplo, para poder
determinar el tamaño de los campos existentes en una página.
Ahora ocultaremos el campo que contiene el identificador del producto. ¿Por qué ocultarlo y no simplemente
eliminarlo? Simplemente porque este identificador nos será útil en la continuación de nuestro desarrollo.
1. Seleccione el campo “LIB_IDProducto”. Este campo corresponde al identificador (campo con un número
arriba en la zona de repetición).
2. Muestre la ventana de descripción del campo (opción “Descripción” del menú contextual).
3. En la pestaña “IHM”, desmarque la opción “Visible”.
4. Valide la ventana de descripción del campo.
Modificaremos ahora el menú de nuestra página, para poder mostrar la opción que permita listar los productos.
El menú se encuentra en el modelo de la página. Vamos a modificar el modelo de páginas.
1. Muestre el menú contextual del menú (clic derecho) y seleccione la opción “Abrir el modelo”.
4. Muestre la ventana de descripción de la opción (en el menú contextual, selección “Descripción de la opción”).
5. En la pestaña “General”:
Introduzca el texto de la opción: Sustituya “Opción 1” por “Lista de los productos”.
En el combo “Acción”, seleccione la acción “Mostrar la página PAGE_Lista_de_Productos”-
Valide la ventana de descripción de la opción.
6. Utilice la tecla [ESC] para salir del modo de edición.
1. En la cinta original del modelo, clique sobre : este botón permite propagar las modificaciones del modelo
a todas las páginas que lo utilizan.
despliegue).
3. Seleccione con la ayuda del ratón la totalidad de los campos mostrados en el panel (excepto el campo
IDProducto). Puede por ejemplo utilizar el lazo del ratón o la multi-selección manteniendo pulsada la tecla
[CTRL].
4. Realice un “Drag and Drop” (Arrastrar/desplazar) de estos campos hacia la página que acaba de crear.
Esta pestaña permite ver que el campo de entrada actual está enlazado con el campo “Referencia” del fichero
de datos “Producto”.
6. Cierre la ventana de descripción.
7. Guarde la página ([CTRL]+[S]).
Ubique los campos en la página para poder obtener el siguiente Interface:
Ahora vamos a aprovechar para alinear los campos de entrada de la página y darles a todos el mismo tamaño:
1. Seleccione el campo “Descripción”, y a continuación todos los restantes campos de entrada de la página
(manteniendo pulsada la tecla [CTRL] y clicando sobre los distintos campos). El primer campo seleccionado es
el que servirá de referencia para el tamaño de los otros campos.
2. Muestre el panel “Alineación” del menú de WEBDEV. Este panel contiene todas las opciones de alineación
disponibles para los campos.
3. Nosotros queremos que los bordes externos e internos de los campos estén alineados. Clique sobre la opción
“Justificar (Int y Ext)”.
4. Guarde la página.
Mostrar los datos en la página
La página “Ficha” deberá mostrar el producto seleccionado en el campo Zona de repetición. En el código de la página,
vamos ahora a introducir el código que permita:
Buscar el producto a mostrar.
Mostrar los datos en la página.
Para mostrar los datos en la página:
Por defecto, todo botón creado en una página es de tipo SUBMIT: este botón envía el valor de
los campos de la página al servidor. Este es el caso más habitual.
Otros dos modelos están disponibles:
Notas
El Download consiste en lo contrario: copiar un fichero del servidor hacia el puesto cliente.
WEBDEV propone gestionar el upload de los ficheros mediante dos campos específicos:
Un campo Upload que permite la carga de un único fichero.
Un campo Upload que permite la carga de varios ficheros.
Notas
En este ejemplo, el usuario cargará un solo fichero a la vez, por lo que usaremos el campo
Upload mono-fichero.
Este código utiliza “…”. Estos tres puntos permiten efectuar un return a la línea en una línea de
código. Aquí se utilizan como ejemplo.
Notas
4. Examinemos el código:
La función UploadCopyFile permite guardar en el servidor el fichero cargado por el usuario. En nuestro caso
el fichero se copia en el directorio de datos (conocido por medio de la función fDataDir). El nombre del
fichero se conserva.
El camino de la imagen cargada se memoriza en una variable global gsCaminoImagen.
Para más detalles sobre las condiciones de uso de las variables locales y globales, consulte los
anexos.
La función fSep permite recuperar el separador que utiliza el sistema operativo del servidor (“\” para
Windows, “/” para Linux). Así, su sitio es totalmente independiente del servidor sobre el que se instale.
La imagen cargada se muestra inmediatamente en el campo imagen IMG_Visual.
5. Durante la introducción y el registro del código, la variable gsCaminoImagen aparecerá en rojo y un error
de compilación aparecerá en el panel de errores: “Identificador ‘gsCaminoImagen’ desconocido o inaccesible”.
Efectivamente, no habíamos declarado esta variable global.
6. Para declarar la variable global:
Muestre el código de declaración de globales para la página (por ejemplo, en el editor de código, en el panel
“Código”, en el combo que lista todos los tratamientos, seleccione el tratamiento “Declaraciones globales”).
Déjese guiar por el asistente de la introducción de código: desde que abre el paréntesis “(“, se
abre una lista desplegable proponiendo el nombre de todas las páginas existentes en el
proyecto. Bastará con seleccionar la página con el teclado o con el ratón.
Notas
Por defecto, ATT_IDProducto devuelve el valor del atributo para la línea clicada. El código podría
entonces escribirse simplemente:
Notas
En el explorador del proyecto: hay que seleccionar la página deseada, mostrar el menú
contextual y seleccionar la opción “Primera página dinámica del proyecto”.
Cuando se ha definido una primera página del proyecto, un pequeño 1 rojo aparece delante del
nombre de la página en el explorador del proyecto.
2. Se lanza el sitio.
3. En la lista de productos:
Clique sobre el enlace “Modificar”.
La página de detalle del producto se muestra:
IF gnIDProducto = -1 THEN
HReset (Producto)
ELSE
HReadSeekFirst (Producto, IDProducto, gnIDProducto)
IF HFound (Producto) = False THEN
// Se muestra la lista de los productos
PageDisplay (Page_Lista_de_Productos)
END
END
FileToPage()
Examinemos este código:
Si el identificador del producto vale -1, estamos en el caso de la adición de un producto. En este caso, se
ejecutará la función HReset. La función HReset inicializa las variables de los campos del fichero “Producto”
con los valores por defecto para generar un nuevo registro.
Si el identificador del producto es distinto de -1, nos encontramos el código que permite abrir una ficha en
modificación.
6. Cierre la ventana de código.
La gestión de la adición de un registro deberá igualmente realizarse a nivel del botón de validación
1. En la página “PAGE_Ficha_del_Producto”, seleccione el botón “Validar”.
2. Muestre los tratamientos asociados al botón (tecla [F2]).
3. El código presente en el tratamiento de clic del navegador no deberá cambiarse: las verificaciones a efectuar
son siempre las mismas. Solo deberá modificarse el código servidor.
4. En el tratamiento “Clic de”, sustituya el código por el siguiente:
PageToFile()
IF gsCaminoImagen <> “” THEN
Producto.visual = fLoadBuffer (gsCaminoImagen)
END
IF Producto..NewRecord THEN
HAdd (Producto)
ELSE
HModify (Producto)
END
PageDisplay (PAGE_Lista_de_Productos)
Examinemos este código:
La propiedad ..NewRecord permite conocer si el registro en curso deberá crearse.
Si la función HReset se ha llamado anteriormente, la propiedad devuelve True (caso de un nuevo
producto) y el registro deberá crearse por la función HAdd.
En caso contrario, el registro en curso existe ya y deberá modificarse con la función HModify.
La función HAdd añade el registro en el fichero de datos. Esta función toma los valores en memoria y
escribe el contenido de los campos del fichero en el mismo fichero de datos. Los índices se actualizan
inmediata y automáticamente. Aquí, el fichero de datos se sobreentiende que es el fichero “Producto”.
5. Guarde las modificaciones ( o [CTRL]+[S])
6. Cierre la ventana del código.
Ahora vamos a modificar el menú de la página para permitir al usuario añadir un nuevo producto.
1. Sitúese en la página “Lista de productos”: clique en el botón “PAGE_Lista_de_Productos” en la barra de
botones.
2. Muestre el menú contextual de un botón y seleccione “Abrir el modelo”.
3. Seleccione el menú
4. Clique sobre la opción “Opción 2”. Un cuadro amarillo aparecerá alrededor del menú. Este cuadro amarillo
indica que el menú está en modo “Edición”: puede modificarse.
5. Muestre la ventana de descripción de la opción (opción “Descripción de la opción” en el menú contextual).
6. En la pestaña “General”:
Introduzca el texto de la opción: sustituya “Opción 2” por “Añadir un producto”.
Capítulo 3 – Sitio Intranet con datos |97
En la zona Acción, seleccione la acción “Mostrar la página PAGE_Ficha_del_Producto”.
7. Valide. La opción del menú aparece:
8. En la cinta naranja del modelo, clique sobre para propagar las modificaciones del modelo a todas las
páginas que utilizan el modelo.
9. En nuestro caso, se proponen las dos páginas del proyecto. Valide la ventana de actualizar el modelo.
10. Cierre el modelo de páginas.
Podremos ahora probar a añadir un producto.
Prueba de adición de un producto
Para realizar la pruebaa de adición de un producto
Sitio Internet
con datos
Referenciación
En un sitio AWP WEBDEV, todas las páginas del sitio pueden ser referenciadas.
Notas
El capítulo 5 nos permitirá continuar el desarrollo del sitio, proponiendo las siguientes funcionalidades:
Impresión de informes.
Gestión de niveles de uso.
Envío de emails.
Gestión multi-lenguaje.
…
El desarrollo de este sitio nos permitirá también abordar el despliegue del sitio en el capítulo 6.
Recuerde: Vamos a trabajar sobre un proyecto asociado a un análisis y que ya tiene rellenos los ficheros de datos.
Este es el análisis que se utiliza:
enlazar la parte Internet e Intranet del sitio (párrafo “Enlace del sitio Internet y del sitio
Intranet”).
Hay disponible un proyecto corregido. Este proyecto contiene las distintas páginas creadas en
Corregido
esta lección. Para abrir el proyecto corregido, en el panel “Inicio”; en el grupo “Ayuda en línea”,
despliegue “Guía de auto-formación” y luego seleccione “Sitio WebDev Completo (Corregido)”.
Verifique que la opción “Generar un modelo y una página” esté bien marcado.
Valide el asistente.
2. La nueva página aparece en el editor, con los campos propuestos por defecto. Elimine estos campos:
Seleccione los campos presentes en la página (con la combinación de teclas [CTRL]+[A]).
Elimine los campos (Tecla [SUPR]).
3. Guarde la página: Clique sobre en los botones de acceso rápido.
4. En la ventana que se muestra, indique el título de la página: “Lista de novedades”.
5. Valide para guardar la página “PAGE_Lista_de_novedades”.
Esta página deberá poder referenciarse. Para ello, deberá generarse en modo AWP:
1. Muestre la ventana de descripción de la página: muestre el menú contextual y seleccione “Descripción”.
2. Marque la opción “Generación en modo AWP (sin contexto automático)”.
4. Muestre la descripción del campo Imagen para modificar las características del campo (doble clic sobre el
campo).
5. Modifique:
El nombre del campo: IMG_Visual
El tipo de la imagen: “Desde una base de datos: memo (velocidad media)”. En efecto, la imagen del producto
está almacenada en forma de memo en un campo del fichero de datos Producto.
El modo de mostrar la imagen: “Homotético centrado” con la opción “Visualización de alta calidad” marcada.
6. Valide.
Para crear el campo Enlace:
1. En el panel “Creación”, dentro del grupo “Campos habituales”, clique sobre “Enlace”.
2. Clique en el campo Zona de repetición, bajo de la imagen para crear el enlace.
3. Muestre la descripción del campo Enlace para modificar las características del campo (doble clic sobre el
campo).
3. Muestre la descripción del campo Etiqueta para modificar las características del campo (doble clic sobre el
campo).
4. Este campo tiene por nombre “LIB_Producto”.
5. Valide la ventana de descripción del campo.
Para rellenar los campos existentes en la zona de repetición y modificar sus características en cada repetición, vamos
a crear los atributos.
repetición. Por ejemplo, si en cada repetición el campo PRECIO debe cambiar de valor y de
color, será necesario definir dos atributos distintos sobre el mismo campo.
3. Valide
Capítulo 4 – Sitio Internet con datos |114
4. Guarde las modificaciones ( o [CTRL]+[S]).
¿Qué deberá hacer la página?
La página que estamos a punto de crear, está destinada a mostrar las características del producto actualmente
seleccionado en el campo Zona de repetición.
En nuestro caso, esta página mostrará el contenido de los distintos campos existentes en el fichero de datos
“Producto”.
Vamos primero a indicarle a la página cual es el producto que deberá mostrar. Para ello, hay que declarar un
parámetro en la página. Este parámetro se traspasará por la URL.
Para declarar un parámetro en la página:
1. Utilice la tecla [F2]. El editor de código mostrará los distintos tratamientos de la página.
2. En el tratamiento “Declaraciones globales”, introduzca el siguiente código:
PROCEDURE MyPage (gnIDProducto is 8-byte int)
3. Examinemos este código:
La palabra clave PROCEDURE en el tratamiento “Declaraciones globales” permite asociar un procedimiento a
la apertura de la página.
El procedimiento tiene por nombre “MyPage”. En la ejecución, esta palabra clave se sustituirá por el nombre
de la página en curso.
El procedimiento espera por parámetro la variable gnIDProducto que es un entero de 8 bytes. Esta variable
corresponde al identificador del producto a mostrar en la página. Esta variable es del mismo tipo que el
campo IDProducto correspondiente, descrito en el fichero Producto. Este parámetro contiene el valor que
estará presente en el URL.
4. Cierre el editor de código. Vamos ahora a crear los distintos campos de la página.
Creación de los campos
Vamos ahora a crear los distintos campos de entrada que permitirán visualizar en la página las distintas informaciones
correspondientes al producto seleccionado.
En el capítulo anterior, vimos como crear los campos mediante un “Drag and Drop” desde el panel del análisis. En
este capítulo, vamos a crear los campos primero, y luego los asociaremos a los campos correspondientes en el fichero
de datos.
Vamos a crear los siguientes campos:
Un campo imagen.
Etiquetas simples para la etiqueta del producto, su precio y su referencia.
Un texto enriquecido para la descripción del producto.
Para crear el campo Imagen:
1. En el panel “Creación”, en el grupo “Campos habituales”, clique sobre “Imagen”.
2. Clique en la página (por ejemplo arriba a la izquierda).
3. Muestre la descripción del campo Imagen para modificar las características del campo (doble clic sobre el
campo).
Este campo tiene por nombre “IMG_Imagen_Producto”.
Su tipo es “Desde una base de datos: memo (velocidad media)”.
El modo de visualización: “Homotético centrado sin agrandar”.
Para simplificar el posicionamiento de los campos, pulse la tecla[F7]. Al pulsar esta tecla se
puede ver la zona ocupada por el campo, una segunda pulsación en esta tecla permite mostrar
un marco alrededor del campo (solo en edición).
Notas
Así es posible ver el cuadro del campo y así posicionar sencillamente los campos unos con
respecto a otros.
Esta funcionalidad es muy útil sobre todo para los campos que no tienen borde.
Primero, vamos a modificar la página “PAGE_Lista_de_Novedades” para que el enlace abra la página de
descripción del producto:
1. Sitúese en la página “Lista de Productos”: Clique en el botón “PAGE_Lista_de_Novedades” en la barra de
botones.
2. Muestre la ventana de descripción del campo Enlace: doble clic sobre el campo.
3. En la pestaña “General” de la ventana de descripción, en la zona “Acción” seleccione “Mostrar la página
PAGE_Detalle_del_producto”.
4. Clique sobre el botón “Parametros”. Vamos a definir el parámetro a pasar a la página para mostrar el detalle
del producto seleccionado.
5. En la ventana que se muestra, buscaremos el nombre del parámetro que hemos declarado en el tratamiento
“Declaración de globales” de la página (gnIDProducto). Hay que seleccionar el campo que contiene el valor
del parámetro. En nuestro caso, el identificador del producto está contenido en el atributo “ATT_ID”.
6. Seleccione “ATT_ID” y valide.
Atención: En una zona de repetición, el valor no puede estar contenido en el campo, pero es en
Notas
Recuerde: Cuando se crea un sitio, es posible elegir un ambiente. Los ambientes permiten
armonizar el aspecto visual de un sitio y realizan los cambios de aspecto más sencillamente y
más rápidos.
El ambiente proporciona las imágenes, las fuentes, la textura, la forma de los botones y los
Notas
Los rectángulos de colores en la vista previa permiten cambiar el color de fondo. Así se puede
Astucia
El prefijo “class-“ indica que es una clase CSS. Este atributo significa que este estilo será aplicado sobre todos
los elementos que tengan el atributo HTML “class”.
5. Conserve todos los estilos propuestos y valide. Los estilos se importarán y están disponibles en WEBDEV.
Aplicar los estilos CSS
Vamos ahora a aplicar los distintos estilos a los campos de la página “PAGE_Detalles_del_producto”.
1. Sitúese sobre la página “PAGE_Detalles_del_producto”.
2. Muestre la ventana de descripción del campo “LIBF_Precio” que muestra el precio del producto (doble clic
sobre el campo).
3. En la pestaña “Estilo”:
Seleccione el elemento “Zona de visualización (CSS)”.
Seleccione el estilo “class-styleprix” en la lista “Style CSS”.
En sus desarrollos, le aconsejamos nombrar siempre correctamente sus elemento (por ejemplo
Astucia
5. En la cinta naranja del modelo, clique sobre para propagar las modificaciones del modelo a todas las
páginas que utilizan este modelo.
6. En nuestro caso, las dos páginas AWP del proyecto se propondrán. Valide la ventana de actualizar el
proyecto.
7. Cierre el modelo de páginas.
Vamos ahora a modificar la página “PAGE_Lista_de_productos” para que pueda ser abierta por la función
DynamicSiteDisplay:
1. Muestre la página “PAGE_Lista_de_productos” en el editor.
2. Muestre la ventana de descripción (en el menú contextual, seleccione “Descripción”).
3. En la pestaña “Avanzado”, marque la opción “Autorizar el acceso para la función DynamicSiteDisplay()”.
Vamos ahora a lanzar la prueba del proyecto mediante las páginas AWP.
1. Sitúese sobre la página “Lista de novedades”.
2. Clique sobre en la lista de botones de acceso rápido.
3. La página aparecerá automáticamente en el navegador.
6. Pruebe las distintas opciones: Todas las opciones disponibles para el texto están dispuestas en la cinta.
7. Clique sobre en los botones de acceso rápido.
8. La página aparece automáticamente en el navegador.
Conclusión
Los dos últimos capítulos nos han permitido ver las especificaciones de un sitio Intranet y las de un sitio Internet.
En el próximo capítulo, abordaremos los elementos que pueden estar integrados tanto en un sitio Internet como en
un sitio Intranet:
Búsqueda multicriterio
Impresión
Gestión de multilenguaje, …
Capítulo 4 – Sitio Internet con datos |126
CAPÍTULO
55
Continuamos el
desarrollo
Un proyecto corregido está disponible. Este proyecto contiene las distintas páginas creadas en
Corregido
esta lección. Para abrir el proyecto corregido, en el panel “Inicio”, en el grupo “Ayuda en línea”,
despliegue “Guía de auto-formación” y luego seleccione “Sitio Web Completo”.
Este tipo de consultas se llaman consultas de selección porque en el lenguaje SQL se utiliza la
orden SELECT.
1. Clique sobre en los botones de acceso rápido. Se abre la ventana de creación de un nuevo elemento:
clique sobre “Consulta”. Se abre el asistente de creación de una consulta.
2. Seleccione la opción “Selección (SELECT)”.
En efecto, la consulta que vamos a crear nos permitirá seleccionar los registros. Avance al paso siguiente.
3. Aparecerá la ventana de descripción de la consulta.
Detengámonos un instante en el interface del editor de consultas:
En la ventana que se muestra, indique una clasificación creciente sobre el campo y valide.
3. Una flecha roja con el número 01 aparecerá a la derecha del campo “Pedido.Fecha”.
Esta flecha indica que una clasificación creciente sobre este campo. La cifra “01” indica que este clasificación
se realizará en primer lugar.
1. Clique sobre .
2. El resultado se muestra en una ventana:
Le aconsejamos prefijar los parámetros de las consultas por “p”. Así será más sencillo localizarlos
en el editor de código.
Notas
4. Valide la ventana de descripción de la condición. El número “1” aparecerá a la derecha del campo
“Cliente.NombreCompleto”, identificando que se ha definido una condición de selección.
La últina condición de selección a definir concierne al importe del pedido. De hecho, vamos a definir dos
condiciones para poder especificar un importe mínimo y un importe máximo.
1. Seleccione el campo “Pedido.TotalTTC” en la lista de elementos de la consulta.
2. Muestre el menú contextual del campo (clic derecho) y selecciones “Condición de selección .. Nueva
condición”.
3. En la ventana que se muestra:
Seleccione la condición “Es superior o igual a”.
Clique sobre “al parámetro”.
Indique el nombre del parámetro “pImporteMinimo”.
4. Valide la definición de la condición de selección.
5. Defina de nuevo una condición sobre el mismo campo “Pedido.TotalTTC”: muestre el menú contextual del
campo (clic derecho) y seleccione “Condición de selección .. Nueva condición”.
6. En la ventana que se muestra:
Seleccione la condición “Es inferior o igual a”.
Capítulo 5 – Continuamos el desarrollo |135
Clique en “al parámetro”.
Indique el nombre del parámetro “pImporteMaximo”.
7. Valide la definición de la condición de selección.
Es posible sustituir la definición de las dos condiciones de selección sobre el campo (“es superior
o igual a” y “es inferior o igual a”) por una única condición de selección “Está comprendido
entre”.
Notas
No obstante, el uso de una condición de selección de tipo “Está comprendido entre” obliga a
introducir los dos valores (que no es el caso si se definen dos condiciones distintas).
8. Valide la ventana de descripción de la consulta. El gráfico de la consulta se modifica para tener en cuenta las
condiciones de selección que hemos definido.
1. Clique sobre .
2. Aparece una ventana para poder introducir los distintos parámetros de la consulta.
Los parámetros pueden ignorarse desmarcando la caja delante de su nombre. En este caso, la
condición de selección asociada al parámetro se ignorará. Por ejemplo, si se ignora el parámetro
pNombreCliente, se tendrán en cuenta en la consulta, los pedidos de todos los clientes.
Notas
6. Conserve las opciones por defecto en las distintas pantallas del asistente y valide la creación del campo Tabla.
7. El campo Tabla se crea automáticamente en la página.
8. Si hiciera falta, modifique la posición del campo Tabla para que aparezca totalmente en la página.
9. Redimensione las columnas para obtener la página siguiente:
Para una mejor legibilidad, vamos a modificar la descripción del campo Tabla.
1. Muestre la descripción del campo Tabla (doble clic sobre el campo).
3. Clique sobre la columna “COL_IDPedido”. El título de la columna aparecerá en la parte inferior de la pantalla.
Sustituya el texto “Identificador del pedido” por “ID”.
10. Registre la página clicando sobre en los botones de acceso rápido. Vamos a verificar los tamaños de las
columnas ejecutando la página.
siguiente motivo: Los datos mostrados dependen del resultado de la consulta y solo pueden
conocerse en ejecución.
Vamos ahora a pasar el valor introducido en el campo de entrada como parámetro de la consulta:
1. Seleccione el campo Tabla y pulse la tecla [F2].
2. En el tratamiento de inicialización del campo Tabla, sustituya la línea:
// MySource.pNombreCliente = <Valor del parámetro pNombreCliente>
Por
MySource.pNombreCliente = EDT_NombreCompleto
En este código, EDT_NombreCompleto es el nombre del campo de entrada que acabamos de crear. El valor
de este campo se asocia al parámetro pNombreCliente esperado por la consulta.
3. Cierre el editor de código.
Antes de probar, vamos a crear un botón para mostrar el contenido del campo Tabla en función del valor
seleccionado en el campo Selector:
1. Cree un campo Botón:
En el panel “Creación”, en el grupo “Campos habituales” clique sobre .
Clique sobre la página, arriba a la derecha.
2. Modifique el texto del campo (utilice la tecla [ENTER] del teclado). El nuevo texto será “Buscar”.
3. Modifique el estilo del campo:
En el menú contextual del campo (clic derecho), seleccione la opción “Elegir un estilo WEBDEV”.
Los selectores de opción también se llaman “cajas de opciones”. Permiten seleccionar una opción
y solo una, de entre las propuestas.
¿Cómo distinguir un selector de un interruptor?
Notas
Ahora vamos a utilizar el valor seleccionado en el campo Selector como parámetro de la consulta:
1. Muestre los tratamientos asociados al campo Tabla:
Seleccione el campo Tabla.
Muestre el menú contextual (clic derecho) y seleccione la opción “Código”.
2. En el tratamiento de inicialización del campo Tabla, sustituya la línea:
// MySource .pSituacion = <Valor del parámetro pSituacion>
Por
MySource.pSituacion = SEL_Situacion
En este código, SEL_Situacion es el nombre del campo Selector que acabamos de crear. El valor de este
campo se asocia al parámetro pSituacion esperado por la consulta.
3. Cierre el editor de código.
Vamos a probar el paso de los dos primeros parámetros:
5. Cierre el navegador
Tercer parámetro: Modo de liquidación
Un pedido puede tener varios modos de liquidación: especias, cheques, … Los distintos modos de liquidación posibles
están almacenados en el fichero de datos “ModosLiquidacion”.
Vamos a utilizar un campo Combo basado en este fichero de datos para permitir al usuario seleccionar el modo de
liquidación deseado.
El campo “Combo” permite mostrar una lista de elementos y seleccionar un elemento en esta
lista.
A diferencia de una lista, un combo solo muestra un elemento a la vez. Con un clic sobre el
campo, el combo se despliega y propone seleccionar otro elemento. Solo se puede seleccionar
un elemento.
Notas
Los elementos que aparecen en el combo pueden ser determinados cuando se crea el campo en
el editor. Estos elementos:
Pueden definirse por programación
Pueden provenir de un fichero de datos o de una consulta.
Vamos ahora a utilizar el valor seleccionado en el campo Combo como parámetro de la consulta:
1. Muestre los tratamientos asociados al campo Tabla: Seleccione el campo Tabla y utilice la tecla [F2]-
2. En el tratamiento de inicialización del campo Tabla, sustituya la línea:
//MySource.pIDModoLiquidacion = 1
Por
MySource.pIDModoLiquidacion = Combo_ModoLiquidacion
En este código, COMBO_ModoLiquidacion es el nombre del campo Combo que acabamos de crear. El valor de
retorno de este campo se asocia al parámetro pIDModoLiquidacione esperado por la consulta.
3. Cierre el editor de código.
4. Guarde la página ( o [CTRL]+[S]).
Vamos a probar de nuevo el paso de los parámetros:
4. Cierre el navegador.
Capítulo 5 – Continuamos el desarrollo |146
Último parámetro: Importe del pedido
El último parámetro de la consulta corresponde al total del pedido tomado en cuenta. Tenemos un parámetro que
corresponde al importe mínimo y otro que corresponde al importe máximo. A nivel de interface, el usuario deberá
poder introducir un intervalo de importes. Vamos a utilizar para ello un campo Potenciómetro de intervalo.
valor final).
2. Clique en la página, entre el campo “Modo de liquidación” y el botón “Buscar”. El potenciómetro de intervalo
se crea automáticamente.
El campo que acabamos de crear es un campo avanzado, constituido por el potenciómetro y dos campos que
muestran los límites. Toda la programación para mostrar los límites ya está realizada en el campo. Vamos ahora
a inicializar el campo Potenciómetro para ue proponga los límites correspondientes a los datos existentes en el
fichero de datos Pedido.
1. Seleccione el campo Potenciómetro y muestre sus tratamientos (tecla [F2]).
2. En el tratamiento de inicialización del campo, inserte el código siguiente (antes de las líneas de código
existentes):
// El valor inferior es el importe de menos valor
HReadFirst (Pedido,TotalTTC)
MySelf..MinValue=Pedido.TotalTTC
MySelf..LowerValue = MySelf..MinValue
4. Cierre el navegador.
mostrar los datos cargados dinámicamente desde el servidor. No hay necesidad de cargarlo
todo!
Ajax por programación con la ayuda de funciones WLangage específicas: AJAXExecute,
AJAXExecuteAsynchronous.
3. Clique sobre el enlace “AJAX”: el enlace “AJAX Activado” aparece indicando que el tratamiento se ha
transformado automáticamente en un tratamiento Ajax.
También hay disponible un proyecto corregido: En el panel “Inicio”, dentro del grupo “Ayuda en
línea”, despliegue “Guía de auto-formación” y luego seleccione “Sitio WebDev Completo
(Corregido)”.
WEBDEV propone crear los informes a partir de numerosas fuentes de datos: ficheros de datos,
consultas, campos, ficheros de texto, …
En la mayoría de casos, es aconsejable ensamblar todos los datos a imprimir dentro de una
consulta, y luego crear un informe sobre esta consulta. Si una información ha de aparecer en el
Notas
1. Clique sobre en los botones de acceso rápido. Se abre la ventana de creación de un nuevo elemento:
clique sobre “Consulta”. Se lanzará el asistente para la creación de la consulta.
2. Seleccione la opción “Selección (SELECT)”.
Efectivamente, la consulta que vamos a crear nos permitirá seleccionar los datos que se imprimirán en el
informe. Avance al paso siguiente.
3. Aparecerá la ventana de descripción de la consulta
Primero, hay que dar un nombre a la consulta: introduzca “REQ_Factura” en vez de “REQ_SinNombre1” en la
zona “Nombre de la consulta”.
1. En la zona de la izquierda de la pantalla, seleccione el fichero Pedido y clique sobre la flecha azul ( ): Los
campos del fichero Pedido aparecerán en el centro de la pantalla.
2. Repita esta operación para los ficheros LineaPedido y Cliente.
La ventana de descripción de la consulta es la siguiente:
En este punto, esta consulta permite seleccionar todos los pedidos y las líneas de pedido correspondientes.
Queremos seleccionar los datos correspondientes a un solo pedido cuyo identificador se conoce. Vamos pues a definir
como parámetro el número de pedido.
Cuando se crea una consulta, la zona que lista los elementos está formada por cuatro columnas:
Nombre del campo
Si se visualiza o no el campo en el resultado de la consulta
Notas
3. En la ventana que se muestra, vamos a indicar que la condición de selección corresponde a un parámetro.
9. Guarde la consulta clicando sobre en los botones de acceso rápido. Valide si hiciera falta las
informaciones para guardarla.
Creación de un informe basado en una consulta
Para crear un informe:
Márgenes de impresión
Cuando elija los márgenes de impresión, no olvide tener en cuenta los márgenes físicos de las
Notas
impresoras. Los márgenes físicos son aquellos reservados por las impresoras en los que no se
puede imprimir. Además, los márgenes físicos difieren en función de los modelos de impresoras.
15. Valide.
16. La tabla que se ha definido no cabe dentro de una página A4 vertical. WEBDEV propone:
Imprimir el informe en dos páginas.
Cambiar a modo horizontal.
Reducir el tamaño de la tabla.
Valide.
3. La ejecución del informe se muestra en la pantalla.
5. Seleccione las informaciones concernientes al cliente y muévalas con la ayuda del ratón a la derecha del
informe.
6. Suba el número de pedido (arriba del bloque “Cabecera de página”).
4. Seleccione:
El color azul oscuro en los colores contextuales.
Un cuadro simple (trazado fino).
Un redondeo de 2 mm en altura y anchura.
Capítulo 5 – Continuamos el desarrollo |161
Ahora posicionaremos los totales correctamente en el bloque “Fin del documento”:
1. Seleccione los campos (etiquetas y datos) correspondientes a los totales que hay en bloque “Fin del
documento”.
2. Posicione estos campos con la ayuda del ratón bajo a la derecha del tablero.
3. El informe se visualiza en el editor de informes:
6. Muestre el código de este botón (tecla [F2]) e introduzca el siguiente código en el clic del servidor:
iDestination (iGenericPDF)
iInitReportQuery (INF_Factura, …
TABLE_REQ_BuscaPedidos.COL_IDPedido[TABLE_REQ_BuscaPedidos])
iPrintReport(INF_Factura)
FileDisplay (iLastFile(), “aplicación/pdf”)
Examinemos este código:
La función iDestination permite definir el formato de impresión utilizado (en este caso, formato PFF).
El informe “INF_Factura”, al estar basado en una consulta parametrizada, necesitará pasar el parámetro a
la consulta antes de ejecutar el informe. Esta operación se realiza por la función iInitReportQuery. En
nuestro caso, el parámetro corresponde al número de pedido en curso, mostrado en el campo Tabla.
La función iPrintReport permite mostrar al usuario la factura:
o La función iLastFile permite obtener la ruta del último fichero generado por un informe.
o “aplicación/pdf” es el tipo MIME del fichero enviado. Cuando se especifica este tipo, el navegador
puede mostrar directamente el fichero o elegir en qué aplicación delegar la visualización en el
puesto de usuario.
7. Cierre el editor de código.
8. Guarde el informe ( o [CTRL]+[S]).
Prueba de la impresión
Ya solo queda probarlo en la realidad:
1. Lance la prueba de la página “PAGE_Busqueda_Multicriterio”.
2. Especifique los criterios y lance una búsqueda.
3. Seleccione uno de los pedidos mostrados en el campo Tabla.
4. Imprima el pedido utilizando el botón “Imprimir”.
el desarrollador del sitio. Es el propio navegador quien elige si abre una nueva pestaña o una
nueva ventana. El comportamiento puede ser distinto según el navegador utilizado.
Para ello, vamos a utilizar el protocolo SMTP. Este es el modo más utilizado actualmente en el mundo.
Para más detalles sobre otros métodos, consulte la ayuda en línea.
Si no ha creado las páginas de las lecciones anteriores, puede seguir esta lección abriendo un
proyecto corregido: En el panel “Inicio”, dentro del grupo “Ayuda en línea”, despliegue “Guía de
auto-formación” y luego seleccione “Sitio WebDev Completo (Con páginas)”.
Corregido
También hay disponible un proyecto corregido: En el panel “Inicio”, dentro del grupo “Ayuda en
línea”, despliegue “Guía de auto-formación” y luego seleccione “Sitio WebDev Completo
(Corregido)”.
Para más detalles sobre la gestión de los emails, consulte el ejemplo “Envío de email” (ejemplo
Ejemplo
unitario), proporcionado en estándar con WEBDEV. Este ejemplo es accesible desde la ventana
de inicio de WEBDEV.
fichero de log, …
Mejoras en la página
Vamos a aportar algunas mejoras a nuestra página PopUp:
Añadir un botón de cierre.
Lanzar la página PopUp desde la página “PAGE_Lista_de_Productos”.
Cierre de la página PopUp
Para añadir un botón que permita cerrar la página PopUp:
1. En el panel “Creación”, dentro del grupo “Campos habituales”, clique sobre “Botón”.
2. Clique en la página, en la posición donde se deberá crear el botón (por ejemplo, bajo, a la derecha del botón
“Enviar”).
Para utilizar una popup desde un modelo de páginas, el popup deberá crearse a partir de un
modelo de páginas.
Lance la prueba de la página ( en los botones de acceso rápido) y abra el popup de envío de una
sugerencia.
Si no ha creado las páginas de las lecciones anteriores, puede seguir esta lección abriendo un
Corregido
proyecto corregido: En el panel “Inicio”, dentro del grupo “Ayuda en línea”, despliegue “Guía de
auto-formación” y luego seleccione “Sitio WebDev Completo (Con páginas)”.
de campos específico. Ese modelo de campos permite integrar en su página un enlace que
permitirá al usuario conectarse. Vamos a presentar esta solución en este curso, porque es
flexible y fácilmente integrable.
3. Valide. Aparecerá un mensaje indicando que por defecto, un usuario Supervisor se ha creado.
En este ejemplo, conservaremos todas las opciones por defecto. Numerosas opciones son
Notas
Un modelo de campos es una página específica que contiene distintos campos. En esta página,
puede poner todos los tipos de campos. Un modelo de campos es un fichero de extensión
“WDT”.
El primer interés de un modelo de campos es la re-utilizabilidad. Un modelo de campos presente
en un proyecto puede reutilizarse no importe en qué página del proyecto. Las modificaciones
Notas
3. Clique sobre el botón “Guardar”. El grupo “Gestión de productos” aparecerá en la lista de grupos definidos
para el groupware usuario.
También puede definirse aquí que el usuario también es un supervisor del groupware. En
este caso, estará autorizado a modificar los usuarios, los grupos y los derechos.
3. Clique sobre el botón “Guardar”. El usuario “Alicia” aparece en la lista de usuarios definidos para el groupware
usuario.
Para asociar el usuario “Alicia” al grupo “Gestion de productos”:
1. Seleccione el usuario “Alicia” en la página.
2. Seleccione el grupo “Gestión de productos”.
3. Clique sobre la flecha de adición
4. Ya se ha realizado la asociación.
Definición de los derechos
Vamos ahora a definir los derechos de acceso al menú de creación de producto.
Una buena práctica en términos de seguridad consiste en prohibir el acceso por defecto y autorizar el
acceso solo a los grupos deseados.
Vamos a definir los derechos para los usuarios no conectados (es decir, a los no identificados por el
groupware). Estos derechos serán los que se usarán por defecto cuando se lance el sitio, mientras que no se
conecte un usuario.
Para cada página, modelo de páginas o informe, se puede especificar si será o no accesible para el grupo.
Para cada página o modelo de página, se puede indicar si los campos mantendrán el comportamiento del sitio
(por defecto), o serán inactivos, invisibles o inhabilitados.
En nuestro caso, el enlace “Añadir un producto” está en el model ode páginas “PAGEMOD_Menu:”
1. Seleccione el modelo de páginas “PAGEMOD_Menu” en la lista. Los derechos definidos sobre el modelo de
páginas aparecerán en todas las páginas que utilizan el modelo.
2. Clique sobre “Siguiente”.
Capítulo 5 – Continuamos el desarrollo |179
3. Aparecerá la ventana de configuración de los derechos sobre los campos.
4. Seleccione la opción a configurar: “Sub-menu Opción_2”.
Si no ha realizado las manipulaciones de las lecciones anteriores, puede seguir esta lección
Corregido
abriendo un proyecto corregido: En el panel “Inicio”, dentro del grupo “Ayuda en línea”,
despliegue “Guía de auto-formación” y luego seleccione “Sitio WebDev Completo (Con páginas)”.
En las opciones lingüísticas, se puede escoger el sentido de la escritura del idioma (pestaña
“Varios”, opción “Sentido de la escritura”). Así se puede crear los interfaces con un idioma que
Notas
Valide. Un mensaje propone sincronizar los distintos elementos del proyecto. Responda “Si”. Todos los
elementos del proyecto abiertos en el editor (páginas, informes, …) se cerrarán y el o los idiomas
suplementarios, se añadirán a todos los elementos.
Los errores de IHM son susceptibles de aparecer. Vamos a ignorarlos por el momento. Estos
Notas
9. Actualice las páginas que usan el modelo de páginas clicando sobre el icono en la banda naranja. Valide
la ventana de actualización.
10. Cierre el modelo de páginas mostrado en el editor.
Internalización de los campos
Un campo puede mostrar numerosas informaciones al usuario:
Un texto,
Una imagen, …
Todas estas informaciones deberán traducirse. Estas informaciones están accesibles en las distintas pestañas de la
ventana de descripción del campo.
Para traducir el enlace “Modificar” en la página PAGE_Lista_de_Productos”:
1. Seleccione el enlace “Modificar”.
2. Muestre la ventana de descripción del campo (opción “Descripción” del menú contextual).
3. Introduzca el texto en inglés: “Modify”.
4. Valide.
5. Guarde la página ( o [CTRL]+[S]).
Internalización de un mensaje de programación
Todos los mensajes de su programa puede igualmente introducirse en varios idiomas.
Veamos como traducir un mensaje de programación:
1. Muestre el editor de código (tecla [F2] sobre la página “PAGE_Lista_de_Productos”).
2. En el código de declaración de las globales, introduzca el siguiente código:
sMiCadena is string = “Français”
3. Para traducir este tipo de mensaje, posicione el cursor en la cadena “Français” y utilice la combinación de
teclas [CTRL]+[T]. También es posible, en el panel “Código”, dentro del grupo “Lenguajes”, desplegar
“Traducir las cadenas” y seleccionar “Traducción de los mensajes”.
4. Aparecerá la siguiente ventana:
5. Esta ventana permite introducir todos los mensajes del programa en todos los lenguajes del proyecto.
6. En la zona “Inglés”, introduzca “French” y valide.
3. Especifique:
Si los parámetros regionales deberán estar automáticamente activados según el idioma en curso de
introducción. En este caso, si el idioma necesita un alfabeto específico, este alfabeto se seleccionará
automáticamente.
El software o el sitio a utilizar para la traducción. Es posible utilizar WDDixio, diccionario de traducción
proporcionado con WDMSG (ver página siguiente), un software o un sitio de traducción específico, o Google
Traducción (para más detalles, consulte la ayuda en línea).
Los idiomas gestionados.
4. Cuando se han definido los parámetros de traducción, se puede utilizar el botón presente en las
distintas ventanas de descripción de los elementos del proyecto: este botón permitirá utilizar el software
definido para la traducción.
Traducción con WDMSG y WDTRAD
Capítulo 5 – Continuamos el desarrollo |188
Existe también una herramienta opcional WDMSG que permite:
Extraer todos los mensajes de un proyecto (texto de los campos, mensajes de código, títulos de las ventanas, …)
para traducirlos.
Reintegrar los mensajes traducidos.
Los mensajes a traducir se extraen:
En un formato texto que puede configurarse para poder ser utilizado por la mayoría de software de traducción.
Con formato HFSQL.
WDMSG también se suministra con una herramienta de ayuda a la traducción WDTRAD. WDTRAD permite introducir
sencillamente todas las traducciones de las informaciones multi-lenguaje de un proyecto.
Para obtener más informaciones sobre WDMSG y WDTRAD, contacte con el servicio comercial de PC SFOFT.
Otros elementos para traducir: los mensajes de framework
Numerosas informaciones y mensajes están presentes en el framework WEBDEV. Por ejemplo, los nombres de los
días y de los meses utilizados por las funciones de gestión de las fechas provenientes del framework WEBDEV. Para
traducir una o más librerías de este framework, es necesario utilizar WDINT (utilidad opcional proporcionada con
WDMSG).
Este software permite obtener un fichero de extensión WDM que contiene todas las traducciones de las librerías. Para
utilizar este fichero en su aplicación:
Puede utilizar la función LoadError.
Puede integrar el fichero a la descripción del proyecto en la pestaña “Idiomas”. Hay que seleccionar el idioma
deseado y seleccionar la pestaña “Varios”.
Para obtener más información sobre WDINT, contacte con el servicio comercial de PC SOFT.
10. Actualice las páginas utilizando el modelo de páginas y clicando sobre el icono en la cinta naranja. Valide
la ventana de actualización.
11. Cierre el modelo de páginas mostrado en el editor.
Prueba del proyecto
Hemos traducido algunos elementos de la aplicación y ahora vamos a probar el cambio del idioma.
Para probar el sitio:
1. Lance la prueba del proyecto ( en los botones de acceso rápido). La página se mostrará en modo de
prueba en francés.
2. Seleccione la opción “Idiomas .. Inglés”.
3. Los distintos elementos que hemos traducido aparecerán en inglés:
Esta lección concierne únicamente a los desarrolladores de sitios Internet. Si desarrolla un sitio
Notas
Si no ha realizado las manipulaciones de las lecciones anteriores, puede seguir esta lección
Corregido
abriendo un proyecto corregido: En el panel “Inicio”, dentro del grupo “Ayuda en línea”,
despliegue “Guía de auto-formación” y luego seleccione “Sitio WebDev Completo (Con páginas)”.
Asistente de referenciación
WEBDEV viene acompañado de un asistente de ayuda a la referenciación.
Para lanzar este asistente, en la cinta, en el panel “Proyecto”, dentro del grupo “Web”, despliegue
“Referenciación” y seleccione “Optimizar la referenciación”.
Texto alternativo: Los textos alternativos son los textos que sustituyen las imágenes cuando éstas no se
muestran (que puede ser porque el internauta ha pedido explícitamente no mostrar las imágenes, porque aún
no se han cargado, o incluso porque el internauta utiliza un navegador en modo texto o un lector de pantalla
para ciegos).
Los textos alternativos describen la imagen y son indexados por los motores de búsqueda. Por este motivo, es
conveniente elegirlas con atención.
El texto alternativo de una imagen se define en la ventana de descripción del campo imagen, en la pestaña
“Ayuda”.
Capítulo 5 – Continuamos el desarrollo |194
Propiedades de las páginas
Como acabamos de ver, el asistente de referenciación indica varias modificaciones que pueden efectuarse a nivel de
la ventana de descripción de las páginas:
Título de la página
Palabras clave de las páginas, …
Otras propiedades que influyen en la referenciación, pueden estar definidos en la ventana de descripción de la
página:
Frecuencia de la actualización
Importancia en el sitio
Frecuencia de la actualización
La frecuencia de la actualización indica al motor de búsqueda con qué frecuencia deberá reindexarse.
En la medida de los posible, hay que indicar una frecuencia próxima a la realidad:
Si la página cambia más a menudo de lo que se indica aquí, algunas versiones podrían no indexarse.
Si la página cambia menos a menudo, el paso del motor de búsqueda encontrará una carga inútil en el servidor y
la indexación podrá ser penalizada.
Importancia en el sitio
Este criterio permite al motor de búsqueda saber qué página poner como prioritaria al internauta cuando varias
páginas del sitio corresponden a una búsqueda.
Plan de navegación
El plan de navegación define la organización de su sitio. En referenciación, hay dos usos:
Capítulo 5 – Continuamos el desarrollo |195
Permitir mostrar el campo “Plan del sitio” para guiar a los internautas al interior del sitio.
Generar el fichero sitemap.xml
Para definir el plan de navegación:
1. En la cinta, en el panel “Proyecto”, dentro del grupo “Web”, clique sobre “Plan de navegación”.
2. Se abre una ventana para permitir construir la arborescencia de su sitio. Un modo de construcción automática
puede ayudarle a realizar una versión preliminar detectando automáticamente los enlaces entre las páginas.
Puede personalizar el plan de navegación para el sitio.
El fichero sitemap se construye automáticamente por WEBDEV a partir del plan de navegación. Está generado
en el directorio _WEB de su sitio y se llama _sitemap.xml.
El fichero sitemap.xml deberá suministrarse con las utilidades para webmasters de los motores de búsquedapara
permitirles indexar el contenido de su sitio.
Despliegue
de un sitio
Este capítulo presenta el desarrollo en un servidor Windows. Si desea utilizar un servidor Linux,
Notas
diríjase a la documentación del servidor de aplicación WEBDEV para Linux o a la ayuda en línea.
Es posible desplegar un sitio dinámico WEBDEV por uno de los siguientes métodos:
Despliegue por medio físico (CD-ROM, …). Este despliegue puede ser autónomo: en este caso, la instalación se
realiza igualmente un servidor Web y un servidor de aplicación WEBDEV limitado.
Despliegue a distancia directamente desde el puesto de desarrollo (por FTP).
Despliegue a distancia desde un puesto de administración (por FTP) con la ayuda de un “paquete de despliegue”.
Despliegue del sitio a través del servicio de hospedaje de prueba PC SOFT.
Despliegue desde el Cloud de PC SOFT.
Configuración necesaria
Para el despliegue en el servidor, es necesario tener instalado y configurado:
Un servidor Web
Un servidor FTP
Un servidor de aplicación WEBDEV (con WEBDEV se proporciona una versión con 10 conexiones).
Cuando se instala WEBDEV, tiene la posibilidad de instalar la versión de prueba del Servidor de aplicaciones WEBDEV.
De esta forma, tiene la posibilidad de probar el despliegue de sus sitios dinámicos.
Para simplificar las tareas del despliegue y para que pueda probar directamente el despliegue de su sitio Web, vamos
a:
Instalar un Servidor de Aplicaciones WEBDEV 10 conexiones en un puesto Windows. Este servidor de aplicación
deberá estar instalado en un puesto distinto del puesto de desarrollo y WEBDEV Desarrollo no deberá estar
instalado en este sitio.
Desplegar el sitio a distancia (por FTP).
Si ya posee los parámetros de acceso al servidor sobre el que su sitio va a desplegarse, no será
necesario instalar el Servidor de Aplicaciones WEBDEV 10 conexiones. Puede realizar la
Notas
diríjase a la documentación del servidor de aplicación WEBDEV para Linux o a la ayuda en línea.
3. Seleccione la ruta de instalación del servidor de aplicaciones (por defecto “C:\WEBDEV21”). Valide la creación
del directorio.
Observación: Si la opción “Colocar los iconos en el menú Inicio” está marcada al final de la
instalación, este fichero estará accesible desde el menú “Inicio”.
Configuración a través del Centro de Control de Hospedaje
El Centro de Control de Hospedaje es una utilidad concebida para apoyar automáticamente toda la configuración del
Servidor de Aplicaciones, del Servidor Web (IIS) y del servidor FTP (IIS). Para utilizar el Centro de Control de
Hospedaje:
1. Lance el Centro de Control de Hospedaje desde el menú “Inicio de Windows”.
2. En el menú, dentro del grupo “Parámetros del hospedaje”, clique en “Directorios” para indicar donde se
instalarán los sitios.
3. Elija el directorio raíz en el que se crearán los sub-directorios de las cuentas WEBDEV.
Podrá elegir el nombre de los subdirectorios que contendrán los sitios, los servicios web y los datos.
4. Dentro del grupo “Parámetros del hospedaje”, clique en “Cuentas del OS”. Esta opción permite definir dentro
de qué grupos serán afectados los usuarios Windows creados para el despliegue.
Para el despliegue, puede crear un grupo o utilizar el grupo estándar “Usuarios con poderes”.
Para la ejecución de los sitios, una buena práctica consiste en utilizar el grupo “IIS_IUSRS” (en aquellas
versiones de Windows en las que exista).
Número máximo de conexiones a repartir entre los sitios (0 corresponde a un número ilimitado).
Limitación del número de sitios a asociar a una cuenta, …
6. Dentro del grupo “Parámetros del hospedaje”, clique en “Base HFSQL Cliente/Servidor”. Esta opción permite
parametrizar la creación de una base HFSQL a cada creación del usuario.
4. El asistente propone crear las cuentas Windows necesarias. Conserve las elegidas por defecto y avance al
paso siguiente.
Para abrir el proyecto corregido, en el panel “Inicio”, dentro del grupo “Ayuda en línea”,
despliegue “Guía de Auto-formación” y luego seleccione “Sitio WebDev Completo (Con páginas)”.
Preparación de la instalación
WEBDEV dispone de un asistente de instalación, permitiendo difundir fácilmente su sitio en un albergador WEBDEV
(para un sitio Internet o Extranet por ejemplo) o sobre uno de sus servidores dedicado al hospedaje WEBDEV (para
un sitio Intranet por ejemplo).
Vamos a utilizar este asistente:
1. En la cinta, en el panel “Proyecto”, dentro del grupo “Generación”, despliegue “Desplegar el sitio” y seleccione
“Desplegar el sitio a distancia”.
3. Antes de proceder a la instalación hay que poner en la biblioteca todos los elementos de su sitio. Una
biblioteca es un fichero que agrupa todos los elementos creados durante el desarrollo (descripción de la base
de datos, páginas, informes, consultas, …). Las páginas HTML y las imágenes no se incluyen en la biblioteca.
Avance al paso siguiente.
4. Puede elegir la integración de distintos idiomas en la biblioteca. En nuestro ejemplo, vamos a conservar las
opciones por defecto. Avance al paso siguiente.
5. Las informaciones sobre la versión de la biblioteca permiten introducir los elementos que serán mostrados en
las propiedades del fichero en el explorador Windows. Avance al paso siguiente
6. No guarde el proyecto y valide la creación de la biblioteca.
Instalación
El asistente de instalación ahora realizará algunas preguntas para definir de que manera se difundirá el sitio. En
nuestro caso, vamos a realizar una instalación a distancia mediante FTP:
1. Seleccione la primera opción “Desplegar el sitio WebDev en un Servidor de Aplicaciones WebDev distante”.
Avance al paso siguiente.
Atención: el nombre de usuario puede estar precedido del nombre del dominio para evitar
confusiones.
Notas
3. Cuando ha finalizado la introducción de las informaciones de su cuenta WEBDEV y de su cuenta FTP, avance
al paso siguiente.
4. Introduzca los parámetros de despliegue del sitio. Conservaremos las opciones dadas por defecto. Avance al
paso siguiente.
Podrá modificar:
El número máximo de conexiones al sitio: si define un valor de “5” por ejemplo, solo 5 internautas podrán
consultar su sitio a la vez.
El número máximo de conexiones por internauta: Si define un valor de “5” por ejemplo, un solo
internauta podrá lanzar hasta 5 veces su sitio.
La duración de la inactividad antes de desconectar a un usuario: esta opción permite liberar todos los
recursos ocupados por la sesión del internauta si éste no efectúa ninguna acción durante el tiempo
especificado.
9. Por defecto, su sitio se activa inmediatamente después de la instalación. Si desmarca la caja “Activar el sitio
inmediatamente después de su instalación”, los usuarios no podrán acceder a su sitio.
10. El asistente propone realizar:
Una instalación inmediata: los ficheros se transferirán inmediatamente al puesto servidor y la instalación
de su sitio se realizará también inmediatamente.
Una instalación en diferido: Los ficheros se transferirán inmediatamente al puesto servidor, pero la
instalación de su sitio empezará a la fecha y hora indicada (opción “Programar el despliegue para una
fecha posterior”).
11. Avance al paso siguiente
12. El asistente propone generar automáticamente los ficheros de estadísticas para el sitio instalado. Estas
estadísticas son concernientes por ejemplo a las acciones realizadas en el sitio, el origen de los internautas, …
Conserve las opciones propuestas por defecto y avance al paso siguiente.
13. Muestre la pantalla siguiente y luego valide la instalación. El asistente de instalación transfiere los ficheros.
Durante la transferencia de ficheros, el asistente comprime y encripta los datos transferidos. Sus datos transitan
entonces en total seguridad.
Al final de la instalación, un enlace permite lanzar inmediatamente el sitio.
El administrador WEBDEV solo puede utilizarse si puede acceder directamente al servidor Web
Notas
Sitios: Lista los sitios desplegados en el servidor, así como sus parámetros:
Webservices: Lista los webservices desplegados en el servidor, así como sus parámetros.
Configuración: Permite gestionar la configuración del servidor.
Instalación/Cuentas: Permite bloquear el servidor por mantenimiento, autorizar o prohibir las instalaciones a
distancia y configurar el diario de las instalaciones. Este diario permite trazar los elementos instalados en un
sitio. Es particularmente útil antes de contactar con el Soporte Técnico si encuentra errores cuando despliega.
Observación: Esta utilidad no está disponible con el servidor de aplicaciones WEBDEV 10 conexiones.
Cuando despliegue su sitio dinámico en un lugar hospedador (y si el hospedador tiene autorizada la administración
remota de su sitio), podrá usar esta utilidad para actualizar los parámetros de su sitio.
Para lanzar WDAdminWeb210:
1. Lance el administrador WEBDEV (WDAdminWeb210) en el puesto de despliegue.
2. Abra su navegador favorito (por ejemplo, Internet Explorer) en su puesto.
3. Introduzca en la barra de direcciones del navegador la siguiente URL (respetando la caja):
http://puesto/WDAdminWeb210
donde “puesto” es el nombre del servidor de despliegue.
Funcionalidades
específicas de la Web
Tiempo estimado: 1 h
¿Cómo se aplican los estilos en el campo de entrada? Según el tipo de estilo utilizado (WEBDEV o CSS), el modo
de aplicación varía.
Los estilos CSS en WEBDEV se aplicarán a los elementos de un campo
En el caso de un campo de entrada, es posible aplicar un estilo CSS específico al texto del campo de entrada
o a la zona de entrada.
Los estilos WEBDEB se aplicarán al campo completo
Un estilo WEBDEV se compone de varios estilos CSS.
Por ejemplo, sobre el campo de entrada, el estilo WEBDEV contiene:
o El estilo CSS para el texto.
o El estilo CSS para la zona de entrada.
o Las distintas opciones de estilo para la zona global del campo.
Descubrir los estilos mediante un ejemplo
Para descubrir los estilos en WEBDEV, hemos preparado un ejemplo sencillo:
1. Lance WEBDEV 21 (si no lo ha hecho ya). Si es necesario, cierre el proyecto en curso para hacer aparecer la
ventana de bienvenida.
2. Abra el proyecto “Estilos”. Para ello, en la ventana de bienvenida, clique sobre “Curso de auto-formación” y
seleccione el primer proyecto “Estilos (Corregido)”.
Observación: Todos los elementos que están señalados “(CSS)” pueden utilizar un estilo CSS directamente:
basta con seleccionar su nombre.
2. El combo “Estilo CSS” permite elegir el estilo CSS del elemento: este estilo se aplicará en el elemento.
Editar el estilo CSS de un campo
Para crear o editar un estilo CSS:
1. En la pestaña “Estilo” de la ventana de descripción de un campo, clique sobre “…” al lado del combo “Estilo
CSS”.
3. En esta ventana, se pueden crear o modificar todos los estilos CSS del proyecto.
Examinemos esta ventana. Esta ventana se compone de dos zonas:
Zona 1. El estado del campo sobre el cual se debe aplicar el estilo: normal, sobrevolado, activo, …
Zona 2. Las propiedades CSS asociadas al estado seleccionado. Cada propiedad CSS puede modificarse por
estado.
Comprobemos por ejemplo las características del estilo CSS “MiEstiloPerso_ZonaDeEntrada”:
1. Seleccione el estilo “MiEstiloPerso_ZonaDeEntrada” en el combo de la zona 1 si fuera necesario.
2. Seleccione la situación “Normal” (la primera situación de la zona 1).
3. Clique sobre la pestaña “Fondo”: el color del fondo es blanco.
4. Seleccione la situación “En entrada” (la cuarta situación de la zona 1).
5. En la pestaña “Fondo”, el color de fondo de la zona de entrada es amarillo pastel. El estilo CSS contiene el
estilo para cada una de las situaciones.
6. Cierre la ventana de descripción del estilo CSS.
La pestaña “Estilo” de la ventana de descripción del campo aaprece de nuevo. En la barte inferior de la ventana,
tiene un acceso rápido a los elementos de estilo modificados con más frecuencia:
Fuente
Tamaño
Negrilla, Itálica, Subrayado, Tachado
Estas opciones permiten realizar una sobrecarga rápida del estilo CSS para el campo actual. En
este caso, las modificaciones efectuadas en estas opciones no se reportarán sobre los otros
Atención
WEBDEV sobre el enlace que indica el número de sobrecargas efectuadas por el campo.
Mostrando el menú contextual del campo y eligiendo la opción “Seleccionar un estilo WEBDEV”.
Vamos a utilizar este último método para asociar el campo que acabamos de de crear con el estilo
“EDT_Personalizado. Este estilo se utilizará para los otros campos de la página.
Valide la ventana de selección de los estilos. El texto del campo cambia de color: se ha aplicado el estilo.
Guarde la página ([CTRL]+[S]) y lance la prueba de la página ( en los botones de acceso rápido).
1. La página se muestra en el navegador.
2. Pase el cursor de un campo a otro: el color de fondo permanece amarillo para todos los campos excepto para
el que acaba de crear.
3. Cierre el navegador.
Modificar un estilo CSS para todos los campos
Vamos ahora a modificar el estilo CSS de la zona de entrada para cambiar el color del texto introducido. Esta
modificación se realizará para todos los campos de entrada de la página.
1. Muestre la ventana de descripción del campo creado ([ALT]+[ENTER]).
2. En la pestaña “Estilo”, elija el elemento “Zona de entrada (CSS)”.
3. Clique sobre el botón […] a la derecha del nombre del estilo CSS. La ventana de edición del estilo CSS se
muestra.
4. Seleccione la situación “Normal”.
5. En la pestaña “Texto”, cambie el color. Elija por ejemplo un color verde.
6. Valide y luego valide la ventana de descripción del campo.
Guarde la página ([CTRL]+[S]) y lance la prueba de la página ( en los botones de acceso rápido).
1. La página se muestra en el navegador.
2. Introduzca el texto en los distintos campos de la página: el texto introducido se muestra con el nuevo color
seleccionado. Esta modificación se tendrá en cuenta también para el campo que hemos creado y cuyo estilo
se ha sobrecargado.
3. Cierre el navegador.
Un cookie tiene una fecha de expiración (por defecto, 30 días después de la creación del cookie).
Se destruye automáticamente por el navegador del internauta cuando ha pasado su duración.
Internet
Atención: El uso de cookies solo es posible si el navegador del internauta está configurado para
aceptarlos.
Un cookie permite por ejemplo conservar en el puesto del internauta informaciones como el nombre del usuario, las
páginas consultadas, la fecha de su última conexión, guardar sus opciones, …
Estas informaciones, guardadas en forma de cookies, pueden leerse por el sitio en la siguiente conexión del
internauta. El sitio podrá de esta forma proponer informaciones personalizadas para el usuario:
Cinta de publicidad correspondiente a los sujetos consultados durante la última conexión.
Personalización de la página de bienvenida con el nombre del internauta y la fecha de la última conexión.
Mostrar promociones correspondientes a las búsquedas efectuadas durante la última visita, …
informaciones sensibles.
Guarde la página ([CTRL]+[S]) y lance la prueba de la página ( en los botones de acceso rápido).
¿Cómo utilizar los cookies?
Hay dos tipos de uso de los cookies:
Los cookies utilizados en código Servidor
Los cookies utilizados en código Navegador
Para utilizar los cookies, WEBDEV pone a su disposición 2 funciones utilizables tanto en código servidor como en
código navegador:
CookieWrite: Permite enviar un cookie cuando se muestra la página HTML en el navegador del internauta.
CookieRead: Permite recuperar el valor de un cookie guardado en el puesto del internauta.
Capítulo 7 – Funcionalidades específicas de la Web |225
La página ejemplo “PAGE_Cookies” presenta un ejemplo de lectura y de escritura de un cookie en código servidor y
en código navegador.
Cierre el navegador y consulte si es necesario el código de los distintos botones.
Para más detalles, consulte la ayuda en línea.
Pago seguro
Presentación
La mayoría de los sitios comerciales ofrecen a los internautas la posibilidad de poder comprar o alquilar en línea
utilizando un sistema de pago en línea por tarjeta bancaria.
Para un sitio tienda, el pago seguro es un elemento esencial. La solución del pago retenido deberá ofrecer a la vez
confianza al internauta (el “cliente”) y garantizar el pago al sitio tienda.
Todos los datos que circulan durante esta transacción, deberán estar asegurados (por ejemplo, gracias al protocolo
SSL que hemos abordado en el párrafo anterior.
Las soluciones de pago utilizadas son diversas y variadas (PayBox, ATOS, CyberMut, CyperPaiement, SPPlus, …).
El principio del pago seguro puede variar ligeramente de un prestatario a otro, pero el resto es globalmente el mismo
para todos:
1 a 4: Preparación del pedido en el sitio tienda: el internauta efectúa su pedido en el sitio. Cuando se lanza la
orden de pago, el sitio tienda transfiere al operador de pago las informaciones necesarias para la identificación
del pedido (número de comerciante, importe del pedido, …)
5 a 7: Introducción y control del número de tarjeta bancaria: el internauta introduce su número de tarjeta
bancaria en una página del operador de pago seguro. La transmisión de las informaciones está protegida por el
SSL, asegurando así la confidencialidad de los datos. El sitio tienda no conocerá nunca el número de la tarjeta
bancaria del internauta.
8: Retorno al sitio tienda: el operador de pago indica al sitio tienda que el pago es válido, anulado, o fallido.
Importante: el dominio del pago electrónico evoluciona rápidamente. Antes de establecer una
Atención!
solución de pago, verifique siempre las últimas soluciones propuestas por los distintos
prestatarios.
Un ejemplo corregido está disponible en todo momento para verificar la validez de las
operaciones efectuadas.
Corregido
Para abrir este proyecto corregido, en el panel “Inicio”, dentro del grupo “Ayuda en línea”,
despliegue “Guía de auto-formación” y luego seleccione “Anclajes (Corregido)”.
Observación: para mostrar la ventana de creación de un nuevo elemento, clique sobre en los botones de
acceso rápido.
Se lanza el asistente de creación de una página.
Clique sobre “En blanco-Disposición simple” y valide el asistente.
2. Guarde la página ( o [CTRL]+[S]). Esta página tiene como título “Anclaje”, y su nombre “PAGE_Anclaje”
se propone automáticamente. Valide la ventana para guardarla.
Ahora vamos a dividir nuestra página en 3 zonas:
Una cabecera (arriba sobre toda la anchura)
Un menú a la izquierda (sobre toda la altura)
Una zona de contenido al centro.
Cada zona tendrá un comportamiento específico cuando se redimensione la página.
Para crear las zonas, vamos a utilizar la funcionalidad de zoning.
Para crear una primera zona de título arriba de la página:
1. En el panel “Página”, dentro de la zona “Edición”, despliegue “Zoning” y seleccione “Recortar la disposición”.
2. El cursor del ratón se transforma en lápiz.
3. Clique arriba de la página y dibuje un trazo horizontal. Cuando se suelta el botón del ratón, se ha creado la
zona.
Vamos a realizar las mismas operacioens para dividir en dos la zona inferior de nuestra página:
1. En la pestaña “Página”, dentro de la zona “Edición”, despliegue “Zoning” y seleccione “Recortar la
disposición”.
2. El cursor del ratón se transforma en un lápiz.
3. Clique en medio de la zona inferior y dibuje un trazo vertical.
Para visualizar estas zonas, asocie el color verde a la zona inferior izquierda y el color naranja a la zona inferior
derecha.
Vamos ahora a crear los campos texto dentro de cada zona:
1. Salga del modo de edición “Zoning”, clicando sobre la pestaña “Página” arriba de la página (en la cinta).
2. En el panel “Creación”, en el grupo “Campos habituales”, despliegue “Texto” y seleccione “Texto simple”.
3. Clique en la zona amarilla. El campo Texto se crea automáticamente.
4. Modifique el texto mostrado (tecla [ESPACIO] del teclado): El texto del campo es “Cabecera”.
5. Repita las operaciones 2 a 4 para crear:
Un texto en la zona vede mostrando “Menú”.
Un texto en la zona naranja mostrando “Contenido”.
Guarde la página ([CTRL]+[S]) y lance la prueba de la página ( en los botones de acceso rápido).
1. La página aparece en el navegador.
2. Redimensione el navegador: la página permanece centrada, pero las zonas no se redimensionan.
Configurar el anclaje
Primeramente, vamos a configurar el anclaje de las zonas y luego el anclaje de los campos en las zonas.
El objetivo es conseguir el siguiente funcionamiento cuando se agrande el navegador:
La zona de cabecera (amarilla) deberá hacerse más ancha.
La zona de menú (verde) deberá hacerse más alta.
La zona de contenido (naranja), deberá agrandarse en altura y en anchura.
Para los campos, deseamos que queden centrados con respecto a su zona.
Vamos pues a realizar todas las manipulaciones necesarias.
Para configurar el anclaje de las zonas:
1. Muestre la página en modo zoning: clique sobre la pestaña “Zoning” arriba de la página:
Guarde la página ([CTRL]+[S]) y lance la prueba de la página ( en los botones de acceso rápido).
1. La página se muestra en el navegador.
Funcionalidades
útiles de WEBDEV
Paso a paso
Paso 1: Creación de un componente interno
Vamos a crear un componente interno que permita inscribirse o desinscribirse a una carta de información en un sitio
Web.
Este componente está formado por:
Una página, que permite visualizar los inscritos en la carta de información.
Un modelo de campos Web que contiene los distintos campos (introducción de la dirección email, botón de
validación, …).
Un análisis que describe el fichero de datos de los inscritos.
Para no tener que desarrollar el código necesario para el funcionamiento del componente, vamos a agrupar todos los
elementos necesarios en un proyecto “WW_Componente_Interno”. Vamos a servirnos de este proyecto para crear
nuestro componente interno. Más adelante crearemos un nuevo proyecto para utilizar este componente interno.
Para abrir el proyecto ejemplo:
1. Cierre si es necesario el proyecto en curso. Aparecerá la ventana de bienvenida.
2. En la ventana de bienvenida, clique sobre “Curso de auto-formación” y seleccione el proyecto “Componente
Interno (Ejercicio)”.
Astucia: Si la ventana de bienvenida no está visible: en el panel “Inicio”, dentro del grupo “Ayuda
en línea”, despliegue “Guía de Auto-Formación” y luego seleccione “Componente Interno
Notas
(Ejercicio)”.
3. El proyecto se carga.
Vamos a probar directamente el modelo de campos de este proyecto:
1. Muestre el modelo de campos Web (MDLC_InscriptionNewsletter” (Doble clic sobre su nombre en el
explorador del proyecto).
2. Lance la prueba del modelo de campos Web ( en los botones de acceso rápido).
3. Introduzca una dirección email.
Acepte.
11. Finalice el asistente. WEBDEV creará el componente interno en un directorio específico de su proyecto.
En el explorador del proyecto, el modelo de campos Web “MDLS_InscriptionNewsletter” no existe en la lista de
modelos de campos Web del proyecto. Por el contrario, el componente interno que acabamos de crear, aparecerá en
la carpeta “Componente Interno” con sus distintos elementos: análisis y modelo de campos Web.
En este ejemplo, vamos a ver un uso “directo” del componente interno. Para una compartición
de los recursos, es aconsejable el uso de los componente internos a través del Gestor de
Notas
Fuentes (GDS).
Para más detalles, consulte la ayuda en línea (palabra clave: “Componente Interno”).
WEBDEV propone igualmente una gestión automática para los errores HFSQL. Para más detalles,
Ejemplo
4. Seleccione los elementos a importar y luego valide. Los elementos (y todos los ficheros utilizados por estos
elementos: imágenes, … ) forman desde ahora, parte del proyecto.
Exportar elementos
Igualmente, puede exportar elementos de su proyecto hacia otro directorio, por ejemplo. Estos elementos podrán
reutilizarse en otros proyectos.
La exportación de elementos es mucho más que una simple copia de elementos. Es el único
medio seguro para transferir un elemento de un proyecto con todas sus dependencias
Atención!
(imágenes, iconos, ….). Una solución práctica para transmitir páginas con sus dependencias por
email, por ejemplo.
Importaciones específicas
Importación de un proyecto WINDEV
WEBDEV permite importar una ventana o un proyecto WINDEV completo dentro de un proyecto WEBDEV.
Con esta importación:
Las ventanas se transforman en páginas
Los códigos se transforman en código servidor
La importación de elementos sin equivalente en WEBDEV, se efectúa en forma de comentarios o de
elementos separados.
Para importar un proyecto WINDEV a un proyecto WEBDEV:
1. En el panel “Proyecto”, dentro del grupo “Proyecto”, despliegue “Importar” y seleccione “Un proyecto
WINDEV o WINDEV Mobile”. Se lanzará el asistente de importación de un proyecto WINDEV o WINDEV
Mobile.
2. Seleccione el proyecto WINDEV a importar. Este proyecto no se va a modificar y se creará un nuevo proyecto
WEBDEV.
3. De un nombre y un emplazamiento al proyecto WEBDEV a crear.
4. Si hay un análisis relacionado al proyecto, indique su nombre, su emplazamiento y si este análisis va a ser
utilizados por el proyecto WEBDEV.
5. Indique los elementos a compartir entre el proyecto WEDBEV y el proyecto WINDEV (elementos comunes del
tipo “Informes”, “Clases”, …). Si los elementos son compartidos, no se copiarán en el proyecto WEBDEV.
6. Valide. El proyecto WINDEV se ha convertido en proyecto WEBDEV.
Para importar elementos WINDEV a un proyecto WEBDEV:
1. Abra el proyecto WEBDEV en el que se va a importar el elemento.
2. En el panel “Proyecto”, dentro del grupo “Proyecto”, despliegue “Importar” y seleccione “Elementos WINDEV
o WINDEV Mobile”. Se abre el asistente de importación. Seleccione el proyecto WINDEV que contiene los
elementos a importar o directamente los elementos WINDEV a importar. Pase a la etapa siguiente.
3. Indique los elementos a compartir entre los proyectos WINDEV y WEBDEV. Estos elementos no se copiarán al
proyecto WEBDEV.
4. Valide. Los elementos especificados son importados automáticamente al proyecto WEBDEV en curso.
Pueden aparecer diferencias entre la visualización de una página HTML antes de la importación y
la página HTML después de la importación.
3. Indique el emplazamiento de la página HTML. Esta página puede ser un fichero existente en su puesto (botón
“…”) o una dirección de internet (por ejemplo: htttp://www.misitiowebdev.fr/mipagina.html). la página “HTML
se muestra en el cuadro “Vista de la página”.
4. Valide. Se acaba de crear una nueva página WEBDEV.
5. Guarde la página. La página se añade automáticamente a la lista de elementos de su proyecto.
Optimizar y
depurar un
proyecto
Auditoría estática.
La auditoría estática es una funcionalidad del entorno que permite analizar las fuentes de un proyecto para detectar
distintos problemas y proponer mejoras.
Para lanzar la auditoría estática en el proyecto “WW_Optimizacion”:
1. En la cinta, en el panel “Proyecto”, en el grupo “Auditoriayrealizaciones”, despliegue “Auditoría de edición” y
seleccione “Desencadenar la auditoría de edición”.
La auditoría estática del proyecto puede igualmente lanzarse desde el tablero de control del
proyecto a través del widget “Auditoría estática y compilación”.
Hay que:
Activar el Widget si fuera necesario (clique sobre el enlace “Clique aquí para reactivar”).
Clique sobre la flecha.
Notas
Procedimiento no ejecutado
En nuestro proyecto, la auditoría nos indica que un procedimiento no se va a ejecutar jamás.
Ocurre frecuentemente en los proyectos importantes, que se crea uno o varios procedimientos para realizar un
tratamiento, y luego debido a una reorganización del código, el procedimiento no se vuelve a utilizar jamás en el
proyecto.
La presencia de procedimientos no utilizados, hace más pesados inútilmente los recursos distribuidos a los usuarios
finales.
Capítulo 9 – Optimizar y depurar un proyecto |259
Para tratar este problema:
1. Clique sobre el botón “[…] para obtener más informaciones. La ventana que muestra los códigos “muertos”
aparecerá:
Elemento huérfano
La auditoría nos indica que nuestro proyecto contiene un elemento huérfano.
Al igual que los procedimientos ejecutados, también es frecuente crear ventanas, informes para realizar una prueba
rápida, guardarlos y olvidarlos. La presencia de elementos huérfanos en el ejecutable, hace más pesados los recursos
distribuidos a los usuarios finales.
Para tratar este problema:
1. Clique en el botón […] para obtener más información. La ventana que lista los elementos huérfanos
aparecerá:
Consulta a optimizar
La auditoría nos indica que nuestro proyecto contiene una consulta a optimizar.
Esta optimización permite mejorar la velocidad de ejecución de una consulta. La optimización de una consulta
descansa sobre el siguiente principio: un asistente determina las claves compuestas a modificar y/o añadir en el
análisis asociado al proyecto.
Para optimizar la consulta:
1. Clique sobre el botón […] para obtener más informaciones. La ventana que lista las modificaciones a realizar
en el análisis aparecerá.
Auditoría dinámica.
La auditoría dinámica permite analizar la ejecución de la aplicación. La auditoría permitirá detectar algunos problemas
como:
Consumo excesivo de memoria.
Lentitud de los algoritmos utilizados.
Errores “enmascarados” cuando se ejectua.
…
Capítulo 9 – Optimizar y depurar un proyecto |262
Una auditoría dinámica puede efectuarse en un entorno de pruebas o en una aplicación en producción.
El proyecto “WW_Optimizacion” contiene una página específica que provoca errores que pueden ser detectados por la
auditoría dinámica.
Vamos a lanzar la auditoría dinámica al mismo tiempo que la prueba del proyecto.
Para lanzar la auditoría dinámica sobre el proyecto “WW_Optimizacion”:
1. En la cinta, bajo la pestaña “Proyecto”, en el grupo “Modo prueba”, despliegue “Modo prueba” y seleccione
“Depurar el proyecto con la auditoría activada”. Se lanza la prueba del proyecto.
La auditoría dinámica del proyecto puede igualmente lanzarse desde el cuadro de mandos del
proyecto a través del Widget “Auditoría dinámica”. Hay que:
Activar el Widget si hiciera falta (clique sobre el enlace “Clique aquí para reactivar”).
Desplegar la flecha y seleccione “Go minucioso del proyecto”.
Notas
Si el evento está relacionado con una línea de código en particular, el botón permite abrir directamente el editor
de código en el sitio correspondiente a fin de poder corregir el problema.
Cierre la ventana de auditoría dinámica.
La auditoría dinámica del proyecto puede igualmente efectuarse cuando el sitio está desplegado.
Hay que utilizar la función dbgEnableAudit para desencadenar la auditoría dinámica.
La auditoría genera un fichero “.wdaudit”; este fichero deberá ser cargado en el entorno de
Notas
El analizador de actuaciones puede también lanzarse desde el cuadro de mandos del proyecto a
través del Widget “Actuaciones”. Hay que:
Activar el Widget si es necesario (clique sobre el enlace “Clicar aquí para reactivar”).
Clicar sobre la flecha y seleccionar “Analizar las actuaciones”.
Notas
La pestaña “Cartografía” permite identificar de manera visual cual ha tomado más tiempo. En nuestro caso,
es una llamada a la función HTTPRequete (httpRequest):
La pestaña “Detalles” presenta todos los tratamientos llamados, desde el más largo al más rápido.
Utilizar el depurador
Para depurar la página PAGE_AnalizadorRealizaciones:
1. Abra la página “PAGE_AnalizadorRealizaciones” en el editor de páginas (doble clic en su nombre en el
explorador del proyecto).
2. En el editor de WEBDEV, sitúe un punto de interrupción en el código del botón “Tratamiento a analizar”:
clique delante de la primera línea del código de tratamiento de clic servidor o utilice el atajo [CTRL]+[B];
aparecerá un punto rojo. Cuando se llegue a la ejecución de la línea de código precedida del punto de
detención, se lanzará el depurador.
Hay muchos métodos que permiten lanzar el depurador; para más detalles, consulte la ayuda en
Notas
4. Clique en el botón “Tratamiento a analizar”. Se abre el depurador: el editor de código aparecerá en modo
“Depurador”. La línea actual, está precedida de una pequeña flecha.
En la parte inferior de la pantalla, aparecerá el panel “Depurador”. Este panel muestra dos zonas distintas:
La pila de las llamadas: esta zona permite conocer la jerarquía de los tratamientos mostrados en el
depurador. En nuestro ejemplo, por el momento, estamos empezando a depurar el tratamiento de clic sobre
el botón BTN_TratamientoLargo.
Capítulo 9 – Optimizar y depurar un proyecto |272
La lista de expresiones a evaluar. Por defecto, las principales variables utilizadas en el código se muestran en
esta zona. También se pueden añadir variables para seguir su evolución (veremos esta funcionalidad más
adelante).
Vamos a efectuar algunas manipulaciones en el depurador para poder descubrir sus posibilidades.
Primero, vamos a ejecutar paso a paso las distintas instrucciones y veremos el contenido de las variables:
1. Pulse la tecla [F7] (o sobre el botón “Paso a paso con detalle”). La línea en curso se ejecuta automáticamente
y si es necesario, se entra en los sub-procedimientos.
Observación: Para no entrar en los sub-procedimientos, utiliza la tecla [F9] o el botón “Paso a paso”.
Si lo necesita, los valores de las variables pueden modificarse en el panel “Depurador” (mostrado por defecto
en la parte inferior de la pantalla.
2. Continúe pulsando la tecla [F7] hasta la línea “Produit.Stock = InterrogeBaseFournisseur…) y pase con el
cursor sobre “Produit.Stock”. Una burbuja de ayuda se muestra con el valor de la expresión.
3. El valor de “Produit.Stock” se muestra en una burbuja de ayuda. Este valor corresponde a 20 porque la línea
de código no se ha ejecutado.
4. Utilice la tecla [F8] para ejecutar la línea.
5. Pase nuevamente sobre “Produit.Stock”. El valor de “Produit.Stock” mostrado en la burbuja de ayuda
corresponde desde ahora al resultado del procedimiento InterrogeBaseFournisseur.
Ahora vamos a añadir una expresión para monitorizar la evolución de su valor en el panel “Depurador”. Esta
expresión puede ser de cualquier tipo: variable, función, operación sobre variables, … El resultado de la
expresión se calcula y se muestra.
Esta expresión permite efectuar una depuración personalizada. Por ejemplo, se puede conocer el contenido de
una variable al tiempo y a medida de su uso en la aplicación.
1. Seleccione “Produit.Stock” en el código y muestre el menú contextual (clic derecho). Seleccione la opción
“Añadir la expresión en el depurador”.
2. La expresión se añade automáticamente en el panel del depurador bajo de la pantalla.
2. Utilice la tecla [F5] (o clique sobre el botón “Continuar” que hay en la cinta). El código se ejecuta hasta el
punto de detención. La flecha que permite identificar la línea en curso se desplaza hasta el punto de
detención.
3. Quite el punto de detención, clicando directamente sobre el mismo.
Para acabar la prueba, vamos a utilizar una expresión “Autostop”. Una expresión “Autostop” permite lanzar el
depurador hasta que se verifica una condición o hasta que se modfique el valor de una variable. En nuestro
ejemplo, vamos a lanzar el depurador hasta que el valor del stock sea igual a 50:
1. En el panel “Depurador”, seleccione la expresión “Produit.Stock” que hemos añadido previamente.
2. Clique sobre el círculo verde.
3. Pulse la tecla [F5] para continuar la prueba.
4. Se muestra un mensaje indicando que el valor de la expresión “Produit.Stock” ha cambiado.
5. Valide.
6. En el panel “Depurador”, seleccione la expresión “Produit.Stock”. Clique una segunda vez sobre la expresión:
La columna “Expresión” pasa a edición. En la zona “Expresión”, añada “=50”. Obtendrá “Produit.Stock = 50”.
7. Pulse la tecla [F5]. El programa continúa ejecutándose. El depurador se lanza nuevamente hasta que la
variable “Produit.Stock” tenga un valor de 50.
Y ya está, hemos terminado nuestra visita al depurador. Para detener la prueba del depuradro, clique en
“Terminar la prueba” en la cinta.
Capítulo 9 – Optimizar y depurar un proyecto |274
CAPÍTULO
103
Administrar una
base HFSQL
Cliente/Servidor
WEBDEV permite:
Crear un sitio utilizando una base de datos HFSQL Cliente/Servidor
Modificar un sitio que utiliza una base HFSQL Clásico para que utilice una base de datos HFSQL Cliente/Servidor.
Piense en abrir este puerto en el firewall para conectarse al servidor HFSQL desde otra máquina.
Notas
9. La instalación ya se ha realizado. Por defecto, para conectarse al servidor en modo administrador, hay que
utilizar “admin” sin contraseña.
Si no ha realizado las manipulaciones de las lecciones precedentes, puede seguir esta lección
Corregido
2. Cargue el análisis de su proyecto en el editor de análisis: Clique sobre en los botones de acceso rápido
del menú de WEBDEV. Se mostrará el editor de análisis.
3. En la cinta, en el panel “Análisis”, en el grupo “Conexión”, clique sobre “Nueva conexión”. Se abrirá un
asistente que permitirá la creación de una conexón.
4. Seleccione el tipo de conexión a crear “HFSQL Cliente/Servidor”. Avance al paso siguiente.
15. Ya ha adaptado el proyecto de desarrollo. Puede ser necesario también adaptar el sitio desplegado (por
ejemplo si el sitio desplegado utiliza ficheros HFSQL Clásico). Esta operación se parametriza durante la
creación del programa de instalación del sitio.
3. Valide la pantalla. Aparecerá el Centro de Control HFSQL. Este modo de lanzamiento permite ver los distintos
ficheros relacionados con el análisis del proyecto en curso.
4. Clique si es necesario en el panel vertical “HFSQL C/S”. La lista de ficheros de datos en formato HFSQL
Cliente/Servidor se mostrará.
La pestaña “Descripción” presenta las informaciones de los ficheros de datos (campos del ficheros, …).
La pestaña “Contenido” muestra los registros existentes en el fichero de datos.
Desde el Centro de Control HFSQL, se puede administrar toda la base de datos HFSQL Cliente/Servidor.
Los derechos de los usuarios especificados en el Centro de Control HFSQL son los de rechos de
la base de datos y no los derechos de acceso al sitio.
Atención!
No hay que confundir la gestión de los derechos de las bases de datos Cliente/Servidor con el
groupware usuario que habíamos visto en una lección anterior.
3. La opción “Conectarse a un servidor HFSQL” está seleccionada por defecto. Indique las características del
servidor instalado en la lección anterior.
4. Las características del servidor HFSQL se muestran en los distintos paneles:
En el panel de la izquierda, aparecen el puesto, el nombre del servidor HFSQL así como la lista de las
bases existentes en el servidor .
En la parte derecha de la pantalla, una nueva pestaña se muestra permitiendo ver las características del
servidor HFSQL.
5. En la parte derecha de la pantalla, seleccione el panel “Usuarios”. Este panel permite gestionar los usuarios
del servidor.
6. De momento, solo existe el usuario “Admin”.
9. Valide la creación del usuario. Por defecto, este usuario no tiene ningún derecho.
5. Clique sobre el botón “Aplicar” que hay bajo de la ventana (flecha azul). El derecho se vuelve efectivo.
6. Cierre la ventana de gestión de los derechos.
Para permitir la lectura del fichero Cliente:
1. En el Centro de Control HFSQL, despliegue la base de datos “Sitio_WebDev_Completo”, y luego doble clic
sobre el fichero Cliente (a la izquierda de la pantalla).
2. En el panel “Cliente”, dentro del grupo “Derechos”, clique sobre “Gestión de derechos”.
3. Seleccione al usuario “Test” en la lista de usuarios.
4. En la lista de derechos, para la acción “Derecho a leer los registros de un fichero”, clique en la columna
“Derecho definido” y seleccione la marca verde.
La gestión de los usuarios y sus derechos, puede también efectuarse por programación a través
Notas
Gestor de
fuentes (GDS)
Cuando un desarrollador quiere modificar un elemento de un proyecto (una página, un informe, una consulta,
…), le indica al GDS que se adueñará temporalmente de este elemento. Para ello, el desarrollador extraerá
este elemento de la base de fuentes.
Este desarrollador obtiene entonces los derechos exclusivos sobre este elemento: puede hacer todas las
modificaciones deseadas sobre este elemento.
Los restantes desarrolladores continúan con la copia de la versión de referencia de este elemento (existente
en la base de fuentes).
Cuando el desarrollador finaliza sus modificaciones, devuelve el elemento extraído a la base de fuentes.
Los restantes desarrolladores son avisados de esta devolución. Pueden entonces actualizar su copia local.
Es aconsejable hacer regularmente copias de seguridad de la base de fuentes del GDS. Para ello,
hay que conectarse como administrador en la herramienta de administración del GDS y
Notas
Si no ha realizado las manipulaciones de las lecciones precedentes, puede seguir esta lección
Corregido
El uso de una base de fuentes con formato HFSQL Cliente/Servidor permite utilizar esta base de
Notas
fuentes a la distancia.
distintos proyectos. Así, el mismo elementos solo se integra una vez en el GDS y las
modificaciones se reportan automáticamente en los otros proyectos.
Las próximas aperturas de un proyecto gestionado por el GDS son idénticas a las aperturas de
un proyecto no gestionado por el GDS: hay que abrir el proyecto (fichero “.WWP”)
Notas
2. La extracción automática se activa a la primera modificación. Basta con desplazar un campo para extraer el
elemento.
3. También puede utilizar el icono “Extraer” que está en la cinta del panel GDS ( ).
4. Aparecerá la ventana de extracción:
Fusión de código
Puede comparar un elemento con una de sus versiones anteriores. Entonces se
Notas
puede comparar el código para recuperar un código “perdido” o eliminado por error
por otro desarrollador, por ejemplo.
Si utiliza los Centros de Control, también pueden terminar la tarea en curso con la reintegración
del elemento en el Gestor de fuentes. Esta funcionalidad es especialmente útil para asegurar el
Notas
Para más información sobre el GDS, consulte la ayuda en línea de WEBDEV (palabra clave: “GDS”).
Anexos
Ajax
AJAX (por Asynchronous Javascript and XML) permite refrescar solamente los datos modificados en una página HTML
sin volver a mostrar la totalidad de la página.
Afectación
Operación que consiste en poner un valor en una variable o en un campo. Por ejemplo:
// Afectación del valor DUPONT en la variable NombreCliente
NombreCliente = “DUPONT”
El signo “=” es el operador de afectación
Alineación
Manera de organizar los campos de una ventana o de una página. Por ejemplo, centrar un campo en una página,
poner la misma anchura a varios campos, …
Ambiente
Carta gráfica de un sitio WEBDEV.
Elemento en el que se define la forma gráfica de las páginas de un proyecto WEBDEV.
Análisis
Descripción de la estructura de los ficheros de datos y sus relaciones.
Anclaje
Mecanismo que consiste en definir las reglas de posición o redimensionamiento para que el contenido de una ventana
o de una página se adapte al redimensionamiento de una ventana o de un navegador.
AWP
Formato de página direccionable directamente (URL fija), referenciable, sin contexto automático.
Base de datos
Elemento que contiene los datos de un programa. Los datos se organizan en ficheros o tablas.
Bloque (Informe)
Elemento que constituye un informe. Por ejemplo, un bloque Cabecera de página, un bloque Pie de página, un bloque
Cuerpo.
Campo (Rúbrica)
Elemento que forma parte de la estructura de un fichero de datos o de una tabla (de un análisis). Por ejemplo, un
fichero CLIENTE puede estar compuesto por los campos Nombre y Apellidos.
Clase (POO)
Elemento definido en programación orientada a objetos. Una clase, reúne métodos (acciones) y miembros (datos).
Clave (fichero)
Característica de un campo del fichero. Un campo clave permite optimizar las búsquedas y las clasificaciones dentro
de un fichero de datos.
Sinónimo: índice.
Cliente/Servidor (fichero)
Tipo de acceso a un fichero HFSQL. Un fichero HFSQL es de tipo Cliente/Servidor cuando se accede al mismo
conectándose a un servidor que contiene este fichero a través del motor HFSQL.
Componente Externo
Bloque de software que permite exportar una o varias funciones de negocio para reutilizarlas.
Componente Interno
Contenedor que agrupa elementos de un proyecto (ventana, página, consulta, informe, clase, …) para facilitar la
compartición con otro proyecto.
Consulta
Elemento escrito en lenguaje SQL que permite acceder en lectura o escritura al contenido de una ase de datos con el
formato SQL.
Contexto (Página)
Parte en memoria en un servidor Web que sirve para constituir una página que está visible en un navegador.
CSS
Lenguage de descripción de los estilos de los diferentes elementos de una página HTML.
Data binding
Método que permite asociar un elemento gráfico del IHM a un dato (variable, campo).
Despliegue
Acción de instalar un programa en el puesto del usuario.
Editor
Programa que permite crear un elemento de un proyecto (editor de ventanas, editor de informes, …)
Enlace (análisis)
Permite describir la naturaleza de la relación o el punto en común entre dos ficheros del análisis. De un enlace,
depende la descripción de las reglas de integridad a respetar al escribir en los ficheros implicados.
Estilo
Elemento que permite describir el aspecto gráfico de un campo en una ventana o en una página. Un estilo se
compone por ejemplo de un tipo de fuente de caracteres, del tamaño de los caracteres, del color de los caracteres, …
FAA
Funciones Automáticas de la Aplicación
Fichero (Tabla)
Elemento que constituye una base de datos. Un fichero sirve para almacenar los datos introducidos en un programa.
Por ejemplo, un fichero CLIENTE contendrá las informaciones de los clientes que han sido introducidos en un
programa.
GDS
Gestor de fuentes. Herramienta para organizar, compartir fuentes de los proyecto, gestionar derechos, …
Groupware de usuario
Herramienta de los derechos de acceso al IHM para los usuarios de un programa o de un sitio. Por ejemplo, impedir
que un usuario pueda clicar sobre un botón “Eliminar” en función de su login o su grupo.
Hoja de estilos
Contiene la lista de los estilos utilizados en un proyecto.
Homotético
Método de redimensionamiento de una imagen para poder mostrarla más grande sin deformar su contenido.
HTML
HyperTextMarkupLanguage
Lenguaje que permite describir los elementos de una página WEB.
IHM
Interface Homme Machine. Descripción de las ventanas o las páginas que constituyen un programa. Es lo que vé el
usuario cuando utiliza el programa.
Índice (fichero)
Sinónimo: Clave
Informe
Elemento de un proyecto que define una impresión a realizar.
Javascript
Lenguaje de programación que es utilizado por los navegadores para hacer cálculos y tratamientos en una página
HTML.
Live Data
Mecanismo que consiste en mostrar los datos reales provenientes de la base de datos durante la creación del IHM.
Este mecanismo se utiliza solamente si el elemento está enlazado al fichero de datos.
Miembro
Variable que forma parte de una clase.
Menú contextual
Menú desplegable que contiene las acciones posibles dependiendo del lugar donde se realiza el clic derecho del ratón
y del tipo de elemento sobre el cual se efectúa el clic.
Método
Procedimiento que forma parte de una clase permitiendo actuar sobre los datos (miembros) de la clase.
Modelo de campos
Contenedor de uno o varios campos (con tratamientos) que puede ser reutilizado indefinidamente en las páginas.
Característica principal de un modelo: si el modelo original se modifica, las modificaciones son repercutidas
automáticamente en las distintas utilizaciones del modelo.
Modelo de informes
Contenedor que representa un informe tipo, que puede aplicarse a uno o varios informes de un proyecto.
Característica principal de un modelo: si el modelo original se modifica, las modificaciones son repercutidas
automáticamente en las distintas utilizaciones del modelo.
Modelo de páginas
Contenedor que representa una página tipo que puede aplicarse a una o varias páginas de un proyecto.
Característica principal de un modelo: si el modelo original se modifica, las modificaciones son repercutidas
automáticamente en las distintas utilizaciones del modelo.
n-tiers
Método de programación en capas. Cada capa es independiente y puede cambiarse sin impactar sobre las restantes.
Ventaja: gran flexibilidad de mantenimiento.
Inconveniente: dificultad y tiempo de desarrollo.
Página
Elemento de un proyecto WEBDEV en el que se define una parte del interface gráfico del sitio a realizar. Un sitio se
compone generalmente de varias páginas que se encadenan.
POO
Abreviatura de Programación Orientada a Objetos.
Popup
Tipo de ventana (o página). Una Popup es una ventana (o página) que se superpone a otra ventana (o página). Así
se puede continuar visualizando el contenido de la ventana (o página) de debajo y continuar la introducción en la
popup.
Privado
Variable o procedimiento solamente utilizable por el elemento que la contiene.
Programación de eventos
Tipo de programación. Una acción de un usuario en una ventana o una página induce a ejecutar un código. El código
de la acción a ejecutar se introduce en el evento representando la acción del usuario.
Por ejemplo, el evento “Clic de un botón”, corresponde a un clic con el ratón del usuario sobre este botón.
Proyecto
Elemento que reagrupa todos los elementos que forman parte de un programa o un sitio. Un proyecto contiene por
ejemplo, un análisis, páginas, informes, consultas, …
Público (que)
Variable o procedimiento utilizable desde todos los elementos.
RAD
Acrónimo de Rapid Application Development
Método de desarrollo rápido de un programa a partir de un análisis (descripción de los ficheros de datos).
RAD Aplicativo
Método de desarrollo rápido de un programa a partir de un modelo de programa.
Restricción de integridad
Regla a respetar asociada a un campo de un fichero para asegurar la coherencia de los datos en una base de datos.
Rotura (Informe)
Mecanismo consistente en reagrupar y separar los datos siguiendo un valor.
Por ejemplo, hacer una rotura en un informe que lista los clientes por ciudad. Se agrupan por tanto los clientes de la
misma ciudad. Visualmente, se separan los clientes a cada cambio de ciudad.
Sitio dinámico.
Proyecto desarrollado en WEBDEV que contiene las páginas estáticas y dinámicas. Las páginas dinámicas permiten
gestionar el acceso a los datos almacenados en una base de datos.
Sitio estático.
Proyecto desarrollado en WEBDEV que contiene las páginas estáticas, es decir aquellas que no tienen acceso a una
base de datos.
Tabla (campo)
Elemento gráfico presenten en una ventana o en una página. Un campo tabla está formado por una o varias
columnas y de varias líneas.
Tablero
Tipo de variable que contiene varios valores. Los valores son accesibles a través de un índice. Los “[“ “]” permiten
desde el lenguaje acceder a los elementos de un tablero.
Variable
Elemento que permite almacenar en memoria un valor dentro de un programa. Existen varios tipos de variables. Cada
tipo corresponde a la naturaleza del valor que se desea memorizar. Por ejemplo, una variable de tipo cadena (string)
para almacenar el nombre de una persona, una variable de tipo monetario para almacenar un importe.
WebService
Programa instalado en un servidor Web, cuyos tratamientos son accesibles por la Web.
XML
Lenguaje para organizar los datos para normalizar y facilitar el intercambio de estos datos (utilizado especialmente en
los intercambios con los WebServices).
Zoning
Método para definir la distribución de una página Web.
Las variables globales declaradas en código servidor están disponibles en los códigos navegador
de la página solamente para los siguientes tipos: booleano, entero, real, cadena, tablero simple
Atención!
o tablero asociativo.
Las modificaciones aportadas en código navegador sobre una variable global (afectación de un
valor, por ejemplo), no están reportadas en código servidor.
Dentro del código navegador de la carga de la página (variables navegador globales a una página). Estas
variables podrán ser utilizadas en el código navegador de todos los tratamientos de la página y todos los
elementos de la página.
Las variables navegador globales a una página no están disponibles para el código servidor de la
Atención!
página.
En código navegador, solo podrán ser declaradas como variables locales los siguientes tipos:
booleano, entero, real, cadena, tablero simple o tablero asociativo de uno de los tipos anteriores.
Pero este tipo de programación, es frecuentemente la causa de “machacar” las variables y otros
efectos secundarios indeseados.
Es pues preferible declarar un número limitado de variables locales y luego declarar las variables
locales.
Instrucciones de WLangage
WLangage es un L5G enriquecido, compuesto de:
Funciones WLangage.
Propiedades WLangage.
Palabras clave WLangage.
Instrucciones WLangage.
A su tiempo, y a medida de su formación, descubrirá las instrucciones necesarias.
En esta lección, simplemente vamos a presentarle las instrucciones básicas, que permiten realizar las condiciones y
los bucles, o simplemente introducir comentarios.
Para comprender un concepto, pasemos a la manipulación. El proyecto “WW_Bases_Programacion” contiene
ejemplos para cada concepto presentado.
1. Arranque WEBDEV 21 si no lo había hecho previamente.
2. Cierre si es necesario el proyecto en curso: En el panel “Inicio”, dentro del grupo “General”, despliegue
“Cerrar” y seleccione la opción “Cerrar el proyecto”.
3. En la ventana de bienvenida, clique sobre la opción “Curso de Auto-formación” y seleccione el proyecto
“Bases de la programación”.
Astucia: también puede en el panel “Inicio”, dentro del grupo “Ayuda en línea”, desplegar “Guía de Auto-
formación” y luego seleccionar la opción “Bases de la programación”.
Instrucciones condicionales (código servidor y navegador)
WLangage permite gestionar instrucciones condicionales del tipo:
IF, ELSE, END para verificar una condición.
SWITCH, CASE, END para ejecutar una o varias acciones según los distintos resultados del valor de una
condición
Algunos ejemplos:
IF EDT_Maximo > Random (1.999) THEN
Info (“Bravo, ha ganado usted”)
ELSE
Info (“Lo siento, ha perdido”)
END
SWITCH dia
CASE “Lunes”
// primer día de la semana
CASE “Miércoles”
// Tercer día de la semana
CASE “Viernes”
// Quinto día de la semana
CASE “Sábado”, “Domingo”
// Es fin de semana
Capítulo 12 - Anexos |319
OTHER CASE
// Es otro día
END
Ejemplo práctico
Después de haber presentado las principales instrucciones condicionales, hagamos una pequeña prueba real!.
Abra la página “PAGE_Instrucciones” (por ejemplo, doble clic sobre su nombre en el explorador del proyecto).
Esta página presenta distintos ejemplos.
WLangage propone también los bucles del tipo FOR ALL, END permitiendo recorrer los elementos
de un campo, las cadenas de caracteres, los registros de un fichero de datos, … Estos bucles
Notas
Algunos ejemplos:
I is int = 0
WHILE I < Maximo
I++ // Equivalente a I = I + 1
END
Capítulo 12 - Anexos |320
I is int = 0
LOOP
I++ // equivalente a I = I +1
IF I > Maximo THEN EXIT
END
Puede poner como comentarios varias líneas seleccionando con el teclado (o el ratón) las líneas
a poner en comentario y luego pulsar las teclas [CTRL]+[/] (del teclado numérico).
Puede realizar la operación inversa (quitar los comentarios) seleccionando con el teclado (o el
Notas
ratón) las líneas a las que se van a quitar los comentarios y luego pulsando las teclas
[CTRL]+[SHIFT]+[/] (del teclado numérico).
Lance la prueba de esta página ( en los botones de acceso rápido) y pruebe los operadores lógicos.
Operadores de comparación
WLangage tiene numerosos operadores de comparación que permiten realizar numerosos tratamientos.
Operadores de igualdad: igualdad (=), igualdad flexible (~=) o igualdad muy flexible (~~).
Operadores de comparación: distinto (<>), inferior y superior (<, <=, >, >=), o empieza por ([=, [=~,
[=~~).
Ejemplo práctico
Una página de ejemplo está disponible para probar algunos casos de utilización de los distintos operadores de
comparación.
En el proyecto “WW_Bases_Programación”, abra la página “PAGE_Operador”
Lance la prueba de esta página ( en los botones de acceso rápido) y pruebe los operadores de
comparación.
Operadores de indirección
El mecanismo de la “indirección” permite construir el nombre de un campo, de un campo del fichero o el nombre de
una variable a partir de una expresión de tipo cadena.
Esto permite por ejemplo, crear tratamientos genéricos independientes de los nombres de los campos, variables,
campos del fichero, …
Para optimizar la velocidad de sus aplicaciones, es aconsejable precisar con el uso de la sintaxis de indirección, el tipo
del elemento manipulado.
Así, si manipula un campo, el tipo correspondiente será IndControl.
He aquí algunos ejemplos de indirección:
Ejemplo de indirecciones simples:
{“NOM”, IndControl} = NomCli
Capítulo 12 - Anexos |322
// es equivalente a NOM=NomCli
{“NOM”,IndControl} = {“CL.NOMCLI”}
// es equivalente a NOM=CL.NOMCLI
{“PAGE_CLI.NOM”, IndControl = NomCli
// es equivalente a PAGE_CLI.NOM=NomCli
{“PAGE_CLI”+”.NOM”, IndControl} = NomCli
// es equivalente a PAGE_CLI.NOM = NomCli
Ejemplo de indirección con un procedimiento:
NombreCampo is string
NombreCampo = “INTRODUCIR1” //INTRODUCIR1 es el nombre del campo
// llamada a un procedimiento que vuelve un campo invisible
Para más detalles sobre el uso de las indirecciones, consulte el ejemplo unitario “Uso de las
Ejemplo
indirecciones” proporcionado estándar con WEBDEV. Este ejemplo es accesible desde la ventana
de bienvenida de WEBDEV ([CTRL]+[<]).
Procedimientos y funciones
Definición
Cuando un tratamiento se llama varias veces en un proyecto o en una página, es bastante interesante crear un
procedimiento que contenga este tratamiento. Bastará con llamar el procedimiento cada vez que sea necesario.
Junto a la programación, existen los procedimientos y las funciones:
Las funciones devuelven un resultado.
Los procedimientos sirven para ejecutar un tratamiento específico.
WEBDEV permite gestionar simplemente los dos tipos de tratamiento de la misma forma. En WEBDEV no hay
diferencia entre un tratamiento y una función. Por eso, en el seguimiento de este curso, utilizaremos solamente el
término “procedimiento”.
Existe la posibilidad de crear procedimientos “locales” y procedimientos “globales”.
Sin embargo, se puede ejecutar un procedimiento servidor desde un código navegador mediante
la validación de un botón o con la función WLangage AJAXExecute
Procedimiento local
Un procedimiento “local” está enlazado a una página y solamente a esta página.
Un procedimiento, cuando es local, puede utilizarse solamente en los tratamientos de la página y los campos de la
página en la que está declarada. Forma parte de la página.
Procedimiento global y colección de procedimientos.
Los procedimientos “globales” están contenidos en las “colecciones de procedimientos”. Cada “Colección de
procedimientos” es un fichero que contiene todos los procedimientos globales que tiene asociados.
Por ejemplo, una colección permite agrupar los procedimientos según un tema: CálculosIVA, CálculosLibresDePortes,
…
En un proyecto correspondiente a un sitio dinámico, dos tipos de colecciones pueden utilizarse:
Una colección de procedimientos de servidor, fichero de extensión “.WDG”.
Una colección de procedimientos de navegador, fichero de extensión “.WWN”.
Puede crear tantas colecciones de procedimientos como desee, dentro de un proyecto.
Una colección de procedimientos permite:
Compartir procedimientos globales entre varios desarrolladores, para un mismo proyecto.
Capítulo 12 - Anexos |323
Compartir procedimientos globales entre varios proyectos. En efecto, una misma colección de procedimientos
puede utilizarse en varios proyectos.
Para crear una colección de procedimientos:
1. Seleccione la pestaña “Explorador del proyecto”.
2. Selecciones “Procedimientos”.
3. En el menú contextual (clic derecho), seleccione:
O la opción “Nueva colección de procedimientos” para crear una colección de procedimientos servidor.
O la opción “Nueva colección de procedimientos navegador” para crear una colección de procedimientos
navegador.
Pulsar simultáneamente las teclas [CTRL]+[F2] permite regresar al código anterior en el nombre
del procedimiento.
Creación de un procedimiento
Un procedimiento puede crearse directamente desde el editor principal de WEBDEV. Basta con utilizar la pestaña
“Explorador del proyecto”.
Ejemplo práctico
Después de haber visto la teoría, un poco de práctica!
En el proyecto “WW_Bases_Programación, abra la página “PAGE_Code” (Doble clic sobre su nombre en el
explorador del proyecto). Esta página presenta distintos ejemplos.
Para construir una cadena a partir de una cadena y del resultado de una función se aconseja
utilizar la función InfoBuild. Esta función permite construir el texto mostrado en función de
parámetros (%1, %2, …):
InfoBuild (%1 no se encuentra en el texto”, CadenaABuscar)
Por supuesto, también se puede utilizar la concatenación simple:
Info (CadenaABuscar + “ no se encuentra en el texto”)
Astucia
Si lo que desea es mostrar el resultado del cálculo, hace falta utilizar el siguiente código:
Info (“Un cálculo: “ + (1 + 2))
La caja de diálogo mostrará “Un cálculo: 3”.
Manipulaciones diversas
Algunos ejemplos de manipulaciones de numéricos realizadas en WLangage:
La parte entera de un número se averigua por la función IntegerPart, la parte decimal por la función
DecimalPart:
InfoBuild (“Parte entera de %1: %2” + CR + “Parte decimal de %1: %3”, …
EDT_RealConSigno, IntegerPart (EDT_RealConSigno), DecimalPart (EDT_RealConSigno))
El valor absoluto de un número lo devuelve la función Abs:
InfoBuild (Valor absoluto de %1: %2”, EDT_RealConSigno, Abs(EDT_RealConSigno))
El valor redondeado de un número lo devuelve la función Round:
InfoBuild (Redondeo de %1: %2”, EDT_RealConSigno, Round (EDT_RealConSigno))
La función Root permite calcular la raíz enésima de un número:
InfoBuild (“Raíz cuadrada de %1: %2”, EDT_Referencia_Raiz, Root (EDT_Referencia_Raiz, 2))
La función Power permite elevar un número a la potencia N:
InfoBuild (Potencia 2 de %1: %2”, EDT_Referencia_Potencia, …
Power (EDT_Referencia_Potencia, 2))
Observación: El tipo de los campos de entrada numéricos
Cuando un campo se define como numérico, no se conoce a priori su tipo (entero, real, real doble, …). Su tipo se
define automáticamente en función de la máscara seleccionada para el campo.
Para forzar el tipo de un campo, basta con utilizar una variable tipificada. Por ejemplo:
Val1 is integer
Val1 = 123456789
EDT_Num1 = Val1 // Afectación del campo
Val1 = EDT_Num1 // Recuperación del campo
¿Un ejercicio de aplicación? Su turno!
Para implementar las distintas funcionalidades de este capítulo le proponemos un pequeño ejercicio:
En la página “PAGE_Numérica”, dentro de la zona “Su turno”, se le propone un ejercicio:
En el botón “Calcular”, escriba el código que permite mostrar en el campo “Resultado”, el resultado de la
resta de los campos “Importe 1” e “Importe 2” redondeado a 1 decimal.
Pruebe la página para probar su código.
Corrección: En la parte “Corregida”, el botón “Calcular” contiene la solución.
Pruebe la página. Esta página permite probar los distintos códigos presentes en este párrafo
Detalles
Los reales permiten manipular por programación los números decimales.
Los monetarios permiten gestionar igualmente estos números decimales pero de manera más precisa.
En efecto, con los reales, los redondeos se realizan por sistema y estos redondeos pueden inducir a errores de
cálculo.
Por ejemplo:
// Con una variable de tipo Real Doble, el cálculo es falso
X is real
X=18.6 – 8.6 – 10
Error (“18.6 – 8.6 – 10 = “ + X)
Para probar este código, clique sobre el botón “Operaciones con reales” en la página de prueba.
Con las variables de tipo monetario, el cálculo lo realiza WLangage.
WLangage garantiza 23 cifras significativas lo que permite tener cálculos correctos en todas las circunstancias.
Con el siguiente código, el cálculo es correcto:
X is currency
X = 18.6 – 8.6 – 10
Info (“18.6 – 8.6 – 10 = “ + X)
Para probar este código, clique sobre el botón “Operaciones con monetarios” en la página de prueba:
Para efectuar las divisiones con los monetarios, es aconsejable pasar por variables intermedias de tipo “Monetario”.
Monetario1, Monetario2 are currency
// Atribuir un número a las dos variables monetarias
Monetario1 = “12 345 678 901 234 567,123456”
Monetario2 = “12 345 678 901 234 567,123456”
// División de Monetario1 por Monetario2
Monetario1 = Monetario1 / Monetario2
// Mostrar el resultado de la división
Info (“12 345 678 901 234 567,123456”, “ dividido por “, …
12 345 678 901 234 567,123456 “, “ = “ + Monetario1
Para probar este código, clique en el botón “División de monetarios” en la página de prueba.
Para hacer cálculos avanzados, WLangage pone a su disposición el tipo Numeric. Por defecto, el
tipo Numeric corresponde a 32 cifras para la parte entera y 6 cifras para la parte decimal (como
Observación
el tipo monetario).
Pero la ventaja del tipo Numeric es que se puede configurar el número de cifras a utilizar para la
parte entera y el número de cifras a utilizar para la parte decimal.
Para más detalles, consulte la ayuda en línea (Palabra clave: “Numeric”).
Si desea transformar un número en una cadena de caracteres respetando un formato bien precisado, basta con
utilizar la función NumToString. Por ejemplo:
NumToString (1234.567, “012,3f” ) // devuelve “00001234,567”
Pruebe la página. Esta página permite probar los distintos parámetros de la función NumToString.
A cada vez que deba utilizar la función NumToString y no sabe exactamente que parámetros tiene que utilizar,
utilice el asistente de código propuesto por WEBDEV: este asistente le dará la sintaxis a utilizar en función del
resultado deseado.
En el editor de código, cuando se introduce el nombre de una función seguido del paréntesis
abierto, aparecen varias informaciones en una lista:
Notas
En la página “PAGE_Date”, muestre la ventana de descripción del campo “Introducir una fecha” (opción
“Descripción” del menú contextual del campo). Muestre la pestaña “General”. Las informaciones mostradas son
las siguientes:
Existe la posibilidad de elegir una máscara de entrada de tipo “Fecha Sistema”. En este caso, el
formato mostrado será el definido en los “Parámetros regionales del panel de configuración de
Windows” de la máquina donde se va a ejecutar.
Notas
Atención: Los parámetros del sistema de explotación son los del servidor. Si su sitio está en
francés, pero albergado en un servidor inglés, las fechas se propondrán en formato
“MM/DD/AAAA”.
Para comprender la importancia y las relaciones entre la máscara de entrada y el valor devuelto, observemos los
siguientes ejemplos:
Si la máscara de entrada de un campo fecha es “DD/MM/AA” y el valor devuelto es “AAAAMMDD”:
DateJ = “20131225” // Muestra la fecha de la forma “25/12/13”
DateJ = “131225” // Muestra la fecha de una forma incorrecta
La fecha mostrada será incorrecta.
Si la máscara de entrada de un campo fecha es “MM/DD/AAAA” y el valor devuelto es “MMAADD”:
DateJ = “131225” // Muestra la fecha de la forma “12/25/2013”
DateJ = “20131225” // Muestra la fecha de una forma incorrecta
La fecha mostrada será incorrecta.
Por lo tanto, deberemos prestar mucha atención al formato del valor devuelto en un campo de tipo
fecha u hora.
Las funciones WLangage que manipulan:
Las fechas utilizan el formato “AAAAMMDD”.
Las horas utilizan el formato “HHMMSSCC” (algunas utilizan el formato “HHMMSSCCC”, para la gestión de los
milisegundos).
máscara se utilizará automáticamente en todos los campos de tipo Fecha del proyecto.
Esta funcionalidad es igualmente muy útil en los sitios multi-lenguaje.
Para probar esta funcionalidad en nuestro ejemplo, clique sobre el botón “FechaDelDia”.
Como podrá constatar, la fecha se muestra en formato “AAAAMMDD”.
Para mostrar la fecha en un formato más explícito, hay que utilizar la función DateToString:
Info (Hoy estamos a “+ DateToString (Today (), MaskSystemDate))
La función DateToString transforma una cadena con formato “AAAAMMDD” al formato elegido. La constante
“MaskSystemDate permite utilizar el formato de fecha definido en la pestaña “Lenguas” de las características del
proyecto.
Recuerde: Para mostrar las características del proyecto, en la pestaña “Proyecto”, dentro del grupo “Proyecto”, clique
sobre “Descripción”.
Para probar esta funcionalidad en nuestro ejemplo, clique sobre el botón “FechaACadena”.
Para probar esta funcionalidad en nuestro ejemplo, clique sobre el botón “En letras”.
Para probar esta funcionalidad en nuestro ejemplo, clique sobre el botón “DiferenciaFechas”.
También es posible obtener la duración entre la fecha del día y una fecha específica en forma de
un texto claro (hay dos días, en tres semanas, …). Basta con utilizar:
Una máscara de visualización del tipo “Duración relativa”.
Observación
Para probar esta funcionalidad en nuestro ejemplo, clique sobre el botón “Fechaadiaenletra”.
El tipo “Date” permite gestionar las fechas comprendidas entre el “01/01/0001” y el “31/12/9999” ( Se puede estar
tranquilo por una buena temporada).
Más en serio, para manipular el valor de estas variables, puede utilizar las sintaxis siguientes:
MiFecha is Date = “20121021”
Info (DateToString (MiFecha)) // Muestra “21/10/2012”
MiFecha..Year = MiFecha..Year + 1
MiFecha..Month = MiFecha..Month + 1
MiFecha..Day = MiFecha..Day + 1
Info (DateToString (MiFecha)) // Muestra “22/11/2013”
Para probar esta funcionalidad en nuestro ejemplo, clique sobre el botón “Ahora”.
¿Desea mostrar la hora en formato estándar “HH:MM:SS:CC”? el código es el siguiente:
Info (“Ahora son las “+ TimeToString (Now ()))
La función TimeToString transforma una hora con formato “HHMMSSCC” en una cadena con formato
“HH:MM:SS:CC”.
Para probar esta funcionalidad en nuestro ejemplo, clique sobre el botón “HoraACadena”.
Para no mostrar las centésimas de segundo, el código es:
Info (“Ahora son las “ + TimeToString (Now (), “HH:MM:SS”))
Basta con precisar el formato de visualización de la hora con la función TimeToString.
Para probar esta funcionalidad en nuestro ejemplo, clique sobre el botón “Sin las centésimas”.
No ponga ningún “:” en la hora pasada como parámetro a la función TimeToString, ya que
Atención!
falseará el resultado.
Para calcular las duraciones de más de 24 horas, utilice los tipos Fecha, Hora, …
Para probar esta funcionalidad en nuestro ejemplo, clique sobre el botón “Primer ejemplo”.
El mismo cálculo puede efectuarse utilizando las variables de tipo Time o Duration.
WLangage propone tipos de variables específicas para los valores de tipo Date, Time, DateTime o Duration. Estas
variables son asimilables a las “cadenas”. Cada una contiene un valor según el cuadro siguiente:
Para probar esta funcionalidad en nuestro ejemplo, clique sobre el botón “Segundo ejemplo”.
Para visualizar el elemento correspondiente al tratamiento en curso, en el panel “Código”, en el grupo “Navegación”,
clique sobre “Ir al objeto” ([CTRL]+[ALT]+[F2]). Se muestra la página que contiene el elemento deseado.
El código fuente en curso puede imprimirse directamente clicando sobre el icono en el panel “Inicio” o con la
combinación de teclas [CTRL]+[P].
Las funciones de búsqueda o de reemplazamiento (en el código, el interface, …) son accesibles desde el panel
“Inicio”, en el grupo “Buscar” o en la pestaña “Buscar – Reemplazar” ([CTRL]+[F]):
El editor de código permite colapsar o desplegar el código WLangage. Esta funcionalidad es muy útil si sus
tratamientos utilizan numerosas instrucciones estructuradas (bucles, condiciones, recorridos, …).
Para replegar el código, en el panel “Visualización”, despliegue “Replegar” y seleccione la opción de menú “Replegar
todo” (o el atajo [CTRL]+[SHIFT]+[*] (del teclado numérico)).
Solo los comentarios quedarán visibles. Pasando sobre cada línea de comentario permite visualizar el código asociado
dentro de una burbuja:
Pregunta ¿Se puede identificar a la persona que ha escrito una línea de código?
Pulsando la tecla [F6] se pueden mostrar las informaciones (nombre y fecha de la creación/modificación) de cada
línea de código.
En el editor de código, para activar (o no) la numeración de las líneas de código, en el panel “Visualizar”, dentro del
grupo “Ayuda a la edición”, clique sobre “Mostrar los números de línea”. El atajo correspondiente es
[CTRL]+[SHIFT]+[G].
Pregunta ¿Hay un medio de conseguir fácilmente la sintaxis o la ayuda sobre una función?
Explore también los ejemplos proporcionados con WEBDEV: algunos son simples y no tratan más que un sujeto, y
otros son más complejos. Estos ejemplos le mostrarán las distintas facetas de WEBDEV. La lectura del código fuente
será igualmente instructiva en general.
Por falta de espacio, no hemos podido abordar todos los sujetos (hay centenares, tal vez millares!). WEBDEV ofrece
numerosas posibilidades no abordadas o no profundizadas en este curso:
Funciones HTTP
Informes anidados, consultas parametrizadas, …
Compilación dinámica, llamadas a DLL’s, …
Para más detalles sobre todas estas posibilidades, solo necesita consultar la ayuda en línea.
Recuerde: Para recibir directamente las actualizaciones intermedias y consejos de uso, abónese a la LST (Revista
trimestral + DVD), en francés.