Erleichtern Sie Ihren Entwicklern das Leben mit Listboxen

Unser Hauptziel ist es, das Leben der Entwickler Tag für Tag einfacher zu machen, und Listenfelder sind eines der am häufigsten verwendeten und leistungsfähigsten Formularobjekte in 4D, die diesem Zweck dienen. Wir alle wissen, dass Listboxen viele Ereignisse auslösen. Deshalb haben wir in 4D v18 R2 den Form event Befehl so erweitert, dass er noch mehr Informationen zurückgibt, wenn Listbox-Ereignisse ausgelöst werden.
Möchten Sie Ihren alten komplizierten Code loswerden, mit dem Sie erraten können, auf welche Zeile, Spalte oder Überschrift Sie geklickt oder Ihre Maus gesetzt haben? Wir zeigen Ihnen, wie Sie es einfacher und intelligenter machen können!

HDI: Beispiele für die einfache Arbeit mit Listbox-Ereignissen

Abhängig vom Ereignis werden nun zusätzliche relevante Eigenschaften durch den Form event Befehl zurückgegeben.
Schauen wir uns einige Beispiele an.

Beim Klick-Ereignis auf die Kopfzeile

Der Name des Kopfobjekts, der Name des Spaltenobjekts und die Spaltennummer werden jetzt vom Form event Befehl zurückgegeben.
Hier ist ein Beispiel für das Objekt, das zurückgegeben wird, wenn ein On Header Click-Ereignis ausgelöst wird.

{"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"}

Wenn Sie zum Beispiel einen Spaltenobjektnamen mit einem echten Attributnamen einer Datenklasse(z. B. Nachname) festlegen:

Wenn Sie auf die Überschrift der Spalte klicken, die den Nachnamen der Mitarbeiter anzeigt, sortieren wir die Spalte nach den Attributen Nachname und Vorname :

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

Beim Ereignis DISPLAY DETAILS

Wenn das Ereignis On Display Details ausgelöst wird, werden jetzt zusätzliche relevante Eigenschaften( z. B. isRowSelected) vom Form event Befehl zurückgegeben. Dies kann hilfreich sein, um das Aussehen der Zeilen einer Listbox zu verwalten.
Nachfolgend finden Sie ein Beispiel für eine Methode(setColor), die in der Eigenschaft Meta-Info-Ausdruck eines Listenfeldes festgelegt wurde:
blank
Die setColor-Methode:
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:="hellblau"
End if

End case
$0 :=$meta

Und so sieht das Listenfeld aus, wenn Zeilen ausgewählt sind:

blank

Bei Mausbewegung EVENT

Ein weiteres häufig verwendetes Ereignis ist das Ereignis „On Mouse Move „. Nachfolgend finden Sie Beispiele für Objekte, die von dem Form event Befehl zurückgegeben werden, wenn er ausgelöst wird.

Sie erhalten sofort nützliche Eigenschaften, um herauszufinden, wohin Sie Ihre Maus bewegt haben!

Die Maus bewegt sich über eine Kopfzeile

Form event Befehl zurückgibt:

{"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"}

Die Maus bewegt sich über eine Zelle

Form event Der Befehl gibt zurück:

{"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": "EmployeesLB"}
Es gibt so viele Listbox-Ereignisse, dass ein einziger Blog-Beitrag nicht ausreicht, um sie alle zu behandeln. Schauen Sie also unbedingt in der Dokumentation nach, um ausführliche Informationen zu jedem Ereignis zu finden, und laden Sie die HDI herunter, um mehr zu erfahren!
Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert ist seit 2017 als Product Owner im 4D Produktteam tätig. Als Product Owner ist sie für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen zuständig. Ihre Aufgabe ist es auch, sicherzustellen, dass die Implementierung der Funktionen den Anforderungen des Kunden entspricht. Marie-Sophie ist Absolventin der ESIGELEC Ingenieurschule und begann ihre Karriere als Ingenieurin bei IBM im Jahr 1995. Sie nahm an verschiedenen Projekten teil (Wartungs- oder Build-Projekte) und arbeitete als Cobol-Entwicklerin. Dann arbeitete sie als UML-Designerin und Java-Entwicklerin. In letzter Zeit bestand ihre Hauptaufgabe darin, funktionale Anforderungen zu analysieren und zu schreiben sowie Geschäfts- und Entwicklungsteams zu koordinieren.