AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

¡Nueva funcionalidad de WINDEV Mobile 2024!
Ayuda / Tutorial WINDEV Mobile / Tutorial - Desarrollar una aplicación Android e iOS
  • Lección 2 - Desarrollar una aplicación
  • Presentación
  • Mostrar la lista de productos
  • Crear la ventana
  • Prueba de la ventana
  • Crear una ventana Ficha de producto
  • Crear la ventana
  • Crear los controles
  • Mejorar la UI
  • Mostrar los datos de un registro determinado en la ficha del producto
  • Abrir la ficha de producto desde la lista de productos
  • Editar un producto
  • Agregar una opción de validación al Action Bar
  • Actualizar la lista de productos
  • Prueba de la ventana
  • Agregar un producto
  • Principio
  • Abrir la ficha de producto desde el Action Bar
  • Agregar un producto
  • Prueba de la ventana
  • Uso de la cámara y visualización de una imagen
  • Presentación
  • Crear un botón para tomar fotos
  • Estilo del control
  • Tomar fotos
  • Crear un botón para seleccionar una foto del dispositivo
  • Código de barras del producto
  • Presentación
  • Implementación
  • Definir los anclajes en la ficha de producto
  • Utilizar un control Mapa
  • Crear la ventana
  • Crear un control Mapa
  • Mostrar tiendas en el control Mapa
  • Código WLanguage asociado a la ventana
  • Utilizar un control Zona multilínea
  • Crear la ventana
  • Crear un control Zona multilínea
  • Modificar el control Zona multilínea
  • Programar el menú
  • Prueba de la aplicación
  • En resumen

Tutorial - Desarrollar una aplicación Android e iOS

Lección 2 - Desarrollar una aplicación
Abordaremos los siguientes temas:
  • Crear una ventana con un Looper.
  • Controles específicos: control Looper, Zona multilínea, Mapa, etc.
  • Manipular la base de datos.
  • Funcionalidades específicas del dispositivo utilizado (GPS, cámara, etc.).
Durée de la leçon 30 min
Presentación
En esta lección, crearemos varias ventanas:
  • una ventana con la lista de productos. Al hacer clic en un producto, se abrirá una ventana que permitirá modificarlo. También será posible crear un nuevo producto.
  • una ventana para manipular mapas.
  • una ventana con un menú.

Advertencia
Esta lección se basa en el ejemplo WM Product Management utilizado en la lección 1. Para seguir esta lección, debe haber completado los pasos de la lección 1.
Mostrar la lista de productos
Vamos a crear una ventana para mostrar una lista con diferentes productos. Estos productos se mostrarán en un control "Looper".

Crear la ventana

Para crear una nueva ventana:
  1. Haga clic en Nuevo en los botones de acceso rápido (o presione Ctrl + N).
  2. En la ventana "Nuevo", haga clic en "Ventana" y, a continuación, en "Ventana".
  3. En el asistente, seleccione la pestaña "Estándar".
  4. En la sección "Teléfono", seleccione "Looper" y valide.
    Recordatorio: Las diferentes lecciones de este tutorial se basan en una configuración Android. Si utiliza una configuración iOS, es posible que encuentre opciones específicas de iOS.
  5. El asistente de creación de ventanas se abre.
  6. Como nuestro proyecto contiene varias plataformas (iOS y Android), el asistente le pide que seleccione la plataforma que desea utilizar para crear la ventana. Le recomendamos que seleccione la plataforma con la menor resolución (en este caso, "iPhone Genérico").
    Asistente de creación de ventanas
    Pase a la etapa siguiente del asistente.
    Si su proyecto contiene ambas plataformas (Android e iOS), al elegir "iPhone genérico" se generará automáticamente la ventana para esta plataforma. "iOS" se convierte automáticamente en la plataforma actual del proyecto.
  7. El asistente le pide que elija la fuente de datos de la ventana. En nuestro caso, vamos a elegir el archivo de datos "Product":
    • La opción "Archivos de datos" está seleccionada de forma predeterminada.
    • Seleccione el archivo de datos Product.
      Seleccionar el archivo de datos
  8. Pase a la etapa siguiente.
  9. Seleccione el estilo del control Looper: "Imagen + Título + Texto abajo". Este modelo proporciona una interfaz que contiene la imagen, el nombre y la descripción del producto.
    Seleccionar el estilo del control Looper
  10. Pase a la etapa siguiente.
  11. El asistente propone automáticamente los campos del archivo de datos que corresponden a los controles del Looper generado.
    Configuración del Looper
  12. Conserve los campos predeterminados y pase a la etapa siguiente.
  13. Conserve el campo de ordenación sugerido "ProductID". Pase a la etapa siguiente.
  14. El asistente propone varias opciones para generar la ventana de tipo Looper:
    Opciones de la ventana
    • Generar un botón de creación en el Action Bar: Si se selecciona esta opción, el asistente propone generar una ventana en modo de edición.
    • Permitir eliminar deslizando una fila: Si se selecciona esta opción, el usuario podrá eliminar un elemento del control Looper deslizando la fila correspondiente.
    • Código de selección de filas: Si se selecciona la opción "Generar el código de apertura en modo de solo lectura" (o "Generar el código de apertura en modo de edición"), el asistente propone generar una ventana en modo de solo lectura o de edición.
  15. En este caso, conserve las opciones predeterminadas. Pase a la etapa siguiente.
  16. Defina un título y un nombre para la ventana. Introduzca el título de la ventana: "List of products". El nombre de la ventana se crea automáticamente a partir del título.
    Título y nombre de la ventana Looper
  17. Finalice el asistente. La ventana se crea automáticamente, se muestra en el editor y se guarda. Si el proyecto utiliza las configuraciones iOS y Android, la ventana aparece en la configuración iOS.
    Ventana creada por el asistente

    Los datos ya se muestran en el control, incluso en el editor. Este concepto es conocido como "Live data": el contenido de los archivos de datos que se encuentran en el equipo de desarrollo se utiliza en las ventanas o reportes manipulados en el editor. Esta funcionalidad es especialmente útil para definir el tamaño de los controles en una ventana, por ejemplo. También puede utilizarse para adaptar el tamaño de los controles al contenido.
Nuestro proyecto utiliza dos configuraciones de proyecto: veamos la misma ventana para la configuración Android:
  1. Despliegue la opción "Configuraciones (Aplicación iOS)" en la parte superior del panel "Explorador de proyectos".
  2. Haga doble clic en el nombre de la configuración "Aplicación Android".
  3. La configuración Android se selecciona automáticamente y la ventana que creamos aparece en esta configuración.

Prueba de la ventana

Vamos a realizar una primera prueba en el simulador Android para ver el resultado:
  1. Haga clic en Probar ventana en los botones de acceso rápido (o pulse F9).
    Ventana ejecutada en modo de prueba
  2. Cierre el simulador para volver al editor de ventanas.
Cuando un proyecto está asociado a varias plataformas, la ventana se prueba en la plataforma actual. El simulador se adapta a la plataforma actual.
Crear una ventana Ficha de producto
Vamos a crear una nueva ventana para mostrar la ficha del producto. Esta ventana se abrirá desde la lista de productos y mostrará los detalles del producto seleccionado.

Crear la ventana

Para crear la ventana Ficha de producto:
  1. Cree una nueva ventana en blanco.
    • Haga clic en Crear un elemento en los botones de acceso rápido.
    • La ventana de creación de nuevos elementos se abre: haga clic en "Ventana", y luego en "Ventana".
    • En el asistente, seleccione la pestaña "Estándar", elija "En blanco" y valide.
  2. La ventana para guardar el elemento se abre. Introduzca el título de la ventana: "Product form". El nombre se define automáticamente: "WIN_Product_form".
    Guardar el elemento
    Valide.
  3. La ventana se agrega al proyecto, para todas las configuraciones.
Configuración a seleccionar para guardar el elemento
Si se definen varias plataformas en el proyecto, la ventana asocia el nuevo elemento a todas las plataformas.
Para asociar el elemento a una sola plataforma, simplemente despliegue "Configuraciones" y elija la plataforma deseada.

Crear los controles

Nuestra ventana debe contener diferentes controles con los detalles del producto. Estos controles se enlazarán a los campos del archivo de datos Product.
Para crear los diferentes controles, utilizaremos directamente los campos del archivo de datos Product:
  1. Abra el panel "Análisis" si es necesario: en la pestaña "Inicio", en el grupo "Entorno", despliegue "Paneles", seleccione "Paneles" y, a continuación, haga clic en "Análisis". Los diferentes archivos de datos del análisis de "WM Product Management" aparecen en el panel.
  2. Seleccione los campos del archivo de datos "Product" que se muestran en el panel (excepto "ProductID").
  3. Arrastre los campos y suéltelos en la ventana (por ejemplo, en el área superior izquierda).
    Arrastrar y soltar campos
Los controles se crean y seleccionan automáticamente.
Tenemos que hacer algunos cambios para mejorar la UI.

Mejorar la UI

Vamos a reorganizar y redimensionar los controles.
Desplace todos los controles a la parte inferior de la ventana.
  1. Si es necesario, seleccione todos los controles (Ctrl + A).
    Observación: Al crear los controles, estos están seleccionados de forma predeterminada.
  2. Desplace todos los controles hacia abajo.
Ahora vamos a crear nuestra UI etapa por etapa.
Etapa 1 - Imagen
Haga clic en el control Imagen para seleccionarlo. Desplace el control a la parte superior y ubíquelo en el centro de la ventana.
Al desplazar el control Imagen, aparecen guías de alineación. Estas guías le ayudan a ubicar los controles con respecto a la ventana o a otros controles.
Etapa 2 - Nombre del producto
Amplíe horizontalmente el control que contiene el nombre del producto (Caption) para que se ajuste al ancho de la ventana.
Ubique el control debajo del control Imagen.
Etapa 3 - Descripción
Desplace el control "Desc." debajo del control Caption. "Desc." es un control multilínea que contiene la descripción del producto.
Amplíe el control verticalmente para que se muestren al menos tres líneas de texto. Alinee los controles que contienen el nombre (Caption) y la descripción (Desc.):
  1. Seleccione ambos controles (primero seleccione "Caption").
  2. Vaya a las opciones de alineación (pestaña "Alineación" de la cinta de opciones de WINDEV Mobile).
    Opciones de alineación
  3. Vamos a alinear los bordes externos e internos de los controles. Haga clic en la opción "Justificar (Int. y Ext.)".
Etapa 4 - Precio y Referencia
Ubique el precio (Price) debajo de la descripción (Desc.). Reduzca el control para que ocupe la mitad del ancho de la ventana.
Ubique el control que contiene la referencia (Ref) al lado del precio (Price) y redúzcalo horizontalmente para que se ajuste al ancho de la ventana. Utilice las guías de alineación para alinear el lado derecho del control "Ref" con los controles "Caption" y "Desc.".
Consejo: Puede ajustar el tamaño del área de entrada utilizando los puntos rojos de los controladores de tamaño para reducir el espacio entre el título y el área de entrada.
Etapa 5 - Código de barras
Ubique el código de barras (Bar code) debajo del precio (Price).
Etapa 4: Cantidad y Fecha para ordenar un producto
Ubique la cantidad (Quantity) y la fecha para ordenar un producto (Reorder) uno al lado del otro, como hizo con los controles "Price" y "Ref".
Obtendrá el siguiente resultado.
Controles reorganizados
Guarde la ventana.
Orden de tabulación en la ventana
Hemos cambiado el orden de los controles en la ventana. Este orden define cómo se mueve el foco de un control a otro. Para obtener más información, consulte Orden de tabulación en una ventana, página, etc.
Vamos a probar rápidamente la ventana:
  1. Pruebe la ventana (haga clic en Probar ventana en los botones de acceso rápido).
  2. La ventana se muestra con los controles vacíos.
  3. Cierre el simulador.
Los controles están vacíos porque no se ha seleccionado ningún registro en el archivo de datos. Por lo tanto, no se muestra ningún dato.
Veremos cómo mostrar los datos de un registro determinado en la ventana, y cómo abrir la ventana desde la lista de productos.

Mostrar los datos de un registro determinado en la ficha del producto

Puede mostrar los datos de un registro determinado del archivo de datos mediante programación.
Para mostrar los datos del producto:
  1. Abra los eventos WLanguage de la ventana WIN_Product_form:
    • En las pestañas de documentos abiertos, haga clic derecho en la pestaña de la ventana actual.
    • En el menú contextual que aparece, seleccione "Código del elemento".
      Código del elemento
    • El editor de código se abre.
  2. Introduzca el siguiente código WLanguage en el evento "Fin de inicialización de WIN_Product_form":
    Product.ToWindow()

    La función <Archivo de datos>.ToWindow obtiene los datos del registro actual en el archivo de datos y los muestra en los controles de la ventana. En este caso, el registro actual es el registro seleccionado en el control Looper de la ventana "WIN_List_of_products". El control Looper está relacionado con el archivo de datos Product.
  3. Cierre la ventana de código.
  4. Guarde la ventana.
Para probar este código, debe haber un registro seleccionado. Para ello, escribiremos el código que permite abrir la ficha de producto desde la lista de productos.

Abrir la ficha de producto desde la lista de productos

Para abrir la ficha del producto seleccionado, realice las siguientes acciones:
  1. Seleccione la ventana "List of products": haga clic en "WIN_List_of_products" en las pestañas de documentos abiertos (debajo de la cinta de opciones de WINDEV Mobile):
    Pestañas de documentos abiertos
  2. Seleccione el control Looper.
    Atención: asegúrese de seleccionar el control Looper y no uno de sus controles.
  3. Haga clic derecho para abrir el menú contextual del control Looper y seleccione "Código".
  4. En el editor de código, escriba el siguiente código WLanguage en el evento "Selección de una fila de LOOP_Product":
    WIN_Product_form.OpenMobileWindow()

    Empiece a escribir el código y siga las sugerencias del sistema de completado de código: una lista desplegable con los nombres de los diferentes elementos del proyecto aparece al escribir el nombre de la ventana. Seleccione el nombre de la ventana deseada.
    Así mismo, las diferentes funciones y propiedades que se pueden utilizar en la ventana aparecen cuando se inserta un punto ('.') después del nombre de la ventana.
  5. Guarde los cambios haciendo clic en Guardar elemento en los botones de acceso rápido.
  6. Cierre la ventana de código (haga clic en la "X" de la esquina superior derecha del editor de código).
Pruebe de nuevo la ventana "WIN_List_of_products" en el simulador:
  1. Haga clic en Probar ventana en los botones de acceso rápido.
  2. En la lista de productos, haga clic en uno de ellos.
  3. La ventana de detalles del producto se abre.
Cierre el simulador.
Editar un producto
Ahora modificaremos las dos ventanas y agregaremos una opción para confirmar los cambios realizados en un producto.
Al crear la ventana de la ficha, se creó automáticamente un Action Bar. El Action Bar contiene un botón a la izquierda para cancelar la entrada actual y volver a la ventana anterior. En nuestro caso, este botón nos permitirá volver a la lista de productos.
Action Bar de la ventana
Ese es el comportamiento que estamos buscando: no aplicar ningún cambio.
Solo tenemos que agregar un botón de validación al Action Bar de la ventana "WIN_Product_form" para aplicar los cambios.

Agregar una opción de validación al Action Bar

Para agregar una opción de validación al Action Bar de la ventana "WIN_Product_form":
  1. Abra la ventana "WIN_Product_form" en el editor (selecciónela en las pestañas de documentos abiertos).
  2. Seleccione el Action Bar (en la parte superior de la ventana).
  3. Abra la ventana de descripción del Action Bar (seleccione "Descripción" en el menú contextual).
    Descripción del Action Bar

    La ventana de descripción del Action Bar se adapta a las plataformas utilizadas en el proyecto. El Action Bar de una aplicación Android es diferente del Action Bar de una aplicación iOS.
    Nuestro proyecto utiliza la configuración Android y iOS: la ventana muestra una vista previa del Action Bar para ambas plataformas. Los números le permiten acceder a las opciones que desea configurar.
    Solo utilizaremos las opciones necesarias para nuestro ejemplo. Para obtener más información, consulte Descripción del control Action Bar.
  4. Haga clic en el número 2 (cualquier número 2 en la ventana). Una nueva UI permite introducir una opción en el Action Bar.
  5. Haga clic en el botón "+" (debajo del área "Arriba a la derecha") para agregar una opción. Una nueva opción se crea en la parte superior derecha.
  6. Cambie las características de la opción:
    • En la sección "Título de la opción", escriba "Done".
      Opciones del control Action Bar

      Al ejecutar la aplicación, el texto de la opción se muestra en el Action Bar:
      • Si no hay ninguna imagen asociada a la opción.
      • Si la opción se mueve al menú inferior.
    • En la sección "Imagen predefinida", despliegue la lista y seleccione "Validar".
      Imagen predefinida de la opción
    • Confirme los cambios y cierre la ventana de descripción.
      Para volver a la descripción general del Action Bar, haga clic en Botón '2'.
  7. El código WLanguage de esta opción permitirá guardar los cambios en la ventana "WIN_Product_form". Para escribir este código:
    • Seleccione el control Action Bar.
    • Haga clic en "OK".
    • Enseguida, se despliega un menú con la opción "Done".
      Opción 'OK' en el Action Bar

      Este menú desplegable solo se muestra en modo de edición para introducir el código WLanguage asociado a la opción. El menú desplegable no se muestra en tiempo de ejecución.
    • Haga clic derecho en la opción.
    • Seleccione "Código" en el menú contextual que aparece.
    • Escriba el siguiente código WLanguage en el evento "Selección del menú":
      Product.FromWindow()
      Product.Save()
      Close()

      Analicemos estas líneas de código:
  8. Guarde los cambios haciendo clic en Guardar elemento en los botones de acceso rápido.
  9. Cierre la ventana de código (haga clic en la "X" de la esquina superior derecha del editor de código).

Actualizar la lista de productos

Al cerrar la ficha del producto, la lista de productos de la ventana "WIN_List_of_products" debe actualizarse para que se tengan en cuenta los cambios realizados en la ficha del producto. Para ello, vaya al evento "Cierre de una ventana hija" de la ventana "WIN_List_of_products".
  1. Haga clic en "WIN_List_of_products" en las pestañas de documentos abiertos:
    Pestañas de documentos abiertos
  2. Haga clic derecho en el fondo de la ventana y seleccione "Código" en el menú contextual. El siguiente código WLanguage se muestra automáticamente en el evento "Cierre de una ventana hija":
    LooperDisplay(LOOP_Product,taCurrentSelection)

    El código generado no utiliza la sintaxis con prefijo, sino la sintaxis "estándar" de WLanguage. En la sintaxis con prefijo, el código es el siguiente:
    LOOP_Product.Display(taCurrentSelection)
  3. Analicemos este código WLanguage:
    • El evento "Cierre de una ventana hija" se ejecuta cada vez que se cierra una ventana hija de la ventana actual. En nuestro caso, se ejecuta cuando se cierra la ventana "WIN_Product_form".
    • La función <Looper>.Display (o LooperDisplay) actualiza los datos del control Looper de la ventana "WIN_List_of_products". La constante taCurrentSelection actualiza los datos a partir de la banda de selección.
      Este código WLanguage se generó automáticamente cuando se creó la ventana en el asistente.
  4. Cierre la ventana de código (haga clic en la "X" de la esquina superior derecha del editor de código).

Prueba de la ventana

Pruebe la ventana "WIN_List_of_products" en el simulador (haga clic en Probar ventana en los botones de acceso rápido).
  • En la lista de productos, haga clic en uno de ellos: por ejemplo, en el producto "Polo Hibiscus, Blue".
  • La ventana de detalles del producto se abre. Cambie el nombre a "Polo Hibiscus, Light blue" y haga clic en "OK".
  • Al volver a la lista de productos, notará que el nombre del artículo se actualizó.
Cierre el simulador. El editor de WINDEV Mobile aparece de nuevo.
Agregar un producto

Principio

El principio para crear un producto es el siguiente:
  • Agregaremos una opción al Action Bar de la ventana de la lista de productos para abrir la ventana "Product form".
  • A continuación, editaremos el código WLanguage de la ventana "Product form" para agregar datos al archivo de datos Product.

Abrir la ficha de producto desde el Action Bar

Para agregar una opción al Action Bar:
  1. Abra la ventana "WIN_List_of_products" en el editor: selecciónela en las pestañas de documentos abiertos.
  2. Seleccione el Action Bar (en la parte superior de la ventana).
  3. Abra la ventana de descripción del Action Bar: haga clic derecho y seleccione la opción "Descripción" en el menú contextual.
    Descripción del Action Bar
  4. Haga clic en el número 2 (cualquier número 2 en la ventana). Enseguida, aparece una pantalla para introducir una opción en la barra de herramientas.
  5. Haga clic en el botón "+" (debajo del área "Arriba a la derecha") para agregar una opción. Una nueva opción se crea en la parte superior derecha. Cambie las características de la opción:
    • En la sección "Título de la opción", escriba "New product".
      Editar el texto de la opción
    • En la sección "Imagen predefinida", despliegue la lista y seleccione "Agregar".
      Selección de la imagen predefinida
    • Confirme los cambios y cierre la ventana de descripción.
  6. El código WLanguage de esta opción permitirá abrir la ventana "Product form" con los controles en blanco. Para introducir el código WLanguage:
    • Seleccione el control Action Bar.
    • Haga clic en el botón "+".
    • Enseguida, se despliega un menú con la opción "New product".
      Menú desplegable del control Action Bar
    • Haga clic derecho en la opción.
    • Seleccione "Código" en el menú contextual que aparece.
    • Escriba el siguiente código WLanguage en el evento "Selección del menú":
      Product.Reset()
      WIN_Product_form.OpenMobileWindow()

      La función <Archivo de datos>.Reset reinicia las variables de los campos del archivo de datos "Product" con los valores predeterminados para gestionar el nuevo registro.
  7. Guarde los cambios haciendo clic en Guardar elemento en los botones de acceso rápido.
  8. Cierre la ventana de código (haga clic en la "X" de la esquina superior derecha del editor de código).

Agregar un producto

Comprobemos cómo agregar registros en la ventana de la ficha de producto.
  1. Seleccione la pestaña "WIN_Product_form" para abrir la ventana en el editor.
  2. Abra el código de la opción "OK" en el Action Bar:
    • Seleccione el Action Bar.
    • Haga clic en "OK".
    • Enseguida, se despliega un menú con la opción "Done".
    • Haga clic con derecho en la opción "Done" y seleccione "Código" en el menú contextual.
    • El código WLanguage del evento "Clic" no cambia:
      Product.FromWindow()
      Product.Save()
      Close()

      Veamos este código de nuevo:
  3. Cierre la ventana de código (haga clic en la "X" de la esquina superior derecha del editor de código).

Prueba de la ventana

Abra la ventana "WIN_List_of_products" en el editor de ventanas y ejecute la prueba en el simulador (haga clic en Probar ventana en los botones de acceso rápido).
  • Haga clic en el botón "+" en el Action Bar.
  • Introduzca un nuevo producto.
  • Valide. El nuevo producto aparece en la lista de productos.
  • Cierre el simulador.
El proyecto utiliza varias plataformas: le recomendamos que pruebe el proyecto a través del botón "GO" en cada plataforma. Así, podrá ver las diferencias de visualización y funcionamiento en el simulador.
Uso de la cámara y visualización de una imagen

Presentación

Vamos a agregar la foto del producto utilizando la cámara del dispositivo.
Para ello, vamos a realizar las siguientes acciones:
  • crear un control Botón para abrir la cámara. La foto se guardará como una imagen en la memoria y se mostrará en el control Imagen del producto.
  • crear un control Botón para seleccionar una foto del álbum del dispositivo.
Advertencia
Para probar esta funcionalidad, la prueba debe ejecutarse en el dispositivo móvil, y no en el simulador. Esta funcionalidad requiere componentes de hardware que no están disponibles en el simulador. Cuando se ejecuta una prueba en un dispositivo móvil, el asistente de generación de la aplicación se abre automáticamente.
Para obtener más información sobre la generación de una aplicación para dispositivos móviles, consulte los siguientes tutoriales:

Crear un botón para tomar fotos

Para crear el control Botón que permitirá tomar fotos:
  1. Abra la ventana "WIN_Product_form".
  2. Ubique el control Imagen a la izquierda de la ventana.
  3. Alinéelo con el control Estático utilizando las reglas de alineación.
  4. Agregue un control Botón a la ventana:
    • En la pestaña "Creación", en el grupo "Controles frecuentes", haga clic en Crear un control Botón: la forma del control aparece debajo del cursor.
    • Haga clic en la parte superior derecha del control Imagen para crear el control Botón.
Vamos a modificar el control Botón para asociarlo a una imagen que represente una cámara:
  1. Haga clic derecho para abrir el menú contextual del control.
  2. Seleccione "Descripción". La ventana de descripción del control se abre automáticamente.
  3. En la pestaña "General", haga clic en Menú desplegable a la derecha de "Imagen". Seleccione "Catálogo" en el menú contextual que aparece.
  4. Enseguida, se abre el catálogo de imágenes de WINDEV Mobile. Este catálogo contiene cientos de imágenes en diferentes campos, formatos y tamaños.
  5. Introduzca "photo" en la barra de búsqueda y valide. Se muestran varias imágenes:
    Catálogo de imágenes
  6. Haga doble clic en la imagen Imagen a seleccionar para seleccionarla.
  7. En la ventana que aparece, puede seleccionar el tamaño, el color, la orientación, el formato y el nombre de la imagen.
  8. Conserve las opciones predeterminadas y asigne el nombre "Camera" a la imagen.
  9. Valide la ventana.
  10. La ruta de la imagen se muestra en la descripción del control Botón.
  11. Asigne el siguiente nombre al control: "BTN_Camera".
  12. Borre el título del control.
  13. Valide la ventana de descripción.
  14. En el editor, reduzca el tamaño del control.

Estilo del control

El proyecto utiliza la plantilla "Material 3". Este control Botón utiliza el estilo predeterminado (fondo morado). Ya modificamos este estilo al agregar la imagen. Dado que no necesitamos el fondo morado para este botón, vamos a cambiar el estilo asociado al control:
  1. Seleccione el control Botón creado previamente.
  2. Abra el menú contextual y haga clic en la opción "Seleccionar un estilo".
  3. La ventana que aparece muestra todos los estilos que pueden utilizarse para los controles Botón en la plantilla "Material 3".
    Estilos de la plantilla
  4. Haga clic en la barra de búsqueda e introduzca "BTN_Blank".
    Búsqueda del estilo
    Este nombre corresponde a un estilo sin color de fondo. Este es el estilo que vamos a usar.
  5. Valide la ventana de selección de estilos.
  6. El estilo elegido se aplica automáticamente al control Botón. La imagen asociada al control Botón se conserva.

Tomar fotos

Vamos a introducir el código WLanguage que nos permitirá tomar una foto y mostrarla en el control Imagen de la ficha del producto.

Para tomar fotos:
  1. Haga clic derecho en el control Botón y seleccione "Código" en el menú contextual.
  2. Introduzca el siguiente código WLanguage en el evento "Clic en":
    // Local variable
    ProductImage is string 
    // Start the camera
    ProductImage = VideoStartApp(viPictureCapture)
    IF ProductImage <> "" THEN
    IMG_Photo = ProductImage
    END
    En este código WLanguage, la función VideoStartApp abre la cámara del dispositivo para grabar un video o tomar una foto.
  3. Guarde los cambios haciendo clic en Guardar elemento en los botones de acceso rápido.
  4. Cierre la ventana de código (haga clic en la "X" de la esquina superior derecha del editor de código).

Crear un botón para seleccionar una foto del dispositivo

Vamos a agregar un control Botón para seleccionar una foto del álbum del dispositivo y asociarla al producto.

Para crear el control Botón que permite seleccionar la foto, vamos a copiar y pegar el control Botón que acabamos de crear:
  1. Seleccione el control "BTN_Camera".
  2. Presione Ctrl + C: el control Botón se copia en el portapapeles.
  3. Presione Ctrl + V: el cursor cambia y la sombra de control aparece debajo del cursor.
  4. Haga clic en la ventana al lado del control "BTN_Camera": el nuevo control Botón se crea automáticamente.
  5. Haga doble clic en el control para abrir la ventana de descripción:
    • Asigne el siguiente nombre al control: "BTN_Photo_Album".
    • Seleccione una imagen en el catálogo de imágenes.
      Observación: No olvide cambiar el nombre predeterminado de la imagen.
  6. Confirme los cambios y cierre la ventana de descripción.
Observación: Dado que este control Botón es una copia del botón que permite tomar fotos, las características de estilo son las mismas. ¡No necesita modificarlas!

El código WLanguage del control Botón abre el álbum de fotos del dispositivo y selecciona una imagen para que se muestre en el control Imagen de la ficha del producto.
  1. Haga clic derecho en el botón y seleccione "Código" en el menú contextual.
  2. Reemplace el código WLanguage del evento "Clic en" por el siguiente código:
    // Local variable
    ProductImage is string 
    // Start the selection
    ProductImage = AlbumPicker(albumImage)
    IF ProductImage <> "" THEN
    IMG_Photo = ProductImage
    END
    En este código WLanguage, la función AlbumPicker permite recuperar la foto seleccionada en el álbum de fotos.
  3. Guarde los cambios haciendo clic en Guardar un elemento en los botones de acceso rápido.
  4. Cierre la ventana de código (haga clic en la "X" de la esquina superior derecha del editor de código).
Código de barras del producto

Presentación

El archivo de datos "Product" contiene el campo "Bar_Code". Este campo permite almacenar el valor de un código de barras. Algunos dispositivos (con cámara) pueden escanear un código de barras para obtener su valor.
El código de barras se podrá escanear con la cámara del dispositivo y manipular utilizando una función específica de WLanguage.
Advertencia
Para probar esta funcionalidad, la prueba debe ejecutarse en el dispositivo móvil, y no en el simulador. Esta funcionalidad requiere componentes de hardware que no están disponibles en el simulador. Cuando se ejecuta una prueba en un dispositivo móvil, el asistente de generación de la aplicación se abre automáticamente.
Para obtener más información sobre la generación de una aplicación para dispositivos móviles, consulte los siguientes tutoriales:

Implementación

En primer lugar, crearemos un control Botón.
Realice las siguientes acciones:
Ya sabe sabemos cuáles son los pasos para crear un botón. Ahora siga estas instrucciones:
  • Cree el control al lado del control "Bar code" (redimensione este último, si es necesario).
  • Defina "BTN_Bar_Code" como nombre del control.
  • Deje el título en blanco.
  • Seleccione una imagen de código de barras en el catálogo de imágenes.

Reduzca el tamaño del control si es necesario.
Vamos a cambiar el estilo del control, como hicimos con el botón de cámara. Copiaremos el mismo estilo que utilizamos para los botones anteriores:
  1. Seleccione el botón de cámara.
  2. En la pestaña "Estilo", en el grupo "Estilo y plantilla", haga clic en "Copiar estilo".
  3. A continuación, haga clic en el control Botón creado anteriormente. El estilo se aplica automáticamente.
Escribamos el código WLanguage del control. Este código permitirá escanear el código de barras.
  1. Haga doble clic en el control y seleccione "Código" en el menú contextual.
  2. Introduzca el siguiente código WLanguage en el evento "Clic en":
    // Local variable
    bc is BarCode 
    // Start the scan
    bc = BCCapture()
    IF bc.Content <> "" THEN
    EDT_Bar_code = bc.Content
    END
    En este código WLanguage, BCCapture descifra la información almacenada en el código de barras utilizando la cámara del dispositivo.
  3. Guarde los cambios haciendo clic en Guardar elemento en los botones de acceso rápido.
  4. Cierre la ventana de código (haga clic en la "X" en la pestaña del editor de código).
Definir los anclajes en la ficha de producto
Hemos agregado todos los controles a la ficha de producto. La resolución vertical y horizontal puede variar según los dispositivos.
Los anclajes permiten adaptar el tamaño de los controles a la resolución y evitar espacios "vacíos" en la ventana (especialmente en la parte inferior derecha).
Si se especifica el dispositivo de destino al crear el proyecto, el tamaño de las ventanas se ajustará al dispositivo de destino. En este caso, no es necesario establecer los anclajes.
Si no se especifica el dispositivo de destino o se utilizan varios dispositivos, se debe elegir la resolución común más pequeña al crear el proyecto. En este caso, es necesario definir los anclajes.

Vamos a establecer los anclajes de los distintos controles de la ventana:
  1. Seleccione los siguientes controles manteniendo presionada la tecla Ctrl:
    • el control Imagen que muestra la imagen del producto,
    • el control Botón que permite tomar fotos,
    • el control Botón que permite seleccionar una foto del álbum.
  2. Haga clic derecho para abrir el menú contextual de la selección y seleccione "Anclaje".
  3. Seleccione "Centrado horizontalmente" (Centrado horizontalmente).
    Anclajes
  4. Valide.
Para definir el anclaje de los controles Campos de entrada:
  1. Seleccione los siguientes controles Campo de entrada manteniendo presionada la tecla Ctrl:
    • Caption
    • Description
    • Bar code
    • Reorder date
  2. Haga clic derecho para abrir el menú contextual de la selección y seleccione "Anclaje".
  3. Seleccione "Ancho" (Ancho).
  4. Valide.
Repita esta acción para los controles "Bar code" y "Reference". En este caso, seleccione "Derecha" (Derecha).
Se han definido todos los anclajes en la ventana. Las flechas rojas que indican la orientación de los anclajes aparecen en la ventana:
Ventana con anclajes en el editor
Utilizar un control Mapa
A continuación, vamos a ver como utilizar el control Mapa y las funciones GPS de WLanguage.
Nuestra base de datos contiene un archivo de datos "Store". Este archivo de datos contiene las direcciones de las tiendas que se ubicarán en un mapa utilizando las funciones geográficas.

Crear la ventana

Vamos a crear una nueva ventana y agregar un control Mapa.

Realice las siguientes acciones:
Ya sabemos cuáles son los pasos para crear una ventana. Ahora siga estas instrucciones:
  • Cree una ventana en blanco.
  • Defina "Map of stores" como título de la ventana (el nombre "WIN_Map_of_stores" se rellena automáticamente).

Crear un control Mapa

Para crear el control Mapa:
  1. En la pestaña "Creación", en el grupo "Controles gráficos", haga clic en "Mapa". La forma del control aparece debajo del cursor.
  2. Haga clic en la ventana para crear el control. El control Mapa aparece en el editor de ventanas.
  3. Haga doble clic en el control Mapa para abrir la ventana de descripción.
  4. En la ventana de descripción del control, cambie el nombre del control por "MAP_STORE" y valide.
  5. Guarde los cambios haciendo clic en Guardar un elemento en los botones de acceso rápido.

Mostrar tiendas en el control Mapa

Vamos a escribir el código que permite mostrar las tiendas del archivo de datos "Store" en un mapa.
Para ello, recorreremos el archivo de datos "Store" con un bucle FOR EACH. A continuación, vamos a utilizar variables de tipo Marker. Las variables de tipo Marker permiten definir los marcadores que aparecerán en el mapa.
Un marcador contiene diferente información. Utilizaremos la siguiente información:
  • Nombre,
  • Latitud,
  • Longitud.
La función <Mapa>.AddMarker permite agregar marcadores en un control Mapa. Luego, solo se debe ajustar el zoom para ver todos los marcadores en el mapa. Si el zoom no está ajustado correctamente, es posible que no se muestren algunos marcadores o que se superpongan en el control.

Código WLanguage asociado a la ventana

Para mostrar las tiendas, vamos a escribir el código WLanguage directamente en el evento de inicialización de la ventana que contiene el control Mapa.
Para escribir el código WLanguage que permite mostrar las tiendas:
  1. Seleccione la pestaña de la ventana en las pestañas de documentos abiertos y haga clic en "Código del elemento" en el menú contextual. Los eventos WLanguage de la ventana se muestran en el editor de código.
  2. Escriba el siguiente código WLanguage en el evento "Declaraciones globales de...".
    // Global variables
    StoreMarker is Marker
    // Load the stores
    FOR EACH Store 
    // Marker coordinates
    StoreMarker.Position.Latitude = Store.Latitude
    StoreMarker.Position.Longitude = Store.Longitude
    // Marker name
    StoreMarker.Name = Store.Name
    // Add the marker
    MAP_STORE.AddMarker(StoreMarker)
    END
    // Best zoom to view all markers on the map
    MAP_STORE.Zoom = zoomAdaptSize
  3. Guarde los cambios haciendo clic en Guardar elemento en los botones de acceso rápido.
  4. Cierre la ventana de código.
Pruebe la ventana "WIN_Map_of_stores" en el simulador (haga clic en Probar ventana en los botones de acceso rápido).
Advertencia
Durante la prueba, puede que el mapa muestre un mensaje de error de carga. El control Mapa está sujeto a condiciones específicas. Estas condiciones deben cumplirse para que el control Mapa se muestre correctamente en el dispositivo. Para obtener más información, consulte Condiciones de uso del control Mapa.
Cierre el simulador.
Utilizar un control Zona multilínea
El control Zona multilínea se utiliza frecuentemente en plataformas móviles. Este control permite agrupar varios controles:
  • opciones de una categoría,
  • información sobre un contacto, etc.
Este control puede contener:
  • filas definidas en el editor (filas estáticas),
  • filas definidas en tiempo de ejecución, mediante programación (filas dinámicas).
Un control Zona multilínea nos permitirá crear el menú principal de la aplicación. Vamos a crear una nueva ventana e insertar un control Zona multilínea.
Crearemos la siguiente ventana:
Ventana a crear

Crear la ventana

Vamos a crear una ventana y agregar un control Zona multilínea.

Realice las siguientes acciones:
Ya sabemos cuáles son los pasos para crear una ventana. Ahora siga estas instrucciones:
  • Cree una ventana en blanco.
  • Defina "Menu" como título de la ventana (el nombre "WIN_Menu" se rellena automáticamente).

Crear un control Zona multilínea

Para crear un control Zona multilínea:
  1. En la pestaña "Creación", en el grupo "Datos", haga clic en "Zona multilínea". La forma del control aparece debajo del cursor.
  2. Haga clic en la ventana para crear el control.
  3. Haga doble clic en el control para abrir la ventana de descripción.
  4. En la ventana de descripción, especifique el nombre del control ("MZ_MENU") y valide.
El control Zona multilínea contiene una fila vacía. Vamos a agregar las filas que necesitemos para las opciones de menú.
Nuestro menú incluirá 3 opciones:
  • List of products.
  • Map of stores.
  • Exit application.

Modificar el control Zona multilínea

Para modificar el control Zona multilínea:
  1. Haga doble clic en el control para abrir la ventana de descripción.
  2. Haga clic en "Nueva fila". Enseguida, se abre una ventana: esta ventana contiene modelos de filas predefinidas.
  3. Seleccione "Fila simple con ícono". Repita esta operación dos veces.
    Ahora, el control Zona multilínea contiene:
    • una fila "en blanco",
    • 3 "filas simples con ícono".
      Control Zona multilínea
  4. Vamos a eliminar la fila en blanco, dado que no la vamos a utilizar en este ejemplo:
    • Seleccione la fila en blanco (la primera fila).
    • Luego, haga clic en "Eliminar".
  5. Confirme los cambios y cierre la ventana de descripción. Se ha creado el menú.
Cada fila incluye un control Imagen, un control Estático y una flecha. Vamos a cambiar la imagen y el texto de cada fila para representar las acciones del menú.

Modificar la 1.ª fila: acceder a la lista de productos
Para cambiar la imagen de la primera fila del control Zona multilínea:
  1. Haga clic en el control Imagen de la primera fila.
  2. Haga doble clic en la imagen para abrir la ventana de descripción.
  3. En la ventana de descripción:
    • Asigne un nombre a la imagen (por ejemplo, "IMG_ListOfProducts").
    • Haga clic en Menú contextual. Seleccione "Catálogo" en el menú contextual que aparece para seleccionar una imagen que represente la acción.
    • En la ventana del catálogo de imágenes, escriba "List" en la barra de búsqueda y presione la tecla Entrar.
    • Haga doble clic en la imagen que desea seleccionar.
    • En la ventana de configuración que aparece, defina el tamaño de la imagen (por ejemplo, A (Ancho) = 80 y A (Alto) = 80). Enseguida, asigne un nombre a la imagen (por ejemplo, "ListOfProducts") y valide.
      De forma predeterminada, la imagen de un control Zona multilínea está en modo "Homotético expandido centrado". La imagen se redimensionará automáticamente.
  4. Valide la ventana de descripción.
Para cambiar el texto de la primera fila del control Zona multilínea:
  1. Haga clic en el control Estático de la primera fila.
  2. Haga doble clic en el control para abrir la ventana de descripción.
  3. En la pestaña "General" de la ventana de descripción:
    • Asigne un nombre al control (por ejemplo, "STC_ListOfProducts").
    • Cambie el título (por ejemplo, "List of products").
  4. Valide la ventana de descripción.
    Control Zona multilínea
Modificar la 2.ª fila: acceder al mapa de tiendas
Para cambiar la imagen de la segunda fila del control Zona multilínea:
  1. Haga clic en el control Imagen de la segunda fila.
  2. Haga doble clic en la imagen para abrir la ventana de descripción.
  3. En la ventana de descripción:
    • Asigne un nombre a la imagen (por ejemplo, "IMG_MapOfStores").
    • Haga clic en Menú contextual. Seleccione "Catálogo" en el menú contextual que aparece para seleccionar una imagen que represente la acción.
    • En la ventana del catálogo de imágenes, escriba "Map" en la barra de búsqueda y presione la tecla Entrar.
    • Haga doble clic en la imagen que desea seleccionar.
    • Defina el tamaño de la imagen en la ventana de configuración que aparece (por ejemplo, A (Ancho) = 80 y A (Alto) = 80). Enseguida, asigne un nombre a la imagen (por ejemplo, "MapOfStores") y valide.
  4. Valide la ventana de descripción.
Para cambiar el texto de la segunda fila del control Zona multilínea:
  1. Haga clic en el control Estático de la segunda fila.
  2. Haga doble clic en el control para abrir la ventana de descripción.
  3. En la pestaña "General" de la ventana de descripción:
    • Asigne un nombre al control (por ejemplo, "STC_MapOfStores").
    • Cambie el título (por ejemplo, "Map of stores").
  4. Valide la ventana de descripción.
Modificar la 3.ª fila: Salir de la aplicación
Para cambiar la imagen de la tercera fila del control Zona multilínea:
  1. Haga clic en el control Imagen de la tercera fila.
  2. Haga doble clic en la imagen para abrir la ventana de descripción.
  3. En la ventana de descripción:
    • Asigne un nombre a la imagen (por ejemplo, "IMG_Exit").
    • Haga clic en Menú contextual. Seleccione "Catálogo" en el menú contextual que aparece para seleccionar una imagen que represente la acción.
    • En la ventana del catálogo de imágenes, escriba "Close" en la barra de búsqueda y presione la tecla Entrar.
    • Haga doble clic en la imagen que desea seleccionar.
    • Defina el tamaño de la imagen en la ventana de configuración que aparece (por ejemplo, A (Ancho) = 80 y A (Alto) = 80). Enseguida, asigne un nombre a la imagen (por ejemplo, "Close") y valide.
  4. Valide la ventana de descripción.
Para cambiar el texto de la tercera fila del control Zona multilínea:
  1. Haga clic en el control Estático de la tercera fila.
  2. Haga doble clic en el control para abrir la ventana de descripción.
  3. En la pestaña "General" de la ventana de descripción:
    • Asigne un nombre al control (por ejemplo, "STC_Exit").
    • Cambie el título (por ejemplo, "Exit application").
  4. Valide la ventana de descripción.
Vamos a cambiar el estilo del texto para que se muestre en negro:
  1. Haga clic en el control Estático de la primera fila.
  2. Abra la ventana de descripción (Alt + Entrar).
  3. En la pestaña "Estilo", seleccione el elemento "Título", despliegue "Color fuente" y seleccione el color negro.
  4. Confirme los cambios y cierre la ventana de descripción.
  5. El color del texto cambia automáticamente.
Para repetir esta acción en los otros controles Estático:
  1. Haga clic en el control Estático de la segunda fila.
  2. Presione F4. Esta tecla repite la última acción. En este caso, el texto se vuelve negro.
  3. Seleccione el control Estático de la tercera fila y pulse de nuevo F4.

Programar el menú

Finalmente, vamos a escribir el código WLanguage de cada acción del menú:
  1. Haga clic derecho en el control Zona multilínea y seleccione "Código".
    Atención: asegúrese de seleccionar el control Zona multilínea y no uno de los controles dentro de este.
  2. En el editor de código, escriba el siguiente código WLanguage en el evento "Selección (clic) de una fila en...":
    SWITCH MZ_MENU
    CASE 1 // List of products
    WIN_List_of_products.OpenMobileWindow() 
    CASE 2 // Map of stores
    WIN_Map_of_stores.OpenMobileWindow() 
    CASE 3 // Exit application
    Close()
    END
  3. Guarde los cambios haciendo clic en Guardar elemento en los botones de acceso rápido.
  4. Cierre la ventana de código (haga clic en la "X" de la esquina superior derecha del editor de código).
Prueba de la aplicación
El último paso consiste en especificar que la ventana de menú es la primera ventana de la aplicación. Para ello, probaremos todo el proyecto y definiremos la primera ventana de la aplicación.

Para definir la primera ventana del proyecto:
  1. Seleccione la ventana "WIN_Menu" en el panel "Explorador de proyectos".
  2. Abra el menú contextual.
  3. Seleccione "Primera ventana del proyecto". Un ícono específico (con un 1 pequeño) aparece a la izquierda del nombre de la ventana, en el panel "Explorador de proyectos".
Hasta ahora, hemos probado las ventanas individualmente haciendo clic en Probar ventana en los botones de acceso rápido. Ahora vamos a probar todo el proyecto.
Para iniciar la prueba del proyecto en el simulador:
  1. Haga clic en Probar proyecto en los botones de acceso rápido.
  2. El proyecto inicia con la ventana de menú. Haga clic en una opción de menú para comprobar si los enlaces son correctos.
En resumen
Proyecto completado
¿Desea comprobar el resultado final de las etapas descritas en este tutorial? Hay un proyecto completado disponible. Este proyecto contiene las ventanas creadas en esta lección. Para abrir el proyecto completado, vaya a la página de inicio y haga clic en "Tutorial", luego en "Tutorial - Develop an Android/iOS application", haga doble clic en "Android/iOS product management - Answers".

En esta lección, cubrimos diferentes aspectos del desarrollo de una aplicación móvil:
  • adición y modificación de registros en una base de datos,
  • uso de controles potentes en una aplicación móvil: Looper, Mapa, Zona multilínea,
  • uso de funcionalidades específicas (cámara, código de barras, etc.).
También vimos la importancia del anclaje de controles. En la próxima lección, veremos cómo utilizar los layouts para obtener una interfaz completamente diferente en función de la orientación.
Lección anteriorTabla de contenidoSiguiente lección
Versión mínima requerida
  • Versión 2024
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 27/03/2024

Señalar un error o enviar una sugerencia | Ayuda local