Seznamte se s aktualizovanými příkazy Tisk formuláře a FORM LOAD

Automaticky přeloženo z Deepl

4D v16 R5 přinesl významné vylepšení příkazu DIALOG. Vylepšení spočívá v možnosti předávat nový parametr „formData “ typu objekt. Bylo skvělé slyšet, že tento nový doplněk byl vývojáři 4D dobře přijat.

S verzí 4D v20 byly vylepšeny další dva příkazy, a to Print form a FORM LOAD! Jejich přínos bude stejně velký. Obsah objektu předaný v parametru bude přímo využitelný v tištěných formulářích nebo formulářích načtených v paměti.

kód SAMPLE

Tisk formuláře

Příkaz Tisk formuláře je díky svým nedávným vylepšením hojně využíván vývojáři 4D.

Příkaz PRINT FORM nyní může ve vyvolaném formuláři předávat volitelný parametr typu objekt přístupný prostřednictvím funkce Form. Buď přímo pomocí funkce Form jako výrazů pro objekty formuláře (Form.firstname / Form.lastname / atd.), ale také při provedení události on printing detail.

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

Kde formulář „Print_obj“ vypadá následovně:

FORM LOAD

Podle stejného principu může nyní příkaz FORM LOAD obdržet objekt jako parametr. Je-li předán (nepovinně), pak lze obsah tohoto objektu různě využívat a měnit během provádění události on load (pouze událost řízená a pouze uvnitř sekvence 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

…kde „GlobalForm“ obsahuje listbox „LB“, který používá Form.LBcollection jako zdroj dat.

blank

Závěr

Tato nová možnost programování vám ušetří čas a „odlehčí“ váš kód.

Jako obvykle se neváhejte podělit o své připomínky na fóru 4D. Těšíme se na vaše názory!

Roland Lannuzel
- Product Owner & 4D Expert - Po studiu elektroniky se Roland věnoval průmyslovým IT jako vývojář a konzultant, který vytvářel řešení pro zákazníky s různými databázemi a technologiemi. Koncem 80. let se zamiloval do 4D a používal jej při psaní podnikových aplikací, které zahrnovaly účetní, fakturační a e-mailové systémy. nakonec se připojil ke společnosti v roce 1997 a Rolandův cenný přínos zahrnuje návrh specifikací, testovacích nástrojů, demoverzí a také školení a přednášky pro komunitu 4D na mnoha konferencích. Nadále aktivně utváří budoucnost 4D definováním nových funkcí a nástrojů pro vývoj databází.