Documentación de Velneo
30
30
  • Introducción
  • Velneo
    • Requerimientos de Velneo
    • Notas de la versión
    • Funcionalidades comunes a los componentes de Velneo
      • Instalación
      • Conexión con Velneo vServer
      • Cambiar el estilo de visualización
      • Ver u ocultar barras de herramientas
      • Mensajería interna entre usuarios
      • Soporte de alta resolución (HighDPI)
      • Carpetas de trabajo de los componentes de Velneo
      • Numeración de versiones de Velneo
      • Certificado de firma digital para componentes de Windows
    • Tipos de archivo generados por Velneo
    • Velneo Web
      • Plataformas y navegadores compatibles
      • Acceso a recursos del sistema
      • Siempre https
      • Funcionamiento de vatp por websocket
      • CORS para llamadas xmlhttprequest
  • Velneo vDevelop
    • ¿Qué es Velneo vDevelop?
    • Identificación de usuario
    • Interfaz de Velneo vDevelop
      • Menú Soluciones
      • Menú Proyectos
      • Menú Objetos
      • Menú Scripts
      • Menú Edición
      • Menú Ver
      • Menú Componentes
      • Menú Ayuda
    • Lista de teclas aceleradoras de Velneo vDevelop
    • Soluciones y proyectos
    • Control y edición de proyectos
    • Herencia
    • Inspectores
    • Proyectos objetos y editores
      • Proyecto de datos
      • Proyecto de aplicación
        • Crear CSS para aplicar a objetos en edición
      • Objeto
        • Refactorización automátca
      • Objetos de proyecto de datos
        • Indice complejo
        • Tabla
          • Actualización
          • Campo
          • Enlace
          • Indice
          • Plural
          • Traspaso de campo
          • Trigger
        • Tabla estática
        • Variable
      • Objetos de proyecto de aplicación
        • Acción
        • Alternador de lista
        • Arbol visor de tablas
        • Bloc de formularios
        • Casillero
        • Cesta
        • ComboView
        • Control SVG
        • Dispositivo serie
        • Formulario
          • Controles de visualización
            • Texto estático
            • Nombre de campo
            • Visor HTML
            • Dibujo
            • Imagen SVG
            • Caja de grupo
            • Menú arbolado
            • Barra de progreso
            • Reloj
            • Manómetro
            • Termómetro
          • Controles de edición
            • Caja de texto
            • Caja de texto enriquecido
            • Data catcher edit
            • Edición alfabética
            • Edición fecha
            • Edición fecha/hora
            • Edición fórmula
            • Edición hora
            • Edición numérica
            • Edición senda fichero
            • Edición senda directorio
            • Objeto dibujo
          • Controles de entrada
            • Botón
            • Botón de check
            • Botón de radio
            • Calendario
            • ComboBox
            • Deslizador
            • Dial
            • ListBox
            • Rueda
          • Contenedores
            • Área de scroll
            • Caja de formularios
            • Pila de formularios
            • Separador de formularios
            • Splitter
            • Vista de datos
          • Layout
          • Tree widget
          • Controles SVG
          • Extensión de ficha
        • Formulario QML
        • Gráfico
        • Imagen SVG
        • Impresora lógica
        • Informe
          • Editor de informes
          • Agrupamiento
          • Sección
          • Cálculo
        • Informe personalizable
          • Diseñando un informe personalizable básico
          • Diseño avanzado
          • Diseñando un informe personalizable
          • Añadiendo orígenes de datos
          • Añadiendo elementos al informe
          • Características avanzadas
          • Etiquetas
          • Asistente de scripts
          • Impresión de gráficos
          • Opciones html
        • ListView
        • Lista QML
        • Localizador
        • Marco
        • Menú
        • Multivista
        • Protocolo TCP-IP
        • Reemplazo
        • Rejilla
          • Propiedades de columna de rejilla
        • Rejilla avanzada
          • Propiedades de columna de rejilla avanzada
        • Toolbar
        • ViewFlow
        • Sub-objetos de vistas de datos
          • Conexión de evento
          • Drop
          • Inserción
          • Manejador de evento
      • Objetos comunes a proyecto de datos y de aplicación
        • Búsqueda
        • Cola
        • Constante
        • Dibujo
        • Esquema de tablas
        • Fichero adjunto
        • Función
        • Librería externa
        • Lupa
        • Proceso
          • Indice de comandos de instrucción de proceso
          • Comandos de base de datos
            • API
            • Bases de datos externas
            • Búsquedas
            • Campos (grupo de comandos)
            • Cestas
            • Fichas
            • Fichas seleccionadas
            • Listas
            • Tablas
            • Tubos
          • Básicos
            • Controles de flujo
            • Debug
            • Ejecución
            • Salida/retornos
            • Scripts (grupo de comandos)
            • Transacciones (comandos)
            • Variables
          • Comunicación
            • GPS
            • Internet
            • Protocolo TCP
            • Puerto serie
            • SDV
          • Interfaz
            • Acciones (comandos)
            • Control
              • Ejemplo de CSS
            • Diálogos
            • Formularios - comandos
            • Localizadores
            • Objeto - grupo de comandos
            • Ventana principal
            • Vista de datos - comandos
          • Sistema
            • Comandos de Sistema
            • Configuración
            • Directorios
            • Ficheros
        • Tubo de ficha
        • Tubo de lista
        • Variable local
      • Editores
        • Asistente de fórmulas
          • Operadores
          • Funciones estándar
            • Funciones API
            • Funciones básicas
            • Funciones de cadenas
              • Expresiones regulares
            • Funciones científicas
            • Funciones de Cliente-servidor
            • Funciones de color
            • Funciones de códigos
            • Funciones de directorios
            • Funciones de fechas
            • Funciones de ficha en curso
            • Funciones de horas
            • Funciones JSON
            • Funciones de Internet
            • Funciones de juegos de caracteres
              • Codecs
            • Funciones numéricas
            • Funciones de sistema
            • Funciones de tiempo
            • Funciones trigonométricas
          • Funciones de dll
          • Funciones de proceso
          • Funciones de campo
          • Campos
          • Constantes
          • Variables globales
          • Variables locales
          • Variables del sistema
          • Verificador de fórmulas
          • Conversión automática de datos
          • Introducción de datos literales
          • Secuencias de escape en cadenas de caracteres
          • Composición de sendas en fórmulas
          • Operar con datos de tipo fecha, hora y tiempo
        • Editor de imágenes
        • Selector de fuentes
    • Scripts
      • Lenguajes
        • JavaScript
          • Procesos JavaScript
          • Fórmulas JavaScript
          • Clases
            • Funciones globales
            • Objetos
            • VAbstractBrowser
            • VAbstractDataView
            • VAbstractListDataView
            • VAdvandedGridListDataView
            • VAlternatorListDataView
            • VApp
              • VApp: enumeraciones
              • VApp: ejemplos
            • VBoundFieldComboBox
            • VBoundFieldEdit
            • VBoundFieldEditBrowser
            • VBoundFieldListBox
            • VByteArray
            • VCheckBox
            • VClipboard
            • VClockWidget
            • VComboBox
            • VComboListDataView
            • VCoverFlowListDataView
            • VCWebView
            • VDataCatcherEdit
            • VDataCatcherEditBrowser
            • VDataView
            • VDataViewDialog
            • VDateEdit
            • VDateEditBrowser
            • VDateTimeEdit
            • VDateTimeEditBrowser
            • VDial
            • VDir
              • VDir: enumeraciones
            • VExtension
              • VExtension: enumeraciones
            • VFile
              • VFile: enumeraciones
            • VFileInfo
            • VFilePathEditBrowser
            • VFinder
            • VFont
              • VFont: enumeraciones
            • VFormBlockListDataView
            • VFormDataView
            • VFormulaEditBrowser
            • VGaugeWidget
            • VGPS
            • VGridListDataView
            • VGroupBox
            • VImage
            • VImageEdit
            • VImageWidget
            • VInstancesList
            • VInstance
            • VInstances
            • VItemRegisterPattern
            • VLabel
            • VLineEdit
            • VLineEditBrowser
            • VListBox
            • VListDataView
            • VLogin
            • VMainWindow
              • VMainWindow: enumeraciones
            • VMdiView
            • VMimeData
            • VMultiDataView
            • VNumberSpinBox
            • VNumberSpinBoxBrowser
            • VObjectInfo
              • VObjectInfo: enumeraciones
            • VObjectInstance
            • VProcess
            • VProgressBar
            • VProjectInfo
            • VPushButton
            • VQmlFormDataView
            • VQmlListDataView
            • VQmlListModel
            • VQuery
            • VRadioButton
            • VRegister
            • VRegisterList
            • VReportListDataView
            • VRequest
            • VResponse
            • VRoot
            • VScreen
            • VScrollArea
            • VServerAdmin
            • VSettings
            • VSlider
            • VSlotListDataView
            • VSolutionInfo
            • VSplitter
            • VSqlDatabase
            • VSSLCertificate
            • VSSLInfo
            • VSSLSessionCipher
            • VStackedWidget
            • VSvgButton
            • VSvgSlideSwitch
            • VSvgToggleSwitch
            • VSvgWidget
            • VSysInfo
              • VSysInfo: enumeraciones
            • VTableInfo
              • VTableInfo: enumeraciones
            • VTabWidget
            • VTextEdit
            • VTextFile
            • VThermometerWidget
            • VThumbWheel
            • VTimeEdit
            • VTimeEditBrowser
            • VToolBox
            • VTreeItem
            • VTreeItemRegister
            • VTreeListDataView
            • VTreeMenu
            • VTreeMultiTableListDataView
            • VTreeWidget
            • VUser
            • VUserGroup
            • VUserGroupList
            • VUserList
            • VXmlReader
            • VXmlWriter
            • Widget
            • XMLHttpRequest
        • QML
          • Tipos QML
          • Funciones específicas de QML
    • Depuración
      • Depuración de procesos de Velneo
      • Depuración de procesos JavaScript
      • Monitor de vClient
    • Extensiones de Velneo vDevelop
    • Acceso directo a una solución desde vDevelop
    • Buenas prácticas
      • Buenas prácticas de organización
        • Proyectos
        • Organización de carpetas
        • Proyecto de datos
        • Proyecto de aplicación
      • Buenas prácticas de codificación
        • Identificadores
        • Teclas aceleradoras
        • Documenta
        • Diseña los formularios como si no existiesen los layouts
      • Buenas prácticas de rendimiento
        • Arquitectura
          • Listas de registros
          • Lista de resultados de una búsqueda
          • Las cestas
          • Las variables globales
          • La caché de fichas
          • Programa en cloud
        • Formularios
          • Condiciones de visible y activo
          • Carga de subformularios en pestaña, caja o pila
        • Base de datos
          • Campos
          • Indices
          • Actualizaciones
          • Eventos de tabla o triggers
          • Variables globales y constantes
          • Tablas en memoria vs tablas en disco
          • Optimizar migraciones de datos
          • Búsquedas en el servidor ¿Cuándo y Cómo?
          • Campos fórmula vs campos en disco
          • Indices condicionados vs búsquedas complejas
          • ¿Cuándo usar tablas de extensión?
          • Indices de trozos y palabras
          • ¿Cuándo usar cada tipo de campo alfa?
        • Procesos y funciones y eventos
          • 1º, 2º, 3º y 4º plano ¿Cuándo usar cada uno?
          • Bloqueo blando vs bloqueo duro
          • Pasar información del cliente al servidor
          • ¿Cómo optimizar transacciones grandes?
          • ¿Cómo gestionar las transacciones?
          • Grabaciones optimizadas para el usuario
        • Carga de registros en objetos de lista
          • Rejillas
            • Campos punteros a singular
            • Totales
            • Condiciones de activo, visible y color en columna
            • Campos de tipo objeto
        • Conoce los límites
      • Imágenes
      • Buenas prácticas para el desarrollo en equipo
      • Modo mantenimiento
    • Análisis de bases de datos para aplicaciones de Velneo
      • Un centro de enseñanza
      • Facturas de un cliente
      • Repartos de obras de teatro
      • Galería de arte
      • Gestión de un colegio
      • Instalación de lunas para vehículos
      • Libros y autores
      • Tienda de discos
      • Últimos pedidos de un proveedor
      • Existencias por almacén y precios por cliente
      • Generación de tickets para un quiosco
      • Navegación por facturas
  • Velneo vDevelop Web
  • Velneo vAdmin
    • ¿Qué es Velneo vAdmin?
    • Gestión de usuarios
    • Gestión de aplicaciones
      • Soluciones
      • Instancias
      • Disco
    • Monitorización
      • Lista de comandos
    • Tareas
    • Acceso directo
    • Velneo vAdmin Web
  • Velneo vClient
    • ¿Qué es Velneo vClient?
    • Movilidad
    • Funcionalidades de Velneo vClient
      • Accesos directos y VRL
      • Cambiar idioma
      • Panel de procesos en 2º plano
      • Manejo de rejillas
        • Submenú de filtros
      • Uso de la rejilla avanzada
      • Manejo de cestas
      • Refrescos
      • Caché local
      • Edición de campos enlazados a maestro
      • Edición de campos de tipo fecha
      • Capturar imagen desde una cámara
      • Asignar impresoras lógicas
      • Actualización automática
      • Personalización de la ventana de conexión de Velneo vClient
      • Instalador personalizado de Velneo vClient
      • Ordenación de listas
  • Velneo vServer
    • ¿Qué es Velneo vServer?
    • Instalación y configuración
      • Activación de la licencia
      • Línea de comandos de Velneo vServer
      • Parámetros configurables de Velneo vServer
      • Estructura de directorios
    • Iniciar y detener Velneo vServer
    • Funcionalidades
      • Protocolo VATP
      • Protocolo VATPS
      • Multi-hilo
      • Integridad referencial
      • Refrescos terciarios
      • Sistema transaccional
      • Sistema de bloqueos
      • Tecnología bigkey
      • Hilo de control
    • Mensajes de log de sistema
    • vPacker
  • Velneo vInstallBuilder
    • ¿Qué es Velneo vInstallBuilder?
    • Configurar una instalación
    • Probar una instalación
    • Crear el instalable
    • Accesos directos
  • Velneo vModApache
    • ¿Qué es Velneo vModApache?
    • Instalación y configuración
    • Nomenclatura de objetos en urls
    • Uso de ficheros adjuntos
    • Caché local de Velneo vModApache
  • Velneo vDataClient
    • ¿Qué es Velneo vDataClient?
    • Iniciar Velneo vDataClient
    • Interfaz de Velneo vDataClient
    • Procesos
    • Utilidades
    • Acceso directo a una instancia de datos
    • Velneo vDataClient Web
  • Velneo vTranslator
    • ¿Qué es Velneo vTranslator?
    • Importación y exportación basada en XLIFF
    • Acceso directo a una solución
  • Velneo ODBC Driver
    • ¿Qué es velneo ODBC Driver?
    • Referencia de comandos SQL
  • Velneo vVersion
    • ¿Qué es Velneo vVersion?
  • Velneo vERP
    • ¿Qué es Velneo vERP?
    • Manual del programador
    • Documentación de la ApiRest
    • Novedades de la versión
  • Velneo vTutor
    • ¿Qué es vTutor?
    • Tutores de objetos básicos
      • Tutor de árboles visores de tablas arboladas
      • Tutor de búsquedas
      • Tutor de cestas
      • Tutor de formularios
      • Tutor de informes
      • Tutor de localizador básico
      • Tutor de marcos
      • Tutor de rejillas
      • Tutor de rejillas avanzadas
    • Tutores de objetos avanzados
      • Tutor de alternadores de lista
      • Tutor de comboview
      • Tutor de drag and drop
      • Tutor de eventos
      • Tutor de tablas de extensión y extensiones de ficha
      • Tutor de tubos de ficha y de lista
      • Tutor de grabación de fichas
      • Tutor de gráficos
      • Tutor de impresión de informes
      • Tutor de lupas
      • Tutor de protocolo TCP/IP
      • Tutor de reemplazo
    • Tutores de controles
      • Tutor de botones de menú
      • Tutor de controles SVG
      • Tutor de edición numérica
      • Tutor de visor html dinámico
      • Tutor de vistas de datos de lista
    • Tutores de procesos y manejadores de evento avanzados
      • Tutor de cambio de marco
      • Tutor de comandos de interfaz y acciones
      • Tutor de importación y exportación de ficheros ASCII
      • Tutor de portapapeles
      • Tutor de procesos
      • Tutor de SDV
    • Tutores de scripts
      • QML: hola mundo
      • QML: tutor básico
      • QML: tutor de vistas
      • Tutor de XMLHttpRequest (webServices)
  • Velneo cloud
    • ¿Qué es Velneo Cloud?
    • Panel de control vServer cloud
      • URC
      • vServer
      • Apache
      • SFTP
      • Usuarios
    • Copias de seguridad
    • Velneo cloud API
      • Uso de Velneo cloud API
    • Explorador de archivos cloud sFTP
    • TCP en Velneo cloud
    • Dominios de empresa y certificados
    • Velneo vModApache en cloud
    • SLA
    • Hora de los servidores en el cloud de Velneo
    • ¿Qué puedo hacer si tengo una incidencia en mi servidor cloud?
Con tecnología de GitBook
En esta página
  • Instalación en Android
  • Instalación en iOS
  • Ejecución de instalable
  • Ejemplos
  • Configuración de Velneo vClient
  • Recomendaciones programación para móviles
  • Dispositivos y High dpi
  • Recomendaciones generales
  • Estructura de menú principal
  • Listas de registros
  • Formularios
  • Botones
  • Edición de fechas
  • Edición de horas
  • Utilidades genéricas (Email, Teléfono, Mapas, Whatsapp y SMS)
  • CSS
  • Formulario popup
  • Problemas conocidos
  • iOS
  • Android

¿Te fue útil?

  1. Velneo vClient

Movilidad

Velneo vClient está disponible para su uso tanto en dispositivos con sistema operativo Android como iOS. Están disponibles para su descarga en Apple Store y Play Store.

Instalación en Android

Se trata del componente Velneo vClient de la plataforma que permite la conexión a servidores de Velneo desde dispositivos móviles con sistema operativo Android™.

Para facilitar el uso de Velneo vClient en tu Android, lo podrás obtener a través de Google play de Google, donde podrás descargar e instalar Velneo vClient. Además, disfrutarás del servicio de actualización de Google play que puedes configurar para que te avise de nuevas versiones y te actualice de forma automática.

Se recomienda realizar la instalación conectado a una red Wifi, mejor que una conexión móvil. Esto agilizará el proceso de instalación y optimizará el uso de nuestros recursos de Datos móviles, en caso de disponer de los mismos.

Instalación en iOS

Se trata del componente Velneo vClient de la plataforma que permite la conexión a servidores de Velneo desde dispositivos móviles con sistema operativo iOS.

Para facilitar el uso de Velneo vClient en tu iPhone o iPad, lo podrás obtener a través de Apple Store, donde podrás descargar e instalar Velneo vClient. Además, disfrutarás del servicio de actualización automática de tu dispositivo.

Política de desconexión Wi-Fi para el uso posterior del cliente. En este aspecto debemos tener en cuenta que si durante la ejecución de Velneo vClient se produce un corte permanente en las comunicaciones, esto provocará una expulsión del cliente por parte del servidor al que estemos conectados.

En iOS Velneo vClient desactivará el modo oscuro durante su ejecución y solamente para él.

Ejecución de instalable

Al comenzar la instalación de Velneo vClient en Android, lo primero que nos solicita el sistema es la asignación de permisos a la aplicación para los distintos recursos de que hará uso. Una vez aceptado el formulario para la asignación de permisos, podemos pulsar la opción Instalar, que realizará el proceso correspondiente.

Al finalizar la instalación, el instalable nos mostrará un mensaje indicando que el proceso ha finalizado correctamente. En el mismo formulario del mensaje de instalación finalizada tenemos la posibilidad de Abrir la aplicación. También podemos ejecutarlo desde los distintos accesos que nos ofrece Android (organizador de aplicaciones, accesos directos en escritorios, ajustes de aplicaciones, etc.)

Cuando lo ejecutemos, se mostrará la ventana de conexiones:

En ella podremos configurar la conexión a uno o varios servidores. Para configurar una conexión haremos clic sobre el botón + que aparece en la parte superior derecha de la ventana. Tendremos que especificar los datos siguientes:

Nombre: en este parámetro podremos especificar el nombre que queramos darle a la conexión (Ejemplo: servidor de desarrollo, servidor de producción…).

Servidor: en este parámetro especificaremos la VRL (Velneo Resource Locator) del servidor, que deberá tener la estructura siguiente:

vatp[s]://IPSERVIDOR[:NUM_PUERTO]

Donde:

IPSERVIDOR será el nombre o la IP del servidor donde se encuentra a la escucha el servicio de Velneo vServer.

[:NUM_PUERTO]: será el número de puerto en el que el servidor está a la escucha. Velneo vServer por defecto usa el el puerto 690, por lo que, si el servidor al que nos vamos a conectar usa dicho puerto, podremos omitirlo. En caso de usar un puerto diferente, entonces tendremos que especificarlo.

Ejemplos

vatp://198.162.0.7 (conectará con un servidor de la red local cuya IP es 198.168.1.7 y que está a la escucha en el puerto 690).

vatps://c1.velneo.com:6900 (conectará con un servidor alojado en el cloud de Velneo, con protocolo VATPS activado y que está a la escucha en el puerto 6900).

Si al conectarnos con un servidor con el protocolo VATPS se produce un error de TLS/SSL, aparecerá en la barra de estado de la ventana de conexión una opción para ver las excepciones que se han producido y permitir ignorarlas, de este modo, el servidor se incluirá como excepción y ya podrá ser accedido desde esa máquina.

No es posible conectarnos usando VATPS contra un servidor que no admita conexión segura ni viceversa, conectarnos por VATP contra un servidor que requiera conexión segura.

Usuario: nombre de un usuario declarado en Velneo vServer.

Contraseña: contraseña del usuario declarado en el parámetro anterior.

Una vez definidos todos los parámetros, pulsaremos el botón “guardar” para guardar la conexión. En ese momento la conexión definida será añadida a la lista de conexiones de Velneo vClient:

Para conectarnos con el servidor, simplemente pulsaremos sobre la conexión:

Una vez hecho esto, nos mostrará la lista de instancias disponibles. Pulsar sobre la instancia que se desea ejecutar.

Si queremos editar una conexión definida para cambiar alguno de sus parámetros, lo que haremos será mantener la pulsación sobre la conexión durante unos segundos y se abrirá su ventana de propiedades.

Configuración de Velneo vClient

Para la administración de la aplicación en el sistema Android, debemos acceder al menú de ajustes, opción administrar aplicaciones y seleccionar Velneo vClient. Desde este menú podremos realizar las siguientes acciones:

Borrar datos

Esta opción realiza el borrado del historial de servidores a los que nos hemos conectado desde el dispositivo móvil y el cacheado local de aplicaciones a las que nos hemos conectado también. Es conveniente hacerlo regularmente, sobretodo en dispositivos con reducido espacio en disco, si nos conectamos a aplicaciones diversas.

Desinstalar

Con esta opción desinstalamos totalmente Velneo vClient de nuestro dispositivo móvil.

Forzar detención

Opción solo activa durante la ejecución de Velneo vClient que permite detener el proceso.

Recomendaciones programación para móviles

Dispositivos y High dpi

Aunque es cierto que los móviles de última generación vienen con una resolución de gran tamaño (1920×1080 o incluso más), nuestra recomendación es desarrollar siempre pensando en una resolución de 1024×768. Después, y gracias al sistema gráfico de Velneo y al high dpi, todos los controles son escalados a la resolución en la que estemos ejecutando nuestra aplicación.

Desde un punto de vista técnico, existe lo que se conoce como “Device pixel ratio”. Éste se calcula dividiendo los puntos por pulgada del dispositivo (dpi) entre 72. Por ejemplo, un móvil que tiene dpi de 144, el Device pixel ratio será 2. El sistema gráfico se encarga de escalar todos los controles en función al “Device pixel ratio” (en el caso de Android, en la versión actual, sólo escala las fuentes). De esta manera, ya sea el dispositivo de de 144dpi o 496dpi, la cantidad de controles que se muestran son los mismos, pero con más resolución.

En Velneo todo esto se calcula de forma automática. El desarrollador no tiene que hacer nada especial.

Algunas otras recomendaciones sobre el diseño de la interfaz son:

  • Utilizar los controles con ajuste de layout por defecto, sin tamaño fijo. Esto permite al control adaptarse al contenido.

  • Utilizar las rejillas con alto 0 en cabeceras y filas, ya que así se adaptarán al tamaño de la fuente que contiene.

  • En css, cuando queramos que escale, utilizar el tamaño en pixeles. Si indicamos puntos, el control será específicamente de los puntos indicados.

Cuanto más queramos que nuestra aplicación se parezca a una aplicación nativa para Android o iOS, más aconsejable es tener un proyecto diferente para cada plataforma. Temas como la forma en que se muestra el menú o el ajuste de los controles aconsejan esta vía. De todas maneras siempre hay cosas que se pueden aprovechar para las dos plataformas y para eso podemos hacer uso de la clase vSysInfo, que nos permite saber entre otras cosas si estamos en un dispositivo iOS o Android.

Recomendaciones generales

Cuando adaptes tu aplicación para el uso en dispositivos móviles, ten en cuenta estas recomendaciones:

  • En dispositivos móviles no se usa el drag &drop. Tendrás que sustituirlo por un control más acorde con esos dispositivos.

  • De forma generalizada, los usuarios de dispositivos móviles están acostumbrados a salir de las aplicaciones con el botón Home del dispositivo. En ese momento la aplicación se queda en segundo plano. Esto provoca que si se supera el tiempo máximo de desconexión de enganche ( 5 mins), y el usuario vuelve a la aplicación, ésta está desconectada. Hay dos cosas que podemos hacer al respecto: una, dejar la barra de estado visible en la aplicación ya que es allí donde se informa de que se ha desconectado del vServer, y dos, subir el tiempo de desenganche, tal y como se indica en la documentación de Velneo vAdmin.

  • El directorio home en iOS tiene restringida la escritura, es de solo lectura. El programador deberá usar otra ruta alternativa si necesita escribir.

  • En iOS, los cuadros de diálogos que se lanzan con la instrucción Mensaje o con alert en vJavascript, siempre aparecen a pantalla completa.

Estructura de menú principal

Listas de registros

La mejor opción para mostrar listas en un dispositivo móvil, por usabilidad, es QML:

  • Permite mostrar imágenes.

  • Permite desplazamiento sobre la lista arrastrando un dedo, cuando no caben todos los registros en pantalla.

  • Permite juegos visuales más atractivos para el usuario.

  • Permite, como es común en móviles, hacer una capa de visualización y otra de edición.

Si optamos por usar el control rejilla, contamos con la cuentas con la opción Tap&Hold, es decir, si mantenemos presionada una fila, se abrirá el formulario tal y como hace el doble click en las versiones de escritorio.

Formularios

Botones

Un ancho y alto de 9 mm es el tamaño recomendado (4,2 mm es el tamaño mínimo de un elemento para que pueda parecer pulsable).

Un espacio de 2 mm (al menos) de separación visual entre botones reduce la percepción de dificultad.

En resumen, los botones deben:

  • Tener un tamaño suficiente para ser pulsados cómodamente.

  • Alejarse de acciones peligrosas.

  • Tener aspecto de botón.

Edición de fechas

La edición de fechas se puede realizar perfectamente con el control fecha en un dispositivo móvil. Ahora, si queremos más versatilidad o incluso algo más de usabilidad a la hora de que el usuario final introduzca una fecha, podemos recurrir a esta alternativa:

Al pulsar con el dedo en la fecha (señal Ratón: botón soltado) se muestra un subformulario con los datos de día, mes y año por separado. Los botones + y – ejecutan manejadores de evento en los que se modifica la fecha con las funciones addDays, addMonths y addYears.

Edición de horas

La edición de horas se puede realizar perfectamente con el control hora en un dispositivo móvil. Ahora, si queremos más versatilidad o incluso algo más de usabilidad a la hora de que el usuario final introduzca este dato, podemos recurrir a esta alternativa:

Al pulsar con el dedo en la hora (señal Ratón: botón soltado) se muestra un subformulario con los datos de hora y minutos por separado. Los botones + y – ejecutan manejadores de evento en los que se modifica la hora.

Utilidades genéricas (Email, Teléfono, Mapas, Whatsapp y SMS)

Podemos aprovechar para completar la funcionalidad de nuestra aplicación con utilidades genéricas que son realmente sencillas de desarrollar:

Para enviar un email

Ejecutar documento ( "mailto:" + replaceString(#EML, " ", ""), )

Ejemplo:

mailto:velneo@velneo.com

Para marcar el teléfono

Ejecutar documento ( "tel:" + replaceString(#TEL, " ", ""), )

Ejemplo:

tel:902366382

Para abrir mapas

Android

Ejecutar documento ( "geo:" + "0,0?q=" + replaceString(#DIR + " "+ #DIR_2 + " " + #PAI-NAME, " ", "+"), )

Ejemplo:

geo:0,0?q=Polígono+Industrial+Granxa+Rúa+D+Esquina+Paralela+3+36400+Porriño+(PONTEVEDRA)

iOS

Ejecutar documento ( "maps:" + "0,0?q=" + #LATITUD, #LONGITUD, BOK)

Ejemplo:

Ejecutar documento ( "maps://?q=19.314512,-99.112203", BOK )

Para enviar un WhatsApp

Ejecutar documento ("https://api.whatsapp.com/send?phone=" + #TEL + "&text=" + #TEXTO

Ejemplo:

Ejecutar documento ("https://api.whatsapp.com/send?phone=003466666666666>&text=Hola,%20estoy\%20interesado\%20en%20tu%20oferta."

Para enviar un SMS

Ejecutar documento( "sms:" + #TELEFONO + "?body=" + #EMAIL, )

Ejemplo:

sms:66655667788?body=Hola, un saludo

CSS

El uso de CSS es igual de recomendable que en las versiones de escritorio para dar un aspecto más adecuado a nuestras aplicaciones móviles.

Formulario popup

Se aconseja que los controles de edición de datos se realicen desde formularios a pantalla completa o cuadro de diálogo. En dispositivos móviles no se deben usar formularios popup para la edición de datos desde controles.

Problemas conocidos

iOS

  • No está disponible la impresión de informes ni la presentación preliminar de los mismos.

  • No está disponible el control visor html. Por cuestiones de limitación de licencia no es posible hacer uso del navegador propio de Velneo.

  • El teclado nos ofrece de forma automática las opciones para copiar, cortar y pegar textos con el portapapeles, pero desde un control de edición estas opciones no son funcionales.

  • En una rejilla si tenemos visible la multiselección de las filas, es posible que se vean algunos cuadrados negros en lugar de la imagen de selección o el cuadro para seleccionar.

Android

  • No está disponible el control visor html. Por cuestiones de limitación de licencia no es posible hacer uso del navegador propio de Velneo.

Última actualización hace 3 años

¿Te fue útil?

vatp[s]:// indica el esquema de conexión. Si el servidor con el que nos vamos a conectar tiene activado el , el esquema será vatps://. Si no lo tiene, será vatp://.

Si queremos tener más control en tiempo de ejecución, podemos obtener el “Device pixel ratio” de nuestro dispositivo usando las nuevas instrucciones incluidas en la versión 7.19: el comando de instrucción de proceso y la nueva clase .

En dispositivos móviles no es habitual el uso de pestañas, como en escritorio, así que es recomendable usar en el objeto AUTOEXEC el modo de arranque SDI.

Es recomendable usar y fuente de sistema en el diseño de los , de forma que se adapten a las posiciones vertical y horizontal del dispositivo y los tengan ancho y alto en layout por defecto para que adquieran el tamaño apropiado en función de la fuente.

protocolo VATPS
marco
layouts
formularios
controles de edición
VScreen
get información pantalla