PXTools 7 (For 17 & 18) Beta 2
Proxima liberación:
ERRORES CORREGIDOS
Conditions de Filtros de Selection estaban generando mal el código en el Export a Excel si se incluye ";" al final de la condición.
27/2/2024:
NUEVAS FUNCIONALIDADES
Nuevo método del UC PXToolsJavascripts: ClickElementEnsureUniqueInvocation.
En ocasiones necesitamos invocar a una ventana modal al entrar en una interfaz.
El problema es que si se ejecuta desde el Evento Refresh GeneXus en ocasiones realiza el llamado al javascript dos veces levantando así dos ventanas en lugar de una.
Este método permite invocar a una elemento del DOM que sea el que levante la ventana modal asegurándose que no se ejecute más de una vez.
ERRORES CORREGIDOS
Se cambió el orden de generación de los objetos del PXWSQuery para que no generen error de dependencias.
No se podían definir variables ni nodos Code en el PXWSData.
No se incluía en el objeto generado el código de los nodos Code en el PXWSQuery.
7/2/2024:
ERRORES CORREGIDOS
Se corrigió el valor por defecto de la propiedad Apply del nodo Code Delimiter de la preferencia del PXWorkWith para el valor "Before Save" por compatibilidad de versiones anteriores.
No se estaba considerando la propiedad "Label Theme Class" de Atributos o Variables en PXParameterRequest.
Algunas propiedades de Theme Classes tenían la primera letra en minúscula.
En nodos Label que tenían cargado las propiedades de Data no consideraba la propiedad "Attribute Theme Class" en PXParameterRequest.
17/1/2024:
NUEVAS FUNCIONALIDADES
Nueva propiedad "Allow Invert Selection Title Check Box" a nivel del Selection, Prompt y Section Type "Grid" para permitir deshabilitar la checkbox que se define a nivel del Titulo de las grillas estándares (sea generado por el generador Desktop o por el generador Responsivo.
También está soportada la propiedad a nivel de las preferencias del PXWorkWith en el nodo Grid de cada plataforma para poder realizar un cambio masivo de comportamiento.Se implementaron nuevas propiedades en el nodo CodeDelimiter en las preferencias del PXWorkWith:
Apply:
"After Clear Markers": Se aplicará el intento de borrado del código delimitado luego de haber depurado los marcadores de PXTools.
"Before Save": Se aplicará el intento de borrado del código delimitado antes de salvar la transacción. Este sería el valor por defecto por compatibilidad de versiones anteriores.
"On Fail": Solo se aplicará este borrado cuando falle el salvado de la transacción. Luego de este borrado se volverá aplicar el pattern sonbre la Transacción antes de intentar salvarla nuevamente.
Fail Error To Search: Se muestra esta propiedad si la propiedad "Apply" tiene el valor "On Fail" y se define para indicar un texto que se genere como parte del fallo del salvado. En caso de coincidir la existencia de este texto en el error se aplicará el borrado del código delimitado por el correspondiente Code Delimiter.
Se volvió el uso de TooltipText en las grillas de Selection, Prompts o Sections de tipo Grid a la funcionalidad de GeneXus.
Cuando se definen valores constantes a partir de esta versión se trasladará directamente a la propiedad de la variable o atributo.
Cuando se definen valores variables se definirá la carga a nivel del evento Load.
ERRORES CORREGIDOS
Se remueve el ";" (generado por GeneXus en forma automática) en las distintas condiciones de Conditions, Atributos y Variables al momento de generar el código del Export a Excel de PXWorkWith.
Las propiedades Genenerate Web, Generate Web Responsive y Generate SD solo se estaban tomando en cuenta en las acciones In Grid.
Quedaron contemplaras estas propiedades para todos los tipos de acciones.Nuevas clases: "Data Form Row Responsive Table" y "Data Form Row Tabular Table" no se estaban asociando correctamente en las tablas de Rows definidas en un PXParameterRequest.
La propiedad TooltipText en Variables o atributos de la instancia que se encuentren en secciones tabulares se comenzó a trasladar a control del panel generado. No quedó soportado el concepto de TooltipTextType con el valor "Variable" ya que dependiendo de la circunstancia puede necesitarse ejecutar en distintos eventos GeneXus.
7/12/2023:
ERRORES CORREGIDOS
Se remueve el ";" (generado por GeneXus en forma automática) en las distintas condiciones de Atributos, Variables y Acciones y Conditional Calls al momento de generar el código en los respectivos Eventos y Reglas del Panel de un PXParameterRequest y PXComposer.
Se realizan correcciones en los Eventos generados por un View con la funcionalidad de Dynamic Tabs que no estaba funcionando correctamente.
17/11/2023:
ERRORES CORREGIDOS
Cuando hay macros de [PXToolsWebDesktop] o [PXToolsWebResponsive] en Code Refresh o Load se trasladaba sin parsear el código generado para Export a Excel generando un error de sintaxis al salvar el procedimiento asociado.
Se tomó la decición que en la lógica del Procedimiento de Export a Excel ya no se tomarán en cuenta los códigos definidos bajo esas macros.
8/11/2023:
NUEVAS FUNCIONALIDADES
Se movieron algunas propiedades del nodo Action del PXWorkWith (relacionadas con Form y Theme Classes) a la zona inferior para ver más arriba propiedades de Conditions y Events.
Nueva propiedad "Allow Paging" en nodos Selection, Prompt o Section del PXWorkWith para concentrar la visualización de todo lo relacionado con la paginación en una sola propiedad.
Esto fue necesario porque a nivel del generador Responsivo el control de paginación concentra todos los subcontroles de paginación y por este motivo había que condicionar la visualización del mismo con una sola propiedad.
A nivel del generador Desktop si esta propiedad está deshabilitada entonces deshabilita todas las otras propiedades relacionadas con controles de paginación como ser (Botones de Paginación, Page Row Change, Page Jump, etc.)Nuevas propiedades a nivel del Nodo "Templates" en las preferencias del PXWorkWith:
Generate HasFilters Variable: Determina la generación de la variable &PXToolsHasFilters que principalmente podrá ser usada a nivel del Template pero también en cualquier nodo Code de la propia instancia para determinar si hay filtros.
Generate HasPaging Variable: Determina la generación de la variable &PXToolsHasPaging que principalmente podrá ser usada a nivel del Template pero también en cualquier nodo Code de la propia instancia para determinar si hay soporte de paginación.
En el nodo Section se ocultaron todas las propiedades relacionadas con la Grilla en caso de que la propiedad Type tenga el valor "Tabular".
Nuevas clases: "Data Form Row Responsive Table" y "Data Form Row Tabular Table"
Estas propiedades están disponibles para poderles asociar clases.
Se crearon principalmente para poder afectar el comportamiento de la nueva funcionalidad de Tabla Tabular asociado a la Row que en ocasiones necesita algún tipo de ajuste de posicionamiento de los campos desplegados en este nuevo tipo de tabla.
El valor de estas clases iniciará vacío con el objetivo de que a nivel del generador no afecte el Layout resultante de la generación.
De momento que se carguen esos valores será necesario reaplicar el pattern de todas las instancias relacionadas con el generador Responsivo.
ERRORES CORREGIDOS
En el nodo Level del PXComposer se presentaba incorrectamente el Template asociado a Web Desktop.
En el generador Responsivo cuando se usa la propiedad visible sobre controles que están dentro de una Row con TableType "Tabular" se maneja el la visibilidad asociado al control y no a la Celda.
6/7/2023:
ERRORES CORREGIDOS
En el nodo Controller del PXWorkWith no se consideraban correctamente las macros de plataforma. Siempre se consideraba que era el generador Web Desktop.
5/7/2023:
ERRORES CORREGIDOS
La generación de las acciones InGrid no respetaba las propiedades de "Generate Web" ni "Generate Web Responsive" ni "Generate SD".
Se corrigió fallo en Generador Smart Device cuando se define un atributo o variable en el nodo Filters dentro del Layout.
21/6/2023:
ERRORES CORREGIDOS
En el generador Web Resposive se corrigió la muestra del Label con Description Position en Top que no estaba funcionando en View, Sections ni Transacciones.
Se corrigió un caso de falla en la generación de pattern PXWorkWith cuando se tiene un Selection (o Section Type Grid) con Export a Excel habilitado o alguna acción multi-row (que requiera la generación de un SDT a nivel del pattern) y además se encuentren acciones invocando con Link en formato PXInstance.
Si en las preferencias del PXWorkWith en el nodo "Grid" se tiene la propiedad "Columns Sortable" en "False" y en una instancia del pattern se habilita el orden por columnas sea a nivel de la instancia a nivel de las preferencias y en la propiedad "Sortable" de una columna de la grilla está en "<default>" entonces, durante su generación, se fuerza el valor a "True" para que exista la opción de ordenar en las columnas que se habilitó el orden automático.
15/6/2023:
ERRORES CORREGIDOS
En el patrón Flow Controller se pasó a soportar la posibilidad de que desde una ventana modal se cierre con la cruz de arriba a la derecha de la ventana y el controlador detecte ese cierre y realice la continuación del flujo.
Se agregó en el About la muestra de la versión del pattern WS Layer.
En el Install Manager se incluyeron los archivos ".svc" que corresponden a los web services rest.
En el generador Smart Devices se corrigió la muestra del Label con Description Position en Top que no estaba funcionando en View, Sections ni Transacciones.
6/6/2023:
ERRORES CORREGIDOS
No se generaba el botón Cancel en Paneles generados por el Parameter Request definidos como Popup o Prompts.
5/6/2023:
NUEVAS FUNCIONALIDADES
Se agregaron nuevas propiedades en el nodo View ("Excel Generate Top Grid" y "Excel Generate Bottom Grid") que permiten habilitar o deshabilitar la generación de contenidos de esos nodos en la exportación a Excel.
El valor por defecto quedó en False para mantener compatibilidad con lo generado en versiones anteriores.
ERRORES CORREGIDOS
En el pattern Entity Parameters se corrigió la muestra de los valores de preferencias basadas en Chosen.
Se mostrará la descripción de los valores seleccionados separados coma.En el pattern Web Service Transaction no se estaba considerando el caso de actualización o borrado de registros de tablas subordinadas.
29/5/2023:
NUEVAS FUNCIONALIDADES
El nodo View del PXWorkWith generado por el pattern PXEntityParameters se le asignó la propiedad "Enter on Switch Tab" habilitada.
Se soportó la propiedad "Enter on Switch Tab" en nodos "Dynamic Tab" del PXWorkWith.
Nueva propiedad "Popup Name" en Acciones cuando se invoca con Link, External Link o Dynamic Link con Target New.
Esta propiedad levanta la popup con nombre lo que asegura que no se genere la presencia de múltiples popups con la ejecución reiterada de la acción.Nueva propiedad "Ensure Unique Invocation" en Acciones cuando se invoca con Link, External Link o Dynamic Link con Target New.
Esta propiedad se asegura que la ejecución del javascript de ejecución de la ventana popup se haga una única vez.Nueva propiedad "Force Form Reload" cuando se habilita Enter On Switch Tab en View. Esta propiedad fuerza la ejecución del View para contemplar casos en que luego de ejecutar el evento de una Section no se ejecuta el Evento Refresh ni el Evento Load del View.
Nueva funcionalidad en el User Control RunJS que se asegura de que la ejecución del script no se llegue a ejecutar más de una vez:
Se basa en la indicación al principio del Script de una macro que identifica ese script con un valor único.
El formato es el siguiente: &RunScript = "[!Unique:" + RetUniqueInvocationScriptValue() + "!]" + "<cualquier javascript>;"Para ello se creó la API RetUniqueInvocationScriptValue que genera un valor único e irrepetible cada vez que se utiliza.
Cuando en una instancia hay nodos Fixed Data Section que tengan acciones y que a nivel del Template a utilizar no está definido dicho Fixed Data Section, las acciones se pasan a manejar como si fueran del nodo Actions.
Hasta el momento esta situación terminaba generando un error a nivel de especificación ya que los controles de dichas acciones no estaban en pantalla pero si estaban declarados los Eventos de dichas acciones que, en algunos casos, hacían referencia a los controles de pantalla.Las propiedades de Classes de todos los controles comenzaron a aparecer pese a que el Layout sea Any:
Lo que se hizo principalmente fue duplicar todas las clases para diferenciar referencias del Theme Web con respecto a referencias de Clases del Theme SD.
Pasaron a ser todas visibles si el Layout se asocia a Any Platform.
Se ocultan aquellas classes si el Layout se personaliza para una sola plataforma Web o SD.
El objetivo de esto es para posteriormente poder hacer un nuevo juego de Clases asociadas al Design Object.
Nueva propiedad "Table Type" en Rows que permitiría customizar el Tipo de Tabla a usar en el Generador Web Responsivo cuando se tiene la funcionalidad de "First Element Aligned" habilitado.
Por el momento las tablas soportadas son: Responsive (que ya se estaban generando) y Tabular que utiliza el formato tradicional HTML.
El objetivo es continuar el desarrollo para habilitar posteriormente tablas tipo Flex o Smart.Mejoras a nivel del Generador Smart Devices:
Si se habilita el nodo Modes en un Section el pattern buscará si hay un PXWorkWith asociado a la Transacción subordinada para hacer un link al Detail en el modo correspondiente.
Se agregó un Return luego de hacer el Save en el Section en modo Edit que representa la Transacción.
Soporte de Code type "OnLineTap" y "OnLineLongTap" para los eventos de Tap y LongTap sobre un registro de la grilla.
Soporte de Mode Update que generará en forma automática un Evento Tap sobre el registro de la grilla para llamar al Detail en modo Update con los parámetros instanciados del registro.
En el Detail se dejó de usar el Control "All Section Contents" ya que se detectó un bug de GeneXus que en caso de que haya una Section solo con Layout en modo Edit y se llama al Detail en modo "Display" se muestra incorrectamente el Tab correspondiente a esa sección cuando debería verse solo cuando se entra al Detail con los métodos Insert, Update o Delete.
Soporte de Condition en Sections.
Soporte en el Export a Excel para incluir variables que puedan encontrarse en FixedDataSections con Type "Top Grid" y "Bottom Grid".
ERRORES CORREGIDOS
Se cambió la propiedad "Condition" del nodo "Rule" de una Transacción para poder editarlo con una popup.
Se agregaron controles para eliminar los ";" definidos en la propiedad "Value" y "Condition" del nodo "Rule" al momento de la generación en la transacción.
Se corrigió la generación del pattern PXWorkWith correspondiente con la Transacción como Componente del pattern PXEntityParameters que tenía mal definido el Code Start ya que debe contemplar la carga de los datos en función del idioma recibido por parámetro.
En un Section Tipo Tabular si un atributo recibido por parámetro se despliega en pantalla, se pasa a gestionar como una variable pero a nivel del nombre del label se continuaba considerando con el prefijo de un atributo "lba" en lugar de una variable "lbv".
Cuando se tiene la opción First Element Aligned en Responsivo no se estaba definiendo la clase correcta asociada al Row con esa carácterística en el Layout Abstracto en los objetos generados asociados a los nodos Section del PXWorkWith.
Cuando una Acción en un PXWorkWith con la propiedad Name con el valor "Cancel" se define con link en formato PXInstance no se generaba el código correspondiente y solo se hacía el return.
Correcciones en generador Smart Devices:
Daba un error "The format string defined in the configuration file for type Transaction is invalid (does not contain "<Object>")" al aplicar el pattern cuando hay un nodo Transaction definido.
Daba un warning "Property ShowRowSelector not found in Grid node".
Se cambió la referencia del viejo External Object SDActions al nuevo Actions.
Se dejó de referenciar en ese External Object a los métodos de ese Refresh() y Return() por los comandos nativos de GeneXus.
Cuando se definen Columns en el Form de la Transacción quedaba mal definido el ancho de cada Column.
Se mejoró la predicción de los prefijos de los atributos al generar una instancia de PXWSTransaction.
15/2/2023:
NUEVAS FUNCIONALIDADES
Posibilidad de incorporar nodo Confirm durante el proceso de ejecución del Evento Enter de la Transacción:
Es sabido que esta funcionalidad no está soportada por GeneXus.
Se necesita en ocasiones el poder determinar si es necesario invocar a una interfaz de confirmación durante el proceso de Confirmación de la trasacción para estar seguro que el usuario está definiendo los datos de forma correcta.
Por ejemplo es importante si esos datos ingresados pueden implicar procesos posteriores que podría complicar deshacer si fue un ingreso incorrecto.Para implementar esta funcionalidad se van a necesitar:
Definir una Acción con la propiedad Name con el valor Enter (que es uno de los valores posibles a definir por defecto en la lista de selección de esa propiedad).
Se podrá definir el Call Type de tipo Event y dentro del evento considerar las condiciones bajo las cuales será necesario invocar a una (o más) confirmación(es).La (o las) confirmación(es) se puede(n) definir bajo el nodo Confirms.
Esta funcionalidad no es nueva ya que se podía usar Confirms en transacciones pero hasta el momento no se podía asociar al "Evento Enter" de la Transacción.Soporte de un nuevo "Comando" a nivel de PXTools que en realidad es la función "Save()".
Esta función hace las veces de la solicitud a nivel de cualquier evento de ejecutar el Evento Enter final (real) de la transacción.
Queda ver si podemos resolver el caso de capturar la tecla Enter para que sea atendida por la Acción Enter y no por el Evento Enter de la Transacción.
Cambios a nivel de Sections Tabulares:
Soporte de Rectangle y Columns a nivel de Section Tabular.
Cambio en la forma de mostrar un atributo que está definido como parámetro:
En el Layout se pasó a mostrar la variable asociada al parámetro.
En las Rules se pasó a usar el visible de la variable asociada al parámetro.
ERRORES CORREGIDOS
Se corrigió en el generador Responsivo la muestra del Label asociado a una variable o atributo basado en el control Chosen ubicado en los filtros del Selection.
Se corrigió error en generador Desktop cuando en Section Tabular se agrega un Rectangle o Columns que no estaban soportados.
Se agregó una clase en la generación de la Tabla Responsiva de Chosen con Label para lograr alinear ambos datos correctamente.
26/1/2023:
ERRORES CORREGIDOS
En el PXParameterRequest:
Daba error el generador si se incluía un control tipo Chosen.
No se incluía código en el Evento Load asociado a nodo Link en Atributos o Variables del form en Web Panel responsivo.
En el PXWorkWith cuando se definen nodos "Link" con una llamada en formato PXInstance, no se generaba la invocación al web panel correspondiente al generador Responsivo.
20/1/2023:
ERRORES CORREGIDOS
En los paneles asociados al generador Responsivo se generaba el Textblock de htmScript en formato Text en lugar de Raw HTML.
Fallaba la validación de la licencia al comenzar a manejar el nuevo formato de versión de PXTools.
A nivel del licenciamiento se mantuvo el formato viejo mientras que en el About ya se maneja el formato nuevo.
16/1/2023:
NUEVAS FUNCIONALIDADES
Soporte de Code Type "LoadExcel". Código que se ejecutará como evento load solo en el procedimiento de export a excel.
ERRORES CORREGIDOS
Mejora en el proceso de About para detectar el directorio de GeneXus activo y por consiguiente las versiones de las librerías de PXTools correspondientes.
Ahora ya no se toma el directorio de instalación de GeneXus desde la registry sino el directorio del GeneXus que se esté ejecutando (que no tiene porqué coincidir con el directorio de instalación ya que el directorio de GeneXus puede haber sido copiado a mano)Cambio en el majeno de versión de PXTools a la 7.0 que representa la versión general y ya no depende de la versión de GeneXus que se esté usando.
5/1/2023:
ERRORES CORREGIDOS
Se corrigió un caso de falla en la generación de pattern PXWorkWith cuando se tiene un Selection con Export a Excel habilitado y además se encuentran acciones con Conditional Calls invocando con Link en formato PXInstance.
4/1/2023:
ERRORES CORREGIDOS
En caso de que una acción de texto tenga una condición que se evalúe en evento y no tenga mensaje de error definido no se definirá el código generando un mensaje vacío.
No se estaban desplegando los valores correctos en la opción Evaluate Condition de Acciones en instancias PXParameterRequest. El valor por defecto pasó a ser "Start" al igual que en el PXWorkWith
26/12/2022:
NUEVAS FUNCIONALIDADES
Soporte de Code Type "ClearSearch".
Nueva propiedad "Excel Description" en Atributos y variables de la grilla. Si el valor está vacío se tomará para el Titulo del Excel la propiedad "Description".
Se toma la propiedad "Header Group" como valor a formar parte del título del excel.
21/12/2022:
ERRORES CORREGIDOS
En la extensión de generación de los módulos de la KB "Tools -> PXTools -> Basic -> Save System Modules" ya no se incluyen los módulos que comiencen con "GeneXus" y los módulos que comiencen con "Extensions".
Las acciones cuya Evaluate Condition estaba en "Refresh" se estaba evaluando dicha condición antes que el Code "Refresh".
Se pasó a evaluar la condición de la acción despues del Code "Refresh".Se corrigió la nomenclatura del control asociado a una Category definido en una Row:
En Parameter Request y en Work With Responsivo no estaba considerando el nombre customizado del control.
En Parameter Request Desktop se estaba duplicando el nombre del control padre (en caso de que el Row esté dentro de controles contenedores como Tabs, Columns, etc).
13/11/2022:
NUEVAS FUNCIONALIDADES
Se agregó el nodo Label dentro de Row de Filtros en Selection, Prompts y Tabs tipo Grid.
Soporte de Grid1.OnLineActivate como evento posible a definir dentro del Template.
ERRORES CORREGIDOS
En acciones InGrid no se estaba declarando la variable de seguridad para trasladarla al momento de controlar la condicion de la acción (funcionalidad incorporada en la previa liberación).
En acciones InGrid no se estaba controlando la condición si la propiedad Evaluate Condición es "Start".
Esto está relacionado con un Work Arround implementado en la liberación previa que pasa el control de seguridad de una acción ingrid de "Start" para "Refresh" porque en caso contrario el valor de visibilidad definido en el Start se pierde al ejecutarse un refresh de la pantalla.
Al realizar este cambio ahora si la Condition está en "Start" también se fuerza la evaluación de la condición a Refresh para que se haga junto con la evaluación de la seguridad.
13/10/2022:
NUEVAS FUNCIONALIDADES
Se agregó la propiedad Range Precision y Like Precision en Preferencias del pattern PXWSLayer.
Estas preferencias permiten variar el comportamiento de búsqueda por rangos.
En Range Precision:Cuando es "Strict" realiza la búsqueda estricta.
Cuando es "Flexible" agrega "Z" al final del To.
En Like Precision:
Cuando es "Strict" realiza la búsqueda estricta.
Cuando es "Flexible" agrega delante y detrás del valor el carácter "%".
Separación del momento de chequeo de seguridad de una acción del momento en que se controlaba la condición de la misma.
En versiones previas pese a que a nivel de acción era posible diferenciar los momentos de chequeo de seguridad del momento del chequeo de la condición de la acción el generador forzaba que se diera prevalencia al momento en que se chequea la condición de la acción y el chequeo de seguridad se hacía en el mismo evento.
En esta versión se comenzó a respetar cada evento por separado.
Esto implicó que cuando no hay coincidencia del evento del chequeo de seguridad del momento del chequeo de la condición se comienza a utilizar una variable que permita perdurar el valor entre el chequeo de seguridad y el momento de la evaluación de la condición de forma de que si el chequeo de la seguridad inhabilite la muestra de la acción entonces no se tenga que llegar a evaluar la condición.Se generó un código correctivo tipo WorkArround en Acciones InGrid cuando se evalúa la seguridad en Start.
En estos casos al cargarse la pantalla por primera vez todo funciona correctamente.
Pero si esa primera vez no hay registros a desplegar, GeneXus no mantiene recuerdo de la indicación de visibilidad de esas acciones definidas en la grilla.
Por este motivo si la grilla inicia vacía y no hay restricción de visibilidad de una acción InGrid indicada en el evento "Start", luego de realizar cambios en los filtros que generarán la visualización de registros en una segunda instancia, esa acción pasará a quedar invisible en forma incorrecta. GeneXus no retiene el valor declarado de Visibilidad en el Evento Start y en la segunda instancia de búsqueda pasa a "False".
Por este motivo el Work Arround es que el control de visibilidad por seguridad se haga en el Evento Refresh.