PC SOFT

AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

¡Nueva funcionalidad de WINDEV, WEBDEV y WINDEV Mobile 26!
Este contenido se ha traducido automáticamente. Haga clic aquí para ver la versión en inglés.
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Otros
Procedimientos almacenados
HTML: una necesidad universal
Las nuevas funcionalidades de la versión 26 alrededor del nuevo control HTML le brindan una potencia y funcionalidades infinitas.
El nuevo control se basa en Chromium y utiliza las últimas tecnologías HTML.
Sus aplicaciones mostrarán páginas web (Parte 1), sus aplicaciones generarán páginas HTML, sus usuarios crearán o modificarán sus páginas HTML (Parte 2), sus aplicaciones ofrecerán funcionalidades estándar de administración de correo electrónico (Parte 3), usted programará fácilmente potentes procesos para analizar el contenido de las páginas web (Parte 4) .
Ya sea en Windows, Internet, Android o iOS, usted sacará el máximo partido en HTML.
Visualización de HTML nativo control: Resultados perfectos
El control de visualización HTML se utiliza para mostrar una página Web.
Por ejemplo, en 1 línea de código, sin usar un navegador externo, sus aplicaciones WINDEV pueden mostrar una página de un sitio Web: ayuda, noticias, documentación técnica...
El control de visualización HTML de la versión 26 muestra perfectamente todos los documentos HTML, creados con WINDEV, WEBDEV o WINDEV Mobile o cualquier otro editor.
Las etiquetas más recientes son soportadas.
Las hojas de estilo CSS son soportadas.
El código JavaScript eventualmente presente en el HTML es interpretado si usted lo autoriza.
El control muestra contenido HTML (un archivo) o contenido remoto de una URL.
Visualización HTML control: Tecnología Chromium
El control de versiones anteriores se basó en un Internet Explorer ActiveX.
La pantalla HTML de control en la versión 26 utiliza Chromium y no requiere ningún recurso externo para funcionar: sin ActiveX, sin dependencia de la versión de Windows o del navegador instalado en la máquina de ejecución.
Un navegador web en sus aplicaciones
El código fuente de un navegador está incluido en la versión 26.
Puede usar, modificar y personalizar este código para incluirlo en sus aplicaciones.
El uso de este tipo de navegador garantizará que sus páginas se muestren de la misma manera para todos sus usuarios.
Este tipo de navegador también permite definir fácilmente una lista de los sitios que se pueden abrir, lo que puede ser útil en un entorno profesional.
HTML Display control: Relleno automático de formularios web mediante programación
La manipulación del "Control" HTML por programación no debe confundirse con la manipulación del "código" HTML por programación (Parte 4).
Es posible que una aplicación necesite interactuar con el contenido de la página:
  • Activar por programación el clic de un botón para mostrar automáticamente la página siguiente
  • Rellenar un formulario por programación
  • ...
El Control de visualización HTML en la versión 26 viene con nuevas funciones WLanguage:
  • Rellenar un control Campo de entrada
  • Rellenar un control Formulario
  • Hacer clic en el botón
  • Recuperar el valor de un control Formulario
  • Identificar un control
  • Hacer clic en un botón de opción o una casilla de verificación
  • Hacer clic en una opción en una casilla de verificación
  • ...
Pantalla HTML control: Un botón HTML puede ejecutar el código WLanguage
Un control de visualización HTML puede activar la ejecución de código WLanguage (desde un botón, etc.). Este código WLanguage está presente en la ventana que contiene el control HTML.
En el código JavaScript del botón HTML, simplemente llame a WLExecute, pasando el lenguaje WLanguage Procedure y sus parámetros.
Función useful: la función WLanguage llamada desde el código JavaScript puede tomar varios parámetros.
Si es necesario, puede llamar al código JavaScript contenido en la página desde el código WLanguage.
Nuevos eventos
Para programar un comportamiento personalizado del Control de visualización HTML, ahora están disponibles nuevos eventos de programación para este control.
Se agregan a eventos existentes.
  • Carga Resource
    Esta Event se utiliza para filtrar la carga de un elemento en la página antes de ser descargado.
    Por ejemplo: permite denegar la carga de recursos que se encuentran en otro dominio o en dominios no autorizados o en listas negras; evita la carga de imágenes de seguimiento, etc.
  • Cambiar página
    Este evento permite ser notificado justo antes de solicitar una nueva página, o memorizar la secuencia de páginas vistas.
  • Haga clic con el botón derecho en un enlace
    Permite mostrar un menú contextual, por ejemplo.
    Esto también se puede usar para evitar cambiar a otra página.
  • Manejar el contenido del HTML control
    El control HTML puede estar relacionado con un archivo de datos HFSQL (u otro): puede ser "atado". El binding se puede realizar en la página completa o en una parte de la página.
    Esto puede ser útil para gestionar formulario de productos, por ejemplo.
Pantalla HTML control: Varios
  • Se introducen 3 nuevas propiedades: URL, Document, PopupMenu.
  • El código JavaScript se ejecuta en un entorno seguro ("sandbox").
  • Gestión avanzada de pantalla 4K.
  • El contorno del control se puede configurar.
HTML control Campo de entrada: Con muchas funciones
El control de edición HTML en la versión 26 usa los últimos estándares HTML.
Todas las funcionalidades HTML son reconocidas y pueden usarse.
El código CSS incluido en el contenido HTML se gestiona de forma nativa.
HTML control Campo de entrada: Característica
El control de edición tiene una cinta de opciones integrada.
No tiene nada que programar en su aplicación.
El aspecto y las funcionalidades de esta cinta se pueden personalizar (usted puede agregar botones y paneles).
Las opciones predeterminadas incluyen:
  • elección de la fuente, tamaño, color
  • negrita, cursiva, subrayado, tachado...
  • importa estilos CSS
  • gestión de imágenes: mover, recortar, redimensionar, rotar, etc.
  • editar los enlaces
  • deshacer/rehacer
  • copiar/pegar texto sin formato, RTF, Docx, HTML
  • pegar sin formato
  • guardar
  • imprimir
  • exportar a PDF
  • emojis
  • alineación
  • sangría
  • arrays
  • corrector ortográfico
  • buscar/reemplazar
  • ...
HTML control Campo de entrada: Pasar del modo WYSIWYG al modo fuente
El control HTML permite escribir código HTML en modo WYSIWYG.
Para los usuarios avanzados (o los reyes del copiar/pegar), es posible cambiar en cualquier momento al modo código fuente, que muestra las etiquetas HTML.
Esto permite, por ejemplo, declarar una hoja CSS, insertar una etiqueta en particular, pegar un fragmento de código...
En el modo código fuente, también es posible escribir (o pegar) código JavaScript.
El código HTML se almacena en formato UTF-8 y se visualiza en modo WYSIWYG.

HTML control Campo de entrada: Nuevas funciones de WLanguage
El control de edición HTML generalmente está integrada en una ventana que proporciona funcionalidades automáticas sobre el contenido HTML que se ingresa, a menudo a través de botones: insertar un texto definido por programación, insertar una cotización, formatear e insertar datos de la ventana actual, insertar una firma, insertar el logotipo, colocar el cursor, preseleccionar una parte del texto.
Ahora están disponibles varias funciones de WLanguage para este propósito en la versión 26:
  • HTMLEditorFormatSelection: Aplica el formato al texto seleccionado: negrita, cursiva, subrayado, tamaño, fuente, estilo CSS...
  • HTMLEditorInsert: Inserte texto o código HTML en la posición del cursor. Si se selecciona un texto, se reemplaza.
  • HTMLEditorInsertTable: Inserta una tabla vacía en la posición del cursor. El número de filas y columnas debe especificarse como parámetro. El usuario final puede editar esta tabla usando el ratón.
  • HTMLEditorSelect: Posicione el cursor.
HTML control Campo de entrada: Nuevos eventos
Se introducen nuevos eventos para administrar con precisión este control de edición HTML.
  • Selección
    Este nuevo evento se llama cada vez que el usuario selecciona un elemento en el documento HTML.
    El nuevo tipo de lenguaje edtHTMLSelection WLanguage le permite get información sobre los elementos seleccionados: palabra seleccionada...
  • Después de cargar la página
    Este nuevo evento se llama una vez que la página se ha cargado por completo. Esto es útil, por ejemplo, para iniciar un análisis automático de página .
  • Carga Resource
    Este nuevo evento se llama cada vez que la página descarga un elemento: imagen, archivo... Permite verificar y evitar una descarga si es necesario.
  • Siempre que modiying
    Este nuevo evento se llama cada vez que el usuario realiza una modificación en la página: entrada,...
control de edición HTML específico para correos electrónicos
La versión 26 ofrece un nuevo control de edición HTML específico para correos electrónicos.
Este control permite que sus aplicaciones incluyan la entrada WYSIWYG de texto enriquecido utilizando el estándar HTML, que luego puede ser reconocido y mostrado por todos los proveedores de correo electrónico..
El documento HTML creado se puede almacenar en la memoria o en el disco.
Los secretos del texto de los correos electrónicos
Es importante saber que los correos electrónicos no pueden contener todos los elementos estándar HTML o CSS.
Cada proveedor de correo electrónico (Gmail, Yahoo, Outlook, Thunderbird, Courier, etc.) tiene sus propias limitaciones.
Para ser interpretado correctamente, un correo electrónico solo puede contener un subconjunto de las funcionalidades HTML y CSS.
Por ejemplo, Gmail no admite imágenes SVG y HDR o etiquetas <video>, Outlook no admite botones "Enviar" o Doctype HTML 5, Yahoo no admite las anclas, etc..
El control HTML Email en la versión 26 solo permite el uso de las funcionalidades admitidas por todos los proveedores de gestión de correo electrónico: ¡Los correos electrónicos creados con sus aplicaciones se mostrarán correctamente!
Email control: Imágenes
Las imágenes en el control HTML para correo electrónico se incluyen como archivos adjuntos (las imágenes codificadas en base 64 no son compatibles con los proveedores de correo electrónico).
Gestión de correo electrónico más sencilla
En la versión 26 se proporciona un ejemplo de fuente completo en WLanguage de gestión de correos electrónicos (recepción y envío) basado en el nuevo control HTML Email; todo está gestionado.
Por ejemplo, al responder a un correo electrónico, el correo electrónico inicial se copia y sangra automáticamente debajo del texto ingresado.
Las firmas también se pueden insertar automáticamente.
¡Sus aplicaciones recibirán un booster de juventud, sin esfuerzo!
Una programación nativa
Por programación, sin UI, WLanguage permite manejar un documento HTML, leerlo, enriquecerlo.
Dos tipos nativos, 2 nuevas funciones y 285 nuevas sintaxis (ver página 50) permiten manipular el código fuente HTML, construir un Document desde cero, modificar un Document existente, añadir etiquetas, buscar y modificar el contenido, añadir imágenes y tablas,...
Puedes acceder de forma nativa a cada nodo del árbol HTML.
Es también posible crear o modificar código JavaScript en el documento HTML.
Los estilos CSS locales también se pueden manejar por programación en la versión 26.
2 tipos nativos para los documentos html de manipular
La versión 26 ofrece posibilidades avanzadas para manejar HTML: Se introducen 2 tipos de WLanguage.
Estos tipos nativos permiten realizar todas las operaciones deseadas en un documento HTML existente o creado desde cero.
El tipo nativo htmlDocument se utiliza para gestionar todo el HTML Document.
El tipo nativo htmlNode se utiliza para gestionar un nodo del árbol HTML: una tabla, un control Entrada, una metaetiqueta...
El tipo htmlNode ofrece muchas propiedades para gestionar cada etiqueta:
  • nombre de la etiqueta
  • atributo
  • elemento hijo
  • elemento hermano
  • elemento padre
  • fila
  • ...
Ejemplo de acceso a un nodo del árbol HTML:
Document is htmlDocument
]
Document.body:color = "blue"
Buscar elementos en el documento HTML
2 nuevas funciones de WLanguage permiten buscar elementos en todo el HTML Document: HTMLFindElementById y HTMLFindElementByName .
Estas funciones devuelven una htmlNode Variable, que puede utilizarse para realizar todos los procesos deseados.
Ejemplos de código
La programación HTML en WLanguage es muy poderosa en la versión 26.
Aquí, se muestran algunos ejemplos de código utilizado para leer HTML:
  • Recuperación de la facturación de una empresa en un sitio web
    // Get the company's turnover
    // from the HTML file used to display data in table
     
    HTMLDoc is htmlDocument
    HTMLDoc = HTMLOpen("https://site.com/page.html", fromURL)
     
    FOR Year = 2018 TO 2020
        element is htmlNode = HTMLDoc.FindByID("TO_" + Year)
        TableAddLine(TABLE_TO, Year, element.value)
    END
  • Análisis de una página HTML para recuperar una factura
    // Get the invoice URL from the HTML file
    // to download the invoice
     
    HTMLDoc is htmlDocument = HTMLOpen("MyFile.html", fromFile)
    node is htmlDocument = HTMLDoc.FindByID("Invoice_092020")
    InvoiceURL is string = element.attributes["href"]
    HTTPRequest(InvoiceURL)
  • Navegar por una tabla HTML
    // Browse through table rows with ID czZ4 in the HTML document
    HTMLDoc is htmlDocument = HTMLOpen("MyFile.html", fromFile)
    table is htmlNode = HTMLDoc.FindByID("czZ4")
    FOR EACH ROW OF table.tbody
       //Process
    END
  • Recuperación de favicon de una página HTML
    // Get the URL of the page logo
    IMG_logo = HTMLdOC.head.querySelectorlink[rel*="icon"]').href
Aquí un ejemplo de un programa de generación de código HTM, que basándose en un modelo, crea una página HTML para escribir opiniones sobre una selección de productos de una base de datos:
// Create survey
// For new products, ask the opinion of the customers
// "Base of survey" html document
HTMLDoc is htmlDocument = HTMLOpen(SurveyTemplate, fromString)
 
// Set position on <table>
TheTable is htmlNode <- HTMLDoc.FindByID("TheTable")
 
// Get "template" row (which will be deleted)
TemplateRow is htmlNode = TheTable.TR
delete ALL(TheTable)
 
// For each new product
FOR EACH Product where new = True
    // Create a survey row
    // with a caption: "PRODUCTNAME is a new product."
    // and an edit control already present in the template row
    ARow is htmlNode = TemplateRow
    ARow.TD.label..Text = "Your opinion about" + Product.ProdDesc
// Add row to the HTML document
Add(TheTable, ARow)
END
 
// Save page
HTMLSave(HTMLDoc, "survey.html", HTMLDefaultDocument)
Mapa: Integrar imágenes en un mapa
En la versión 26, es posible integrar imágenes y dibujos en un mapa: el ejemplo más inmediato es un logotipo de empresa que materializa la ubicación de la empresa.
La imagen está integrada en el mapa, lo que significa que cuando se amplía el mapa, la imagen también se amplía. El tamaño de la imagen debe ser indicada en metros.
plano: integrar formas geométricas en un mapa
En la versión 26, también puede dibujar e integrar formas geométricas en un mapa:
  • línea
  • cuadrado
  • círculo
  • Polygon
  • polilínea (línea discontinua)
  • ...
La forma está integrada en el mapa, lo que significa que cuando se amplía el mapa, también se cambia el tamaño de la forma.
Mapa: Visualizar el tráfico por carretera en un mapa
El tráfico por carretera en tiempo real se puede mostrar en un mapa.
En un mapa de Google, los datos provienen de Google Maps.

plano: mostrar un área geográfica
Por defecto, un mapa puede mostrar un área geográfica determinada en modo de pantalla completa.
Es posbible prohibir al mapa salir de esta área: el usuario podrá acercar, pero no podrá alejar.
El área a visualizar se puede especificar utilizando sus coordenadas geográficas o su nombre (ciudad, región, país, etc.).
MapDisplayArea posiciona el control Mapa en una zona geográfica determinada (coordenadas de las esquinas).
MapLimitArea limita el zoom y el arrastre para que el área especificada sea siempre Visible.
geoGetArea toma una calle, ciudad o Country y recupera las coordenadas de la zona correspondiente.
Mapa: Mostrar una ventana emergente
Los marcadores tienen muchas opciones adicionales en la versión 26, incluida la posibilidad de mostrar una Popup cuando se hace clic en el marcador por programación.
Esta Popup se puede personalizar completamente usando una Ventana Interna o una Página Interna.
Se introducen 3 nuevas funciones de WLanguage: MapDisplayPopup, MapClosePopup y MapPopupDisplayed .

Mapa: Evitar los gestos en los dispositivos móviles
En los dispositivos móviles, hay 4 posibles gestos en los mapas:
  • Zoom táctil
  • Desplazamiento
  • Girar
  • Inclinación
En la versión 26, es posible evitar algunos de estos gestos en un mapa.
Mapa: Estilo: Tema oscuro...
En la versión 26, se puede mostrar un mapa en tema oscuro.
También están disponibles otros temas de mapas (gris, etc.).
Mapa: vista en 3D, ángulo...
En el mapa, puede cambiar por programación la posición de la cámara, es decir el ángulo de visualización del mapa (0 ° a 45 °): Inclinación.
También es posible efectuar una rotación.

Mapa: Grupo de marcadores, agrupación automatic
En la versión 26, los controles Mapa cuentan con "clúster automático".
Los clústeres de marcadores mejoran la legibilidad de un mapa cuando hay muchos marcadores en un área pequeña. El clúster agrupa automáticamente los marcadores, evitando que se vuelvan desordenados e ilegibles.
Por defecto, un clúster está representado por un círculo.
El color de este círculo varía según la cantidad de marcadores que contiene.
El número de marcadores se muestra automáticamente en el círculo.
Todo se puede personalizar.
Para que un marcador se agrupe en un cluster, basta con utilizar el .Cluster Property .
Un nuevo tipo WLanguage permite personalizar las características de los clústeres: el tipo MarkerImage .
Mapa: Varios
En la versión 26, el control Mapa se beneficia de otras nuevas funcionalidades:
  • Posible visualización de una brújula
  • Nuevas propiedades para marcadores: Opacidad, Movible , AcciónArrastrar, Orden Z, Nota ...
  • El tipo MarkerImage permite personalizar la imagen de un Marker.
Controles inteligentes
La versión 26 ahora incorpora 10 nuevos controles Smart:
  • Ayuda para la creación de contraseñas,
  • Entrada de código PIN visual,
  • Menú hamburguesa vertical y apertura de ventana Popup,
  • Google reCaptcha,
  • Control Video con botones de control,
  • Patrón de desbloqueo de teléfono,
  • Combo box con casillas de verificación,
  • Token en modo de filtro,
  • Entrada de fecha y hora con el ratón,
  • Barra de aperitivos.
PDF Reader control: Extraer páginas
El control Lector PDF permite crear un nuevo documento PDF que contiene un conjunto de páginas (intervalo o páginas diferentes) de un documento PDF específico.
PDF Reader control: Añadir páginas
El control Lector PDF permite insertar una o más páginas en una ubicación específica en un documento PDF existente.
Lector de PDF control
El control Lector PDF permite eliminar una o más páginas de un documento PDF existente.
PDF Reader control: Zona de paso
En el PDF Document, ¿cómo determinar lo que el usuario final está pasando por encima con el ratón? MouseXPos y MouseYPos son las funciones estándar utilizadas para get la posición del ratón.
La función PDFReaderInfoXY WLanguage devuelve el número de página y las coordenadas del ratón dentro de la página (en milímetros).
Por ejemplo, esto permite mostrar información contextual sobre el documento PDF.
WP control: Visualización continua
El control Procesador de textos ahora propone una visualización de texto continua, sin ruptura de página . Útil para una lectura más fluida.
WP control: Varios
  • Diccionario de ortografía en español incluido
  • Nombre predeterminado para guardar el archivo: ya sea al comienzo del texto o definido por programación
  • Nueva función: DocInfoXY.
control Hoja de cálculo: Document con múltiples hojas de trabajo
En un archivo XLSX con varias hojas de trabajo, se recuerda la última hoja de trabajo utilizada y se mostrará la próxima vez que se abra el archivo.
El usuario final también puede reorganizar las hojas de trabajo.
control Hoja de cálculo: Varios
  • Ahora es posible fusionar celdas por programación.
Recordatorio
El sistema OCR (Reconocimiento óptico de caracteres) analiza una imagen y extrae el texto.
La versión 26 le permite incluir funcionalidades nativas de OCR en sus aplicaciones y sitios.
El motor de OCR es una red neuronal. Descifra las imágenes que contienen texto.
¡Tome una foto de un contrato con su teléfono y recupere el texto en su aplicación o en Microsoft Word!
El OCR también es útil en los Sistemas de Gestión de Documentos (SGD) para indexar contenidos.
Una nueva familia de WLanguage: OCR
El método para recuperar un texto es simple: simplemente pase una imagen (en cualquier formato) o un documento PDF a la función OCRExtractText.
OCRExtractText devolverá todo el texto de la Image.
Solo se tiene en cuenta el contenido de tipo texto.
Para analizar solo una parte de una imagen, simplemente especifique las coordenadas de la parte a analizar.
Por ejemplo:
MyRectangle is Rectangle
MyRectangle.X=129
MyRectangle.Y=94
MyRectangle.Width=1353
MyRectangle.Height=121
OCRExtractText(MyImage, MyRectangle)

La función OCRExtractTextBlock analiza una imagen y devuelve un conjunto de rectángulos que contienen cada uno un bloque de texto.
OCR: Gestión de las lenguas
Por defecto, se admiten todos los idiomas.
El sistema OCR reconoce los siguientes conjuntos de caracteres:
  • latino
  • cirílico
  • chino
  • japonés
  • árabe
  • hebreo
  • ...
Además, el sistema OCR analiza los textos resultantes en tiempo real y utiliza un modelo específico del idioma.
Este modelo mejora el reconocimiento.
Los idiomas optimizados de forma predeterminada son el español, inglés y francés.
Para optimizar otros idiomas, basta con integrar el modelo de entrenamiento de la red neuronal correspondiente (disponible en Internet).
Varios idiomas son soportados simultáneamente.
Esta optimización se puede deshabilitar.
Nueva función en los controles de los gráficos: etiquetas verticales
Una nueva opción para los valores de las barras del gráfico de columnas permite que estos valores se muestren verticalmente.

Nuevo Gráfico: Zona de alcance
Ahora está disponible un nuevo tipo de gráfico en la versión 26: gráfico de área de rango.
Este tipo de gráfico se usa para visualizar una variación entre un valor alto y un valor bajo.
El eje X generalmente representa el tiempo, y el gráfico muestra la evolución de los valores altos y bajos.


Nueva función en los controles de los gráficos: líneas de cuadrícula punteadas
La cuadrícula de gráficos ahora puede ser punteada: ¡Es la versión ligera de las cuadrículas!


salir de un campo de entrada obligatorio sin rellenarlo
WINDEV, WEBDEV y WINDEV Mobile siempre han incluido campos de entrada obligatorios.
Para pasar al control desde un control en "entrada obligatoria", el usuario final tenía que completarlo, de lo contrario no podía salir.
En la versión 26, es posible salir de un control de entrada obligatoria y completarlo más tarde: la verificación de entrada será efectuada únicamente al validar la ventana o la página.
Se ha introducido una nueva opción en la ventana de controles de 7 pestañas: "Entrada obligatoria: Sin bloqueo".

Campo de entrada obligatoria no bloqueante: cómo funciona
Una nueva función WLanguage ahora está disponible: InvalidInputDetect.
Basta con llamar a la función InvalidInputDetect en el código de validación de la ventana.
Esta función devuelve True o False .
Cuando la función devuelve False, significa que hay al menos un campo obligatorio vacío. La ventana vuelve al modo de entrada y el cursor se sitúa en el primer campo obligatorio vacío.
Los campos obligatorios que se dejan vacíos se resaltan con un estilo específico.
Identificación automática del control de entrada obligatoria
Los campos de entrada obligatoria ahora se pueden materializar con mayor precisión. El estilo de un control determina cómo se indicará la entrada obligatoria: asterisco, borde rojo, icono...
Se puede utilizar una indicación adicional para identificar los campos que se han dejado vacíos, después de intentar validar la ventana o página.

Campo de entrada obligatorio: Nuevo, cuadro combinado, botón de radio, casilla de verificación
En la versión 26, además de los controles campo de entrada, puede configurar los siguientes controles como "campos obligatorios":
  • Combo Box, editable Combo Box
  • Botón de opción
  • Casilla de verificación.
Para estos controles también, el estilo incluye todos los elementos gráficos necesarios.
Máscara de entrada no válida
La verificación de entrada de los controles con una máscara de entrada también evolucionan sobre el mismo principio.
El estilo del control ahora incluye los elementos necesarios para resaltar una entrada incorrecta: icono, texto, bordes...
La verificación automática se puede realizar inmediatamente o al validar la ventana.
No es necesario duplicar los proyectos: un único entorno
Como lo sabe, es posible usar WINDEV, WEBDEV y WINDEV Mobile en el mismo entorno.
Los elementos de los proyectos se comparten inmediatamente entre las 3 plataformas: análisis, consultas, reportes, procedimientos, clases, código,... Las ventanas, las páginas y las ventanas móviles están en el mismo proyecto.
Estos elementos se abren directamente en el entorno de WINDEV .
Esto permite la portabilidad y un fácil mantenimiento de una aplicación WINDEV a móvil y a web, sin tener que importar o duplicar elementos del proyecto.
Recordatorio: necesita una licencia de los productos de software correspondientes.
Resaltado de sintaxis fuera de una configuración
En la versión 26, todo los códigos abiertos ofrecen ahora el resaltado de sintaxis, incluso los códigos que no están incluidos en una configuración.
Operación de 32 bits y 64 bits
La integración de WINDEV Mobile y WEBDEV en WINDEV siempre ha funcionado en modo 64 bits.
En la versión 26, la operación también está disponible en 32 bits.
Por ejemplo esto permite usar recursos externos (ActiveX, DLL, Native Connector, etc.) que funcionan solo en 32 bits.
Su existente WINDEV puede convertirse en un sitio web o en una aplicación SaaS
Una necesidad generalizada es transformar una aplicación de Windows (o partes de aplicaciones) en un sitio web dinámico o en una aplicación SaaS.
WINDEV y WEBDEV responden perfectamente a esta necesidad.
En la versión 26, el aspecto del administrador de SaaS se ha modernizado.
Nombrado hojas de estilo 
En la versión 26, puede crear y nombrar libremente sus hojas de estilo.


Varias hojas de estilo por proyecto
En la versión 26, un proyecto puede usar varias hojas de estilo simultáneamente.
Al seleccionar el estilo, es posible filtrar las hojas de estilo que se mostrarán por defecto.
Comparta fácilmente hojas de estilo 
Gracias a estas nuevas funcionalidades, es mucho más fácil administrar y reutilizar sus estilos sin restricciones.
Una hoja de estilo se puede copiar simplemente en el directorio del proyecto como cualquier otro elemento.
Las hojas de estilo también se pueden administrar y compartir a través del SCM.
¡A todas les encantarán estas operaciones simplificadas!
Generar clases a partir del análisis (objeto-relacional mapping)
Novedad práctica, es posible generar la clase de un archivo de datos (tabla) directamente desde el editor de análisis.
No es necesario volver al explorador de proyectos.
Generación de estructura
Ya era posible generar una clase a partir de una descripción de un archivo de datos (tabla) .
En la versión 26, para los que lo desean, ahora es posible generar una estructura en lugar de una clase.
Entorno más eficiente: Varias ventanas
¿2 ventanas de código abiertas una al lado de la otra, etc.?
¿1 ventana y su código al lado? Seleccione una control, pulse F2 y el código cambia en la ventana de al lado.
¿Una ventana de WINDEV y la página WEBDEV equivalente?
En la versión 26, estos modos de uso son automáticos.
Ya no es necesario mover y cambiar el tamaño de las ventanas manualmente: ¡Eso lo cambia todo!
Cada ventana tiene su propia barra de documentos.
Puedes abrir más de 2 ventanas simultáneamente y utilizar un divisor para cambiar el tamaño de cada una de ellas.
El espacio de trabajo ahora se reorganiza automáticamente.
El espacio de trabajo se puede dividir en varias ventanas horizontales o verticales.
En cada ventana, puede abrir tantos documentos como desee, desde cualquier editor.
Puede arrastrar y soltar una Document de una ventana a otra.
El mismo documento se puede abrir varias veces en diferentes ventanas, para verlo simultáneamente:
  • las diferentes capas de una ventana o página
  • los diferentes rangos de las páginas responsive
  • los diferentes layouts: vertical, horizontal, iOS, Android, tableta, smartphone, etc.
  • una ventana de WINDEV y la página WEBDEV equivalente.
Navegar por la barra de Document con la rueda del ratón
En la versión 26, puede navegar por la barra de documentos usando la rueda del ratón: es muy práctico.
TIempo de compilación 3 veces más rápido
Abróchese el cinturón ... ¡En la mayoría de los casos, sus proyectos se compilarán 3 veces más rápido!
Esto hace que el trabajo sea mucho más fácil.
Abrir ventanas de 7 pestañas aún más rápido
¡Pasamos mucho tiempo en las 7 pestañas!
¡Se ha aumentado la velocidad de apertura de las ventanas para mejorar la comodidad diaria de los desarrolladores!
Navegación entre elementos: ¡CTRL+Tab más rápido!
La combinación de teclas CTRL+TAB permite cambiar rápidamente de un elemento abierto a otro.
En la versión 26, esta operación ya no tiene latencia:
53 minutos ahorrados al año!
Reducción de operaciones: quitar las pestañas de la cinta de opciones
En la versión 26, es posible separar una pestaña de la cinta de opciones para que sea accesible permanentemente.
Esto evita manipulaciones de pestañas.
Por ejemplo, cuando se trabaja en la UI, la pestaña de alineación se puede dejar abierta permanentemente.
Es posible separar varias pestañas.
Explorador de proyectos actualizado
En la versión 26, el explorador de proyectos se ha hecho más ligero y fácil de usar.
Los elementos de diferentes tipos están claramente separados.
¿Derecha/izquierda? Explorador de proyectos a la izquierda
Parece que el cursor del ratón se coloca con mayor frecuencia en el lado izquierdo de la pantalla.
Para limitar los movimientos del ratón, el explorador ahora se coloca a la izquierda por defecto. Y si lo prefiere, ¡puede devolverlo a la derecha en 1 sola operación!
Editor de enlaces (ventana, página, reporte)
En la versión 26, un editor de relaciones está disponible.
Este editor lista todos los controles de la ventana, página o reporte e indica la existencia (o no) de un binding y así como a qué fuente está relacionado.
El editor también permite modificar el binding de un control o un grupo de controles: reemplazar un archivo de datos con una solicitud, por ejemplo.
Puede iniciar una búsqueda para todos los usos de un control en el código de la ventana/página/reporte.
Buscar en una selección de controles
Como sabe, la búsqueda en el entorno WINDEV es poderosa. Es posible buscar en el código, en las 7 pestañas, en los mensajes multilingües...
En la versión 26, es posible reducir la búsqueda a un conjunto de controles seleccionados con el ratón.
Copiando/pegando un control relacionado por programación se renombran las referencias a este control en el código
Tomemos el ejemplo de un control Campo de entrada seguido de un botón "Examinar". El código del botón "Examinar" abre un selector de archivos y asigna el archivo seleccionado por el usuario al control Campo de entrada. Por lo tanto, el nombre del control Campo de entrada está en el código del botón "Examinar".
Cuando el control Campo de entrada y su botón se copian y pegan en la misma ventana, los nuevos controles se renombrarán automáticamente.
Sin este método, el código de estos control s sería erróneo, ya que utilizaría los antiguos nombres de control.
En la versión 26, copiar/pegar modifica automáticamente el nombre de los controles usados en la programación.
Reabrir un elemento cerrado por accidente: Ctrl+Mayús+T
Durante la fase de desarrollo, los elementos abiertos a menudo se cierran por error: una ventana, un procedimiento, una clase...
Encontrarlo para volver a abrirlo puede ser realmente molesto.
En la versión 26, basta con pulsar Ctrl + Shift + T para reabrir el último elemento cerrado (como en un navegador).
Si pulsas dos veces Ctrl + Shift + T, abrirás los 2 últimos elementos cerrados, etc. (Hasta 10 elementos).
Clipart: 10.000 nuevos iconos
Las imágenes incluidas se han mejorado con 10,000 nuevos iconos en estilos modernos, de contorno y en blanco y negro.
¡Eche un vistazo para enriquecer las UI de sus aplicaciones y sitios!
Nuevo aspecto de los iconos de la cinta
La cinta de opciones ahora usa iconos vectoriales, que son aún más nítidos.
Varios
  • Todos los eventos del proyecto, incluso los de otras configuraciones, son Visible.
  • Una nueva opción le permite listar carpetas personalizadas de un proyecto, si contiene más de 20.
  • Ahora es posible incluir o excluir un elemento de un conjunto de configuraciones en una sola manipulación.
  • El contenido de las carpetas cambia según el entorno que las utiliza.
Categorización de tickets de error
Ahora puede clasificar y ordenar fácilmente los tickets de error.
También es posible etiquetar estos tickets de error.
Use tantos tickets como quiera.
Ejemplos de etiquetas:
  • para desarrollar
  • urgente
  • sugerencia
  • módulo de contabilidad
  • ...
Creación de reqUI rements: UI mejorado
El número de clics para crear un requerimiento se ha dividido por 3.
La UI se ha simplificado.
Lista de tareas: resaltar las tareas en las que usted es el administrador del requerimiento
Cada desarrollador ve su lista de tareas.
El desarrollador filtra esta lista según diferentes criterios: sprint, carpeta,...
Cuando el desarrollador también es el administrador de un requerimiento, se resaltan las tareas que pertenecen a ese requerimiento.
Esto permite a los desarrolladores priorizar mejor sus tareas.
Advertencia al usar una sintaxis antigua para hilos
Todavía son soportadas las sintaxis antiguas para gestionar hilos.
Estas antiguas sintaxis no permiten cerrar las ventanas y páginas en ciertos casos.
La auditoría identifica estas sintaxis antiguas y propone reemplazarlas con la sintaxis moderna, que es más enriquecida y segura.
Prefijos control: error de compilación UI
Los controles que no usan un prefijo definido en el estilo del código aparecen en los errores de la UI.
Esta funcionalidad no está activada por defecto.
Detección de dependencias faltantes
La auditoría ahora informa las dependencias faltantes.
Estos son algunos de los tipos de dependencias que se pueden detectar: hojas de estilo, bibliotecas externas, archivos de documentación, hojas CSS externas, códigos JS externos, archivo de favoritos, archivos de componentes internos y externos, estilo de código, fuentes personalizadas en el proyecto, etc...
HashString cambia según la plataforma (móvil, Linux)
Las cadenas Android y manipular UNICODE de iOS son diferentes.
Android almacena un carácter de 4 bytes (como Linux), mientras que iOS almacena un carácter de 2 bytes (como Windows).
La función HashString de WLanguage (que manipula los bytes) dará resultados diferentes según la plataforma.
La auditoría dinámica le informa de esto.
Presentación ligera
La Documentación Técnica y Funcional (documentación de programación de sus aplicaciones) ahora propone excluir los títulos de las propiedades sin contenido.
Solo las propiedades que realmente se han utilizado aparecen en la documentación.
Esto permite páginas más claras.
Nueva acción: implementación del sitio (y webservice)
Los planes de acción ahora pueden incluir la implementación de un sitio o un servicio web.
¡Una nueva funcionalidad muy esperada y práctica relacionada con la automatización de tareas de administración!.
Desactivación temporal de una acción
Ahora puede deshabilitar una acción para dejar de ejecutarla, sin perder su configuración.
Nueva acción: Desactivar los errores estándar de programación
La Fábrica de Software ahora diferencia los errores estándar de programación (zombies, etc.) de otros errores de compilación.
Ahora es posible deshabilitar específicamente estos errores para ejecutar planes de acción.
Administrador: mejor y más rápido UI
El administrador de la Fábrica de Software se vuelve significativamente más rápido: es mucho más fácil de usar.
Conexión con verificación de dos pasos: automatic
En la versión 26, WINDEV, WEBDEV y WINDEV Mobile permiten configurar un inicio de sesión por verificación de dos pasos.
El Groupware Usuario (GPU, incluido en estándar) ahora admite la verificación en dos pasos a través de una aplicación estándar (Google Authenticator, Microsoft Authenticator u otro).
Esta aplicación, para ser descargada en un teléfono móvil, devuelve un código personal bajo demanda (válido por 30 segundos) que debe ingresarse al iniciar sesión (protocolo TOTP).
El administrador del GPU puede hacer que la verificación en dos pasos sea obligatoria.
El administrador del GPU también puede desactivar temporalmente la verificación en dos pasos para un usuario (si el usuario pierde su teléfono, por ejemplo).
La opción "Confiar en este dispositivo" está disponible. Después de usar la verificación en dos pasos por primera vez, esta opción permite al usuario volver al modo simple de conexión para facilitar las conexiones desde ese dispositivo específico.
La opción "Confiar en este dispositivo" se gestiona automáticamente.
Para obtener más información, consulte Integre la autenticación de dos factores en sus aplicaciones.
Gestión unificada de usuarios (MBAAS)
Históricamente, el Groupware Usuario (GPU) de WINDEV permite el acceso directo a la Base de Datos del Groupware Usuario. Este modo funcionará como de costumbre.
En la versión 26, el método de acceso por tecnología MBAAS (mediante Webservice) al GPU puede ser utilizado por sus aplicaciones WINDEV, sus sitios WEBDEV y sus aplicaciones WINDEV Mobile.
En MBAAS, el acceso a los datos se realiza a través de un Webservice. Este acceso no requiere abrir ningún puerto en particular.
La administración del Groupware Usuario se puede llevar a cabo a través de un sitio web.
Si lo permite, los usuarios finales incluso conectarse en este sitio para administrar sus propios perfiles: cambiar su contraseña....
PAnel "git" en la cinta de opciones del editor
Para facilitar las acciones relacionadas con Git, ahora está disponible una cinta de opciones con los comandos Git más comunes:
  • commit
  • tirar de
  • empuje
  • merge
  • ...

Proyecto (WDP) en formato de texto
La lista de los elementos de un proyecto ahora se almacena en formato de texto para facilitar los "merge" de proyectos en Git.
Recorte rectangular
El editor de imágenes ofrece una práctica funcionalidad de captura de pantalla parcial. Ahora es posible tomar una captura de pantalla en el PC, seleccionando el área rectangular que desea recortar.
Esta área se puede editar directamente en el editor de imágenes.
WDTRAD: Carga de documentos más rápida
Los documentos se cargan mucho más rápido en WDTRAD.
No más pausas para el café al cargar documentos grandes. ¡Perdón!
WDTRAD: multiselección
Ahora puede realizar determinadas operaciones en bloque seleccionando varios elementos. Por ejemplo, si se cambia un término, puede eliminar una serie de entradas obsoletas en el diccionario de una sola vez.
También evoluciona la búsqueda.
WDINT español
En la versión 26, es posible seleccionar el Español como idioma de origen para traducir el framework.
SCM: vista de árbol de componentes internos
En la versión 26, la ventana de actualización muestra los componentes internos en una estructura de árbol.
SCM: Mejora de la historia de la rama UI
El historial de los elementos de una rama se puede ver desde la propia rama, sin tener que volver al tronco.
SCM: activación automática del plan de acción de reintegración (CI/CD)
Cuando uno o más elementos se reintegran, uno o varios planes de acción se pueden iniciar automáticamente.
Por ejemplo:
  • activar pruebas automáticas
  • actualizar los proyectos que comparten estos elementos
  • generar ejecutables
  • ejecutar configuraciones
  • ...
Esta nueva funcionalidad permite la gestión fácil de metodologías de Integración Continua y la Entrega Continua.
Migas de pan
Los desarrolladores a menudo profundizan en su código: usar F2 varias veces en una fila es bastante común!
En la versión 26, ahora están disponibles Migas de pan en el editor de código.
Estas migas de pan permiten ver la estructura del código e ir directamente al nivel deseado.

Coloración clara: 3 colores en lugar de 36 tonos
El editor de código ofrece una configuración muy fina del resaltado de sintaxis.
Para los desarrolladores que prefieren una visualización más clara de su código, se ha agregado un nuevo modo de resaltado más simple.
Muchos tonos de color ya no se usan.
El código es más fácil de leer.
Moverse con las teclas CTRL + Flecha
Moverse con Ctrl + Flecha ahora es más intuitivo:
  • CTRL + FLECHA DERECHA: comienzo de la siguiente palabra
  • CTRL + FLECHA IZQUIERDA: comienzo de la palabra anterior
  • CTRL + MAYÚS + FLECHA DERECHA: extender la selección hasta el final de la siguiente palabra
  • CTRL + MAYÚS + FLECHA IZQUIERDA: extender la selección hasta el final de la palabra anterior.
Depurador: visualización en tiempo real de variables
En la versión 26, el depurador muestra sistemáticamente el valor de las variables al final de la línea.
¡Puede evitar cientos de operaciones todos los días!
Depurador remoto: selección de un EXE o un servicio iniciado varias veces
Al realizar la depuración remota (con WDDebug, incluido en estándar), el depurador debe estar asociado al proceso.
Cuando el mismo EXE o servicio se inicia varias veces en la máquina remota, la lista de selección ahora muestra los detalles de la línea de comando (a menudo única por proceso) para cada instancia, lo que hace posible identificar cada proceso.
Un entorno integrado de desarrollo
WINDEV, WEBDEV y WINDEV Mobile versión 26 forman un entorno DevOps cada vez más integrado.
Se beneficia de todas las funcionalidades necesarias para la implementación de la metodología DevOps: no más herramientas dispersas y apenas compatibles.
Usted dispone de todas las herramientas integradas para administrar la metodología DevOps: gestión del ciclo de vida, pruebas, integración continua, implementación, entrega continua, producción, retroalimentación de los usuarios,...
La versión 26 incluye algunas funcionalidades nuevas interesantes para Docker, en el robot (Watchdog), ...
Editor de reportes: informes mejorados de diagramas de Gantt
Los informes de diagramas de Gantt se han revisado y mejorado: las etiquetas de las tareas y los destinatarios se incluyen en la primera columna de cada tarea, se muestra el número de días de cada tarea,...
Mejor diseño y legibilidad.
¡Sus informes de diagrama de Gantt se verán increíbles!
Editor de Reporte: Nuevo control Barra de progreso
En los reportes, las barras de progreso se utilizan a menudo para representar datos, en lugar de gráficos de barras, por ejemplo.
En la versión 26, el editor de reportes admite los controles de tipo "Barra de progreso": barras de progreso lineales y circulares.
Glocales: Variables globales, pero sólo en su control
Las variables glocales son variables globales, pero con un alcance limitado al control en el que se definen: ¡Ambas son globales y locales!
¿Loco?
¡No!
Cuando un control se copia a otra ventana, ya no hay riesgo de olvidar estas variables, ¡ya que están en el control!
Una variable Glocal está encapsulada en su control.
Esta variable es accesible desde todos los eventos del control: ya no es necesario definir esta variable global en la ventana.
El código se vuelve generalmente más claro.

Glocales: Procedimientos y propiedades
También puede definir procedimientos y propiedades que son locales para el control.
Así, todo queda encapsulado en el control.
Glocales: funciones y propiedades del lenguaje override WLanguage
Debe saber que al nombrar uno de sus procedimientos o una de sus propiedades con el mismo nombre que una función WLanguage, se llamará a su procedimiento o propiedad en lugar de a la función WLanguage.
Usted sobrescribe así las funciones y propiedades de WLanguage: puede agregar una prueba en la función, por ejemplo.
Por ejemplo: Puede ser útil override la función TableAdd para formatear los datos antes de añadirlos a la tabla (por ejemplo, convertir una fecha de nacimiento en edad).
Glocales: Derive los controles nativos
Al utilizar las 3 nuevas funcionalidades anteriores de la versión 26, resulta muy fácil derivar los controles nativos de WINDEV, WEBDEV y WINDEV Mobile.
Actual control: Este
La palabra clave This se utiliza para acceder a la control actual.
Esto facilita la escritura de código genérico.
Callback: Detectar prototipos erróneos en tiempo de compilación
En la versión 26, las llamadas de función pueden tomar una Callback como parámetro.
Esta Callback espera una cierta cantidad de parámetros, de cierto tipo.
Si hay un error en estos parámetros, se genera un error de compilación.
Gmail, office 365: Inicio de sesión con autenticación de dos factores (imap, SMTP)
Cada vez más servidores de correo electrónico utilizan la verificación en dos pasos: Gmail, por ejemplo.
En la versión 26, las funciones de Email utilizadas para acceder a los servidores IMAP y SMTP admiten esta norma de autenticación.
Al abrir la conexión al servidor, por razones de seguridad, el usuario deberá ingresar su código de verificación en dos pasos .
Implantar la autenticación de dos factores (directiva europea PDS2)
Recordatorio: una funcionalidad estándar en el User Groupware le permite implementar automáticamente la autenticación de dos factores en sus aplicaciones.
Sin embargo, si usted mismo desea administrar la verificación en dos pasos en sus aplicaciones o sitios, puede usar las siguientes 3 nuevas funciones WLanguage:
TwoFactorAuthenticationGenerateTOTPKey genera la clave secreta que se pasa a la aplicación de autenticación de terceros en el dispositivo, TwoFactorAuthenticationGenerateLink genera el código QR que será escaneado por la aplicación de autenticación, TwoFactorAuthenticationCheckCode comprueba el código .
Para obtener más información, consulte Integre la autenticación de dos factores en sus aplicaciones.
Matrices, operaciones set: Unión, intersección
En la versión 26, WLanguage ofrece funciones de conjunto en variables de tipo array:
Expresiones regulares en Unicode
En la versión 26, las funciones de WLanguage para manejar expresiones regulares también funcionan en UNICODE: Chino, Japonés, Ruso, Árabe, Hebreo....
Sustituir: Sustitución de array
La función Replace WLanguage es ahora más potente.
Un conjunto de caracteres a reemplazar puede estar contenido en un array.
Un segundo array incluirá los caracteres de reemplazo.
Esto evita hacer llamadas sucesivas, pasando por la cadena varias veces.
Escribir al principio de los archivos de texto: fInsertTextAtBeginning
¿Quiere escribir información en un archivo LOG con la información más reciente al principio?
¡La nueva fInsertTextAtBeginning WLanguage es exactamente lo que necesita!
En lugar de agregar datos al final del archivo, esta función los agrega al principio.
SVG vector Image: modificar la Image programando
En la versión 26 es posible modificar el contenido de una imagen en formato SVG por programación.
Por ejemplo, reemplazar un color, agregar o quitar objetos, agregar o modificar texto,...

oTokens de autenticación con tiempo de caducidad: ¡Manténgalos vivos!
Un token de oAuth puede tener un tiempo de vencimiento establecido por su autor: unos minutos, por ejemplo.
Una vez que el token caduca, ya no se puede usar. Si la aplicación aún necesita ese token, deberá solicitar una nueva autenticación.
Para evitar esto, puede ser conveniente mantener el token activo más allá de su tiempo de vencimiento.
Esto es posible ahora con la función AuthRefreshToken WLanguage.
Nueva función:DateTimeToString
DateTimeToString se utiliza para convertir directamente una DateTime en cadena.
Función de rastreo: mayor velocidad
Cuando se muestra la ventana de seguimiento integrada en el editor, la función rastro es 3 veces más rápida.
ExceptionChangeParameter con alcance global
La función ExceptionChangeParameter ahora puede ser global para el proyecto.
Funciones de compresión Zip: 2 nuevas funciones
Recordatorio: Las funciones Zip funcionan con todos los métodos de compresión, ¡no solo con Zip!
Se han añadido dos nuevas funciones a la familia Zip:
  • zipExtractDirectory: extraer únicamente el contenido de un directorio determinado.
  • zipFilter: devuelve la lista de extensiones soportadas por la versión utilizada: zip, 7z, rar, cab, wdz, tar, tgz en la versión 26. useful en combinación con fSelect.
Funciones zip: El usuario puede Cancel durante la extracción
Para que el usuario final pueda cancelar una extracción Process, la función zipExtractAll acepta ahora un Callback.
Al devolver False en esta devolución de llamada, el Process detiene la extracción.
Zip y GitHub: Soporte para archivos tar.gz (TGZ) de GitHub
Los archivos comprimidos devueltos por el comando Git Archive tienen un formato especial: Tar.gz.
Este formato específico es soportado en la versión 26.
Nuevo tipo polígono
El nuevo tipo Polygon se introdujo en WLaguage. Este tipo es útil, por ejemplo, para dibujar líneas en mapas, imágenes y gráficos, y para definir áreas de texto con la ayuda del OCR nativo.
Escribir un libro entero con 1 Line de código WLanguage
La nueva función GenerateLorem permite generar un texto "Lorem ipsum" de una extensión determinada.
Este tipo de texto se usa universalmente en DTP para materializar rápidamente un texto con contenido variable.
Este texto es aleatorio, pronunciable, pero no tiene sentido...
Tipo de Thread: Valor de retorno almacenado
Cuando se utilizan varios hilos al mismo tiempo, se requieren algunas habilidades serias para memorizar los valores de retorno de los diferentes hilos.
En la versión 26, las variables Thread memorizan automáticamente el valor que se devolverá en el procedimiento de el hilo.
Para ver este valor, basta con leer esta Variable. Eso requiere algunas habilidades no tan serias!
Hilos seguros
No se recomienda acceder a un control desde un hilo.
¿Por qué? Si un hilo elimina una fila de un control Tabla usando su índice, y el usuario agrega una fila a la tabla al mismo tiempo, el hilo podría eliminar la fila incorrecta...
El nuevo atributo <secure> se ha introducido para evitar este tipo de comportamiento imprevisible.
El procedimiento del hilo que accedería a un control (o que llamaría a otro procedimiento que accede a un control) con este atributo, genera un error de advertencia de WLanguage.
Comparación de Buffer
La versión 26 permite la comparación inmediata de partes de buffers.
Hay 2 sintaxis disponibles. He aquí algunos ejemplos:
buf is Buffer = [0xEF,0xBB,0xBF,0xCF,0x2F]
 
IF buf = [0xEF,0xBB,0xBF,0xCF,0xDD] THEN
IF buf[3 ON 5] = [0xBF,0xCF,0x2F] THEN
Generación de archivos PDF: tamaño Image
Al generar un archivo PDF por programación, el tamaño de las imágenes incluidas en el archivo se adapta a la vista y tamaño de impresión.
Las imágenes inicialmente grandes se reducirán, por lo que se reducirá el tamaño del archivo PDF.
Aún puede mantener la imagen en su tamaño original o especificar su definición exacta.
Buscar un conjunto de caracteres en una cadena
La función ubicación se utiliza para determinar la posición del primer carácter de un conjunto de caracteres en un array.
Esta función ahora devuelve 2 valores (tuple): posición en la cadena e índice de caracteres en el array.
Servicio web SOAP: llamada asíncrona
La llamada de Webservices SOAP en modo asíncrono ahora es gestionado automáticamente.
La aplicación ya no se bloquea durante la llamada, especialmente cuando el servidor de Webservice no responde
REST Webservice: Petición asíncrona
En la versión 26, también puede realizar solicitudes HTTP y HTTPS de manera asíncrona.
httpRequest: Datos y cabeceras recibidos de get
En la versión 26, puede ver y analizar los detalles de los datos y las cabeceras recibidas con la función httpRequest .
Esto facilita la realización de operaciones de depuración avanzadas.
El Callback en la variable httpRequest para la traza Process se llama con 2 nuevas constantes: httpTraceHeaderReceived y httpTraceDataReceived .
httpRequest: Soporte HTTP2
El estándar HTTP2 permite una navegación más rápida y segura.
Este estándar es soportado en la versión 26.
Para obtener más información, consulte httpRequest.
XML
Resaltado XML en las cadenas multilínea
En el editor de código, una cadena multilínea puede contener código XML.
En la versión 26, es posible solicitar el resaltado de sintaxis a este código (botón derecho).
Tenga en cuenta que esta posibilidad ya estaba disponible para SQL, HTML y WLanguage.


sXMLCode is string = [
   <Synthesis>
       <Action_Total>
           <Week UniqueValue="245321"/>
           <Month UniqueValue="867234"/>
           <Day UniqueValue="35627"/>
       </Action_Total>
       <Active_User>
           <Week UniqueValue="2453"/>
           <Month UniqueValue="2387"/>
           <Day Values="[1705,2121,2001,2083]"/>
       </Active_User>
   </Synthesis>
]
POO
Callback: Pasar un método como parámetro
Una función puede tomar una Callback como parámetro.
En la versión 26, puede pasar un método de un objeto para este parámetro de tipo Callback.
Se utilizará la instancia del objeto cuyo método se pasa como parámetro.
Operador de igualdad
El operador de igualdad se introduce en POO.
Este operador permite un código como "IF objeto1=objeto2 ..."
También permite buscar en una array de objetos (ArraySeek).
Operador de comparación
Los operadores de comparación < y > se introducen en la POO.
Estos operadores permiten ordenar fácilmente los objetos (ArraySort).
IOT
IOT: soporte de Modbus
Modbus es un protocolo de comunicación utilizado en dispositivos electrónicos, principalmente en el mundo industrial. Es un protocolo libre.
Con la introducción de las nuevas funciones de Modbus WLanguage, la versión 26 soporta este protocolo.
Estas funciones permiten a los esclavos leer y escribir: robots, sensores, soportes de visualización, máquinas...
Los protocolos TCP y RTU son soportados.
IOT: Recogida de datos por un servidor WEBDEV
Algunos sensores envían datos a través del protocolo httpRequest .
Para recuperar estos datos, se requiere un servidor Web.
El servidor de aplicaciones WEBDEV facilita la recopilación, el almacenamiento y el uso de los datos recibidos
La versión 26 incluye un ejemplo documentado sobre la recolección y el procesamiento de datos.
Recordatorio: los datos se pueden alojar a través de PcsCloud.net, por su propia solución o cualquier otro proveedor de alojamiento.
Ejecución asíncrona de la consulta HFSQL: La aplicación no se bloquea esperando el final de la consulta
ASYNCHRONOUS

En la versión 26, puede ejecutar consultas HFSQL de forma asíncrona.
La aplicación es, por tanto, "no bloqueante". El usuario final puede seguir utilizando la aplicación mientras se ejecuta la consulta en el servidor.
Basta con utilizar la nueva sintaxis de la función HExecuteQuery WLanguage para pasar el nombre de la devolución de llamada como parámetro.
La Callback se llamará a medida que se reciban los registros.
El número de registros que se pasan a la Callback se optimiza de acuerdo con muchos parámetros: velocidad de la red, tamaño de las tramas, tamaño del registro, carga del servidor...
GDPR: Determine si un elemento es relevante para el GDPR
En el editor de modelos de datos, puede indicar que el RGPD se aplica a un elemento específico.
En la versión 26, esta información se puede recuperar mediante programación utilizando el PIBR Property en el elemento.
Esto permite un procesamiento preciso de datos confidenciales.
Búsqueda de optimización en una consulta específica
¿Necesita optimizar la velocidad de una determinada consulta o set de consultas?
¿Necesita verificar si se ha optimizado una consulta determinada?
En la versión 26, es posible ejecutar la funcionalidad de búsqueda de optimización (verificar la presencia de las claves necesarias) en una consulta específica o un conjunto de consultas.
Si se especifica un conjunto de consultas, las claves creadas se optimizarán para todo el conjunto.
Para optimizar la velocidad, basta con utilizar la función HSuggestKey WLanguage en el centro de producción con los datos reales. Esta función devuelve un informe de estado del mismo tipo que el devuelto por el motor HFSQL.
Iniciar la búsqueda de optimización: On/Off
También puede iniciar la optimización de las consultas que se ejecutan desde un momento dado ( HSuggestKeyStart ) a otro ( HSuggestKeyEnd ).
Esto puede ser útil para optimizar las diferentes consultas ejecutadas durante un proceso en particular.
Activación: Acceder al valor de los elementos antes de su modificación
Puede ser necesario conocer el valor de los elementos del registro modificado antes de modificarlo o eliminarlo.
Esto es posible ahora con la función HTriggerRecordBefore.
Limpieza automática del directorio de trabajo "internal"
El motor HFSQL usa un directorio de trabajo llamado INTERNAL.
En la versión 26, este directorio se vacía regularmente, por lo que ya no tendrá que hacerlo.
Determinar si una transacción está en curso
En la versión 26, se puede determinar si una transacción está en curso con la función HTransactionInProgress WLanguage.
Editor de replicación universal asistida: UI simplificada
En la versión 26, la replicación asistida universal se beneficia de una ayuda más clara e intuitiva:
  • Plan de adición de archivos
  • Explicación de las diferentes opciones
  • Adición de conexiones desde el editor de replicación
  • ...
Gancho web de reserva: description
Un Webhook permite activar la ejecución de un proceso al final de la copia de seguridad.
Si se produce un error, se devuelve la description del error además del número de error.
Varios
La función HErrorInfo admite la constante hErrCode.
3 nuevas funciones SQL
En la versión 26 se introducen 3 nuevas funciones SQL. La cláusula SQL INTERSECT devuelve los registros encontrados en las 2 consultas especificadas (Intersección).
Estas funciones son:
  • INTERSECT: Devuelve los registros encontrados en las 2 consultas especificadas (intersección).
  • AÑO: Para ser compatible con el código SQL de MySQL.
  • MES: Para ser compatible con el código SQL de MySQL.
Para obtener más información, consulte Operaciones SQL set: UNION, UNION ALL e INTERSECT.
automatic creación de parámetros de consulta INSERT
Las consultas INSERT toman como parámetro los valores de los elementos de la Record a añadir.
Sin embargo, hay que crear un parámetro para cada uno de estos valores
En la versión 26, el editor de consultas genera un parámetro por defecto para cada valor.
Edición de código SQL
Un identificador (nombre de elemento, parámetro, etc.) seleccionado en el editor de consultas se resalta siempre que se utilice en el editor de código.
Gestión de contraseñas para archivos de datos abiertos indirectamente
HFSQL Spare es una copia de seguridad de un servidor casi en tiempo real.
HFSQL Spare ahora permite verificar las reglas de integridad de los archivos vinculados que tienen cifrado seguro.
HFSQLDrive: Nuevo portal
El portal HFSQLDrive ofrece una experiencia de usuario mejorada:
  • Configuración y creación simplificada de una base de datos HFSQLDrive
  • Configuración simplificada y creación de un equipo SCMDrive
  • Ergonomía general mejorada.
Aspectos prácticos
HFSQL control Center se beneficia de muchas mejoras prácticas.
  • Estos elementos (columnas) se pueden mostrar en orden alfabético o lógico.
  • Tras la reconexión, el Centro de Control HFSQL establece automáticamente la posición en la última tabla editada y vuelve a abrir las pestañas abiertas anteriormente.
  • Ahora es posible buscar en la lista de réplicas del servidor.
  • Se identifican los elementos del GDPR.
  • El log se puede limpiar desde el Centro de Control.
Conector nativo de MS SQL Server para Linux: useful para Docker
El Conector Nativo de MS SQL Server (disponible por separado) ahora también está disponible para Linux.
Permite una conexión nativa a MS SQL Server.
También se puede utilizar para implementar un sitio o un Webservice que acceda a una base de datos de MS SQL Server Linux a través de Docker.
AS/400: Gestión de estructuras anidadas definidas en archivos PCML
Entre las numerosas novedades del Native AS/400 Connector (disponible por separado) destaca una característica: Llamadas a programas de IBM que toman como parámetros estructuras anidadas y estructuras array.
Descubra todas las novedades del Conector Nativo AS/400 en WINDEV.COM.
Chorus Pro, para facturar al gobierno francés: Nuevas APIs
En Francia, la facturación electrónica se ha convertido en obligatoria para facturar servicios del estado.
El gobierno francés ha establecido el sistema Chorus Pro para enviar y monitorear facturas. Es la herramienta para administrar los gastos y los ingresos no tributarios de los servicios del estado francés.
Todas las empresas deben utilizar Chorus Pro para enviar sus facturas a los servicios gubernamentales franceses.
La versión 26 tiene en cuenta los últimos cambios en las API de Chorus Pro y facilita la automatización del envío de facturas Process.
Generar la clave como una secuencia de palabras
Las claves de la billetera privada deben mantenerse en secreto.
Esta clave privada se compone de 256 bits.
Para manipular más fácilmente, las funciones BufferToPhrase y PhraseToBuffer permiten ahora transformar estas claves numéricas en una secuencia de palabras.
Estas palabras se han extraído de diccionarios estándar (Bip39), que se proporcionan en Inglés, Español y Francés.
Hay la posibilidad de usar sus propios diccionarios.
Etiquetado de las versiones
Los datos recopilados a través de la telemetría se agrupan por número de versión de software.
Cuando se han implementado muchas versiones, puede ser difícil orientarse.
En la versión 26, puede adjuntar una etiqueta descriptiva a un número de versión.

Gestión de pantallas HD y 4K
En versiones anteriores de WINDEV, las pruebas automáticas debían ejecutarse en pantallas con la misma resolución que la utilizada para registrar dichas pruebas.
En la versión 26, las pruebas pueden ejecutarse en una pantalla con diferente resolución. Por ejemplo, una prueba grabada en una pantalla de 4K puede ejecutarse en una pantalla de 1920 x 1200.
Monitoreo de aplicaciones sin compartir red
En la versión 26, ya no es necesario establecer un recurso compartido de red entre la máquina que aloja el robot y las máquinas en las que se ejecutan las aplicaciones que se van a supervisar.
Esto simplifica la implementación del robot.
Frecuencia de las pruebas
Ahora es posible crear perfiles de frecuencia de las pruebas.
¡Ahora puede cambiar la frecuencia de 150 pruebas en una sola operación!
Perfil del usuario
El perfil de usuario se utiliza para especificar los medios de comunicación que el robot debe utilizar para transmitir el informe de las pruebas.
También permite seleccionar las pruebas que se mostrarán por defecto en la aplicación.
Administrador de la red: Seleccione los mensajes de alerta pertinentes
Los administradores de red ahora pueden seleccionar el tipo de mensajes que desean recibir. Esto asegura que recibirán solo mensajes relevantes.
Gestión de webhooks: ejecutar automáticamente una acción basada en los resultados de la prueba
Un Webhook puede ser associated con cada prueba.
Este Webhook se utiliza para iniciar cualquier Process cada vez que el estado de la prueba cambia.
Por ejemplo, si se detecta un error grave en un sitio operativo, se puede utilizar para mostrar automáticamente una página de "Mantenimiento en curso" en este sitio o para cambiar automáticamente a un servidor de respaldo.
Ejemplo disponible: Sitio web del estado del servicio
Se proporciona un ejemplo de un sitio web sobre el estado de servicios (similar a Staytus). Este ejemplo se puede asociar al robot, y mostrar el estado de los diferentes servicios que se gestionan en el robot de monitorización: mensajería, telefonía IP, sitio de ventas,...


MongoDB
Para las bases de datos MongoDB, las nuevas funciones de MongoGridFSSendFile WLanguage devuelven 2 valores (tupla): un booleano y un mongoGridFSFileInfo Variable que se utiliza para recuperar directamente el identificador del fichero añadido.
Versión mínima requerida
  • Versión 26
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario