Entdecken Sie alle Optionen zur Verwendung von Standard-Aktionen

Einige Entwickler glauben, dass automatische Aktionen nur etwas für Anfänger sind. Sie haben jedoch möglicherweise eine Menge Potenzial verpasst, das wir in den letzten Jahren hinzugefügt haben. Standard-Aktionen, wie First Record oder color?value=redkönnen einer Schaltfläche in der Benutzeroberfläche oder durch Programmierung zugewiesen werden. Die Aktion kann einem Menüpunkt oder Kontextmenü zugewiesen oder mit einem Befehl aufgerufen werden. Ein Vorteil ist, dass 4D auch automatisch die Deaktivierung des Menüpunkts oder der Schaltfläche vornimmt, wenn die Aktion nicht anwendbar ist (z. B. wenn es keinen nächsten Datensatz gibt).

Und ab 4D v16 R3 wächst die Liste der Standardaktionen: über 100 neue Standardaktionen wurden für 4D Write Pro und Styled Text hinzugefügt , mit denen Sie z. B. eine Symbolleiste erstellen können, ohne eine Zeile Code zu schreiben!

Zusammenfassend lässt sich sagen, dass Sie Standardaktionen auf 3 verschiedene Arten verwenden können:

  • Zuordnen einer Standardaktion zu einem Objekt: in der Entwurfsphase (über die Eigenschaftsliste) oder durch Programmierung
  • Zuordnen einer Standardaktion zu einem Menüpunkt: in der Entwurfsphase (über die Toolbox) oder durch Programmierung
  • Verwenden Sie die neuen INVOKE ACTION und Get action info Befehle

Zuordnen einer Standardaktion zu einem Objekt

In der Entwurfsphase

Mit Hilfe der Eigenschaftsliste können Sie eine Standardaktion mit einem aktiven Formularobjekt verknüpfen. In diesem Beispiel ist die Standardaktion Datensatz löschen einer Schaltfläche zugeordnet.

Delete Record action in Property List

Weitere Einzelheiten finden Sie in diesem Artikel der Dokumentation.

Durch Programmierung

Während der Laufzeit der Anwendung können Sie für den aktuellen Prozess eine Standardaktion dynamisch mit einem Objekt verknüpfen, indem Sie es programmieren. Damit überschreiben Sie die per Eigenschaftsliste definierte Standardaktion.

Sie möchten zum Beispiel die Delete Record Standardaktion mit einer Schaltfläche „btnLöschen“ verbinden:

OBJECT SET ACTION(*; "btnDelete";ak delete record)oder wenn Sie den Wert statt der Konstante verwenden:

OBJECT SET ACTION(*; "btnDelete"; "deleteRecord")

Wenn Sie den Wert anstelle einer Konstante verwenden, können Sie der Aktion auch einen Parameter übergeben. In diesem Beispiel wenden Sie die Farbe Magenta auf einen ausgewählten Text an.

OBJECT SET ACTION(*; "btnDelete"; "color?value=magenta")

Weitere Einzelheiten finden Sie in der Dokumentation zu diesen Befehlen:

Zuordnen einer Standardaktion zu einem Menüpunkt

In der Entwurfsphase

Mit dem Menü-Editor können Sie einem Menüpunkt eine Standardaktion zuweisen. Um z.B. einen Menüpunkt zum Öffnen des 4D Wartungs- und Sicherheitscenters hinzuzufügen, wählen Sie einfach die msc Aktion als zugehörige Standardaktion im Popup-Menü:

blank

Wenn Sie Ihre Anwendung ausführen, wird das Menü angezeigt:

blank

Sie können ein Untermenü mit einer Standardaktion erstellen. Um z.B. ein Untermenü zum Anwenden eines Schriftstils (wie Fett, Kursiv…) hinzuzufügen, wählen Sie einfach die fontStyle Aktion als zugehörige Standardaktion im Popup-Menü aus:

Create a font style menu with standard automatic action

Wenn Sie Ihre Anwendung ausführen, wird das Menü angezeigt:

Menu fontStyle with standard automatic action

Weitere Einzelheiten finden Sie in diesem Artikel der Dokumentation.

Durch Programmierung

Sie können auch eine Standardaktion an den Befehl SET MENU ITEM PROPERTY übergeben. Seit 4D v16 R3, wenn Sie die Konstante ak standard action title anstelle eines Titelnamens an den Befehl APPEND MENU ITEM übergeben, verwendet 4D den lokalisierten Aktionsnamen.

Um beispielsweise in einem Popup-Menü einen Menüpunkt hinzuzufügen, der zum ersten, letzten oder nächsten Datensatz führt, schreiben Sie den folgenden Code:

  • In der Methode Form:

Case of
: (Form event=On Load) := ( ; ) ( ;-1; ; ) ( ; ) ( ;-1; ; ) ( ; ) ( ;-1; ; ) : ( = ) ( )
// create menu
menuCreate menu
//insert first record menu item
APPEND MENU ITEMmenuak standard action title
SET MENU ITEM PROPERTYmenuAssociated standard actionak first record
//insert last record menu item
APPEND MENU ITEMmenuak standard action title
SET MENU ITEM PROPERTYmenuAssociated standard actionak last record
//insert next record menu item
APPEND MENU ITEMmenuak standard action title
SET MENU ITEM PROPERTYmenuAssociated standard actionak next record
Form eventOn Unload
// release menu
RELEASE MENUmenu
End case

  • In der Schaltflächenmethode, die das Popup-Menü anzeigt:

$val:=Dynamic pop up menu(menu)

Wenn Sie dann Ihre Anwendung in einer anderen Sprache ausführen, wird das Menü angezeigt:

blank

Weitere Einzelheiten entnehmen Sie bitte der Dokumentation zu diesen Befehlen:

INVOKE ACTION Befehl

Der Befehl INVOKE ACTION Befehl, der in 4D v16 R3 hinzugefügt wurde, löst die Standardaktion aus, die durch den Aktionsparameter definiert ist, optional im target Kontext. Um zu wissen, ob die Standardaktion im aktuellen Kontext anwendbar und gültig ist, können Sie den neuen Get action info Befehl.

Die Syntax lautet:

INVOKE ACTION ( action {; target} )

Um zum Beispiel das Öffnen des MSC zu ändern, können Sie schreiben:

C_OBJECT($actionInfo)
// Check if this standard action is available and valid in this current context
$actionInfo :=Get action info(ak paste;ak current form)
If (OB Get($actionInfo; "enabled"))
// This standard action is enabled
INVOKE ACTION (ak paste;ak current form)
Else
ALERT ("Diese Aktion ist unmöglich. Die Zwischenablage ist leer.")
End if

Für weitere Details lesen Sie bitte die Dokumentation zu diesen Befehlen:

Vanessa Talbot
Product Owner - Vanessa Talbot kam im Juni 2014 zum 4D Programmteam. 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. Seit ihrer Ankunft hat sie an der Definition der wichtigsten Funktionen in 4D gearbeitet. Sie hat an den meisten der neuen Funktionen für präemptives Multi-Threading gearbeitet und auch an einem sehr komplexen Thema: der neuen Architektur für erstellte Anwendungen. Vanessa hat einen Abschluss von der Telecom Saint-Etienne. Sie begann ihre Karriere am Criminal Research Institute als Entwicklerin für die audiovisuelle Abteilung. Sie hat auch in den Bereichen Medien und Medizin als Expertin für technischen Support, Produktion und die Dokumentation neuer Funktionen gearbeitet.