Facilite la vida de su desarrollador con los cuadros de lista

Traducido automáticamente de Deepl
Nuestro principal objetivo es hacer la vida de los desarrolladores más fácil, día tras día, y los cuadros de lista son uno de los objetos de formulario más usados y poderosos de 4D que sirven a este propósito. Todos sabemos que los cuadros de lista activan muchos eventos, por eso en 4D v18 R2 hemos mejorado el comando Form event para devolver aún más información cuando se activan los eventos de los cuadros de lista.
¿Quieres dejar de lado tu antiguo código complicado para adivinar en qué fila, columna o cabecera has hecho clic o has puesto el ratón? ¡Permítanos mostrarle una manera más suave e inteligente de hacerlo!

HDI: Ejemplos para trabajar fácilmente con eventos Listbox

Dependiendo del evento, el comando Form event comando.
Veamos algunos ejemplos.

En el evento de clic de la cabecera

El nombre del objeto cabecera, el nombre del objeto columna y el número de columna son ahora devueltos por el comando Form event comando.
Este es un ejemplo del objeto devuelto cuando se dispara un evento On Header Click/

{"headerName":"headerLastname", // New property - Header object name
"columnName":"lastname", // New property - Column object name
"column":2,   // New property - Column number
"code":42,
"description":"On Header Click",
"objectName":"EmployeesLB"}

Por ejemplo, si establece un nombre de objeto de columna con un nombre de atributo real de una clase de datos(por ejemplo, lastname):

Al hacer clic en la cabecera de la columna que muestra los apellidos de los empleados, ordenamos la columna según los atributos lastname y firstname :

Form.event:=FORM Event
Case of
: (Form event code =On Header Click)
if (Form.event.columnName="lastname")
Form .employees:=Form.employees.orderBy(Form.event.columnName+", firstname")
End if
End case

En el evento DISPLAY DETAILS

Cuando se activa el evento On Display Details, el comando devuelve ahora propiedades adicionales relevantes( por ejemplo, isRowSelected). Form event del comando. Esto puede ser útil para gestionar la apariencia de las líneas de un cuadro de lista.
A continuación se muestra un ejemplo de un método(setColor) establecido en la propiedad Meta info expression de un cuadro de lista:
blank
El método setColor:
C_OBJECT($event;$0;$meta)
$event :=FORM Event
$meta :=New object
Case of
: ($event.code=On Display Detail)
If ($event.isRowSelected) //set color when row is selected
$meta .fill:="lightblue"
End if

End case
$0 :=$meta

Y así es como se ve el cuadro de lista cuando se seleccionan las filas:

blank

Al mover el ratón EVENTO

Otro evento frecuentemente utilizado es el evento On Mouse Move. A continuación se muestran ejemplos de objetos devueltos por el Form event cuando se activa.

¡Inmediatamente se obtienen propiedades útiles para localizar donde se pone el ratón!

El ratón pasa por encima de una cabecera

Form event El comando devuelve:

{"area": "header", // The mouse is on a header
"areaName": "headerLastname", // Header object name
"column":2, // Column number
"columnName": "lastname", // Colmun object name
"code":37,
"description": "On Mouse Move",
"objectName": "EmployeesLB"}

El ratón pasa por encima de una celda

Form event El comando devuelve:

{"area": "cell", // The mouse is on a cell
"column":1, // Column number
"row":2, // Row number
"columnName": "firstname", // Colmun object name
"code":37,
"description": "On Mouse Move",
"objectName": "Emp
loyeesLB»}
Hay tantos eventos de los cuadros de lista que una sola entrada del blog no es suficiente para cubrirlos todos, así que asegúrate de revisar la documentación para encontrar amplia información sobre cada evento y descarga el IDH para aprender más.
Avatar
• Propietario de producto - Marie-Sophie Landrieu-Yvert ingresó al equipo de 4D Product como Propietario de producto en 2017. Como tal, está a cargo de escribir las historias de los usuarios y luego traducirlas en especificaciones funcionales. Su papel es también asegurarse de que la implementación de la funcionalidad entregada cumpla con las necesidades del cliente. Marie-Sophie se graduó en la Escuela de Ingeniería de ESIGELEC y comenzó su carrera como ingeniera en IBM en 1995. Participó en varios proyectos (de mantenimiento y creación) y trabajó como desarrolladora de Cobol. Luego trabajó como diseñadora de UML y desarrolladora de Java. Sus principales funciones fueron analizar y redactar requisitos funcionales, coordinar los equipos de negocio y de desarrollo.