Lernen Sie die aktualisierten Befehle Print form & FORM LOAD kennen

4D v16 R5 brachte eine wesentliche Verbesserung des DIALOG Befehls. Eine Verbesserung, die in der Möglichkeit liegt, einen neuen Parameter „formData“ vom Typ Objekt zu übergeben. Es war schön zu hören, dass diese neue Ergänzung von den 4D Entwicklern gut angenommen wurde.

Mit 4D v20 werden zwei weitere Befehle aktualisiert, Print form und FORM LOAD! Der Nutzen wird genauso groß sein. Der Inhalt des Objekts, der im Parameter übergeben wird, kann direkt in den gedruckten oder im Speicher geladenen Formularen verwendet werden.

code BEISPIEL

PRINT FORM

Der Befehl Print form wird dank seiner jüngsten Verbesserungen von 4D Entwicklern häufig verwendet.

Der Befehl PRINT FORM kann nun einen optionalen Parameter vom Typ Objekt übergeben, der über die Funktion Form im aufgerufenen Formular zugänglich ist. Entweder direkt mit der Funktion Form als Ausdrücke für die Formularobjekte (Form.firstname / Form.lastname / etc.), aber auch wenn das Ereignis on printing detail ausgeführt wird.

$formData:=New object()
$formData.lastname:="Smith"
$formData.firstname:="john"
$formData.request:="I need more COFFEE"
$h:=Print form("Print_obj"; $formData; Form detail)

Wobei das Formular „Print_obj“ wie folgt aussieht:

 

FORM LOAD

Nach dem gleichen Prinzip kann der Befehl FORM LOAD nun ein Objekt als Parameter erhalten. Wenn es übergeben wird (optional), kann der Inhalt dieses Objekts auf verschiedene Weise genutzt und während der Ausführung des Ereignisses on load geändert werden (nur ereignisgesteuert und nur innerhalb einer Sequenz OPEN PRINTING JOB / CLOSE PRINTING JOB).

OPEN PRINTING JOB

$formData.LBcollection:=New collection()
$formData.LBcollection.push(New object("reference"; "alpha"; "quantity"; 3; "total"; 120.99))
$formData.LBcollection.push(New object("reference"; "bravo"; "quantity"; 2; "total"; 599.99))

FORM LOAD("GlobalForm"; $formData)  // $formData NEW !!!

$over:=False
Repeat 
	$full:=Print object(*; "LB")  // the datasource of this "LB" listbox is Form.LBcollection	
	LISTBOX GET PRINT INFORMATION(*; "LB"; lk printing is over; $over)
	If (Not($over))
		PAGE BREAK
	End if 
Until ($over)
CLOSE PRINTING JOB

…wobei die „GlobalForm“ eine Listbox „LB“ enthält, die Form.LBcollection als Datenquelle verwendet.

blank

Schlussfolgerung

Diese neue Programmiermöglichkeit wird Ihnen Zeit sparen und Ihren Code „leichter“ machen.

Wie immer können Sie uns gerne Ihr Feedback in den 4D Foren mitteilen. Wir freuen uns auf Ihr Feedback!

 

Roland Lannuzel
- Product Owner & 4D Experte - Nach seinem Studium der Elektronik arbeitete Roland als Entwickler und Berater in der industriellen IT-Branche, wo er Lösungen für Kunden mit einer Vielzahl von Datenbanken und Technologien entwickelte. In den späten 80er Jahren verliebte er sich in 4D und setzte es bei der Entwicklung von Geschäftsanwendungen wie Buchhaltungs-, Abrechnungs- und E-Mail-Systemen ein. 1997 trat er schließlich in das Unternehmen ein und leistete einen wertvollen Beitrag, indem er Spezifikationen, Testtools und Demos entwarf, Schulungen durchführte und auf vielen Konferenzen für die 4D Community sprach. Er gestaltet die Zukunft von 4D aktiv mit, indem er neue Funktionen und Datenbankentwicklungstools definiert.