Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v19.8
FORM LOAD

FORM LOAD 


 

FORM LOAD ( {Tabellenname ;} Formularname {; *} ) 
Parameter Typ   Beschreibung
Tabellenname  Tabelle in Zu ladendes Tabellenformular (wenn weggelassen, wird Projektformular geladen)
Formularname  String, Objekt in Name (String) des Projekt- oder Tabellenformulars oder
POSIX Pfad (String) zu einer .json Datei mit Beschreibung des Formulars oder
Objekt mit Beschreibung des zu öffnenden Formulars
Operator in Mit * wird der Befehl auf Host Datenbank angewandt, wenn er von einer Komponente ausgeführt wird (außerhalb dieses Kontexts wird der Parameter ignoriert)

Der Befehl FORM LOAD lädt das Formular Formularname (Projekt oder Tabelle) im Speicher in den aktuellen Prozess, um seine Daten zu drucken oder den Inhalt zu analysieren . Es gibt immer nur ein aktuelles Formular pro Prozess.

Im Parameter Formularname übergeben Sie:

  • Den Namen des Formulars oder
  • Den Pfad (in POSIX Syntax) zu einer gültigen .json Datei mit der Beschreibung des Formulars (siehe Dateipfade für Formulare) oder
  • Ein Objekt mit der Beschreibung des Formulars. Weitere Informationen dazu finden Sie unter Dynamische Formulare.

Um diesen Befehl auszuführen, muss zuvor mit dem Befehl OPEN PRINTING JOB ein Druckauftrag geöffnet werden. Das geladene Formular wird zum aktuellen Druckformular. Alle Befehle zur Objektverwaltung sowie die Funktion Print object arbeiten mit diesem Formular.

Wurde bereits zuvor ein Druckformular geladen (über einen früheren Aufruf von FORM LOAD), wird es geschlossen und durch Formularname ersetzt. Sie können in der gleichen Drucksitzung verschiedene Projektformulare öffnen und schließen. Beim Ändern des Druckformulars über FORM LOAD werden keine Umbrüche generiert. Der Entwickler muss selbst die Seitenumbrüche verwalten. Übergeben Sie einen leeren String in Formularname, wird das aktuelle Projektformular zum Drucken geschlossen.
Nur das Formularereignis On Load wird beim Öffnen des Projektformulars ausgeführt. Die anderen Formularereignisse werden ignoriert. Das Formularereignis On Unload wird am Ende des Druckens ausgeführt.

Um die grafische Konsistenz von Formularen beizubehalten, empfehlen wir, die Darstellungseigenschaft "Drucken" unabhängig von der Plattform anzuwenden.

Das aktuelle Druckformular wird automatisch geschlossen, wenn der Befehl CLOSE PRINTING JOB aufgerufen wird.

Hinweis zur Kompatibilität: Früher hieß dieser Befehl OPEN PRINTING FORM und akzeptierte im Parameter Formularname auch einen leeren String, um das aktuelle Projektformular zu schließen. Diese Syntax wird nicht mehr unterstützt, sie gibt einen Fehler zurück. Verwenden Sie jetzt zum Schließen des Formulars die Befehle FORM UNLOAD oder CLOSE PRINTING JOB.   

Hier wird ein off-screen Formular zur Analyse des Inhalts geladen. Dazu rufen Sie FORM LOAD außerhalb eines Druckauftrags auf. In diesem Anwendungsfall werden die Formularereignisse nicht ausgeführt.

FORM LOAD lässt sich zusammen mit den Befehlen FORM GET OBJECTS und OBJECT Get type verwenden, um den Inhalt des Formulars abzufragen. Sie müssen zum Schluss den Befehl FORM UNLOAD aufrufen, um das Formular aus dem Speicher zu entfernen.

Beachten Sie, dass ein bereits angezeigtes Formular auf dem Bildschirm dabei geladen bleibt (es ist vom Befehl FORM LOAD nicht betroffen), es muss also nach Aufruf von FORM UNLOAD nicht erneut geladen werden.

Wird der Befehl über eine Komponente ausgeführt, lädt er standardmäßig die Formulare der Komponente. Mit dem Parameter * lädt die Methode die Formulare der Host Datenbank.

Zur Erinnerung: Damit es zu keiner Speicherüberlastung kommt, sollten Sie im im off-screen Kontext den Befehl FORM UNLOAD aufrufen.

Ein Projektformular in einem Druckauftrag aufrufen:

 OPEN PRINTING JOB
 FORM LOAD("Druckformular")
  // Ereignisse und Objektmethoden ausführen

Ein Tabellenformular in einem Druckauftrag aufrufen:

 OPEN PRINTING JOB
 FORM LOAD([People];"Druckformular")
  // Ereignisse und Objektmethoden ausführen

Inhalt des Formulars analysieren (parsen), um Eingabebereiche für Text zu bearbeiten:

 FORM LOAD([People];"my_form")
  // Formular ohne Ausführen von Ereignissen oder Methoden auswählen
 FORM GET OBJECTS(arrObjNames;arrObjPtrs;arrPages;*)
 For($i;1;Size of array(arrObjNames))
    If(OBJECT Get type(*;arrObjNames{$i})=Object type text input)
  //… Bearbeitungen
    End if
 End for
 FORM UNLOAD //Nicht vergessen, das Formular wieder zu entladen

Dieses Beispiel gibt die Anzahl der Objekte in einem JSON Formular zurück:

 ARRAY TEXT(objectsArray;0) //sortiert Formulareinträge in Arrays
 ARRAY POINTER(variablesArray;0)
 ARRAY INTEGER(pagesArray;0)
 
 FORM LOAD("/RESOURCES/OutputForm.json") //lädt das Formular
 FORM GET OBJECTS(objectsArray;variablesArray;pagesArray;Form all pages+Form inherited)
 
 ALERT("The form contains "+String(size of array(objectsArray))+" objects") //gibt die Anzahl Obhekte zurück

Das Ergebnis lautet:



Siehe auch 

Current form name
FORM UNLOAD
LISTBOX GET OBJECTS
OBJECT Get type
Print object

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Formulare
Nummer: 1103

 
SEITENINHALT 
 
GESCHICHTE 

Erstellt: 4D v12
Geändert: 4D v14
Umbenannt: 4D v14 (OPEN PRINTING FORM)
Geändert: 4D v16 R6

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v19)
4D Programmiersprache ( 4D v19.1)
4D Programmiersprache ( 4D v19.4)
4D Programmiersprache ( 4D v19.5)
4D Programmiersprache ( 4D v19.6)
4D Programmiersprache ( 4D v19.7)
4D Programmiersprache ( 4D v19.8)