Při vydávání každé nové verze zohledňujeme zpětnou vazbu, kterou dostáváme od našich zákazníků ohledně obecného používání aplikace 4D Write Pro a jejích příkazů. Přestože zůstává 100% kompatibilní, některé příkazy a funkce jazyka se vyvíjejí!
Některé příkazy, jejichž syntaxe byla ve verzi 4D 20 R8 vylepšena, nyní umožňují používat moderní parametry, jako jsou objekty nebo kolekce. Jiné jsou nyní funkcemi, což usnadňuje jejich používání. A konečně byla vytvořena řada nových funkcí. Díky tomu všemu bude váš kód jednodušší, obecnější a snadněji se bude udržovat!
WP GET/SET ATRIBUTY: Všechny atributy v jednom objektu!
Jedním z nejoblíbenějších příkazů je WP SET ATTRIBUTES, protože jej lze použít pro všechny druhy cílů, od jednoho znaku až po celý dokument. Tento příkaz nyní může jako parametr přijímat objekt, nikoli dvojice atribut-hodnota.
Ukázka kódu
$attributes:={color: "red"; fontBold: 0; fontItalic: 1; fontSize: "16pt"}
WP SET ATTRIBUTES($range1; $attributes)
WP SET ATTRIBUTES($range2; $attributes)
WP SET ATTRIBUTES($range3; $attributes)
Stejným způsobem lze v objektu přijímat všechny atributy nebo jejich části libovolného rozsahu nebo prvku. To je velmi užitečné, pokud chcete stejné atributy použít na jiný cíl… Pokud předáte pouze jeden parametr, bude vrácený objekt obsahovat všechny atributy, ale můžete to omezit použitím kolekce!
$attributes:=WP Get attributes($range; ["color"; "fontItalic"])
Konečně příkaz WP RESET ATTRIBUTES nyní přijímá kolekci místo více parametrů (předchozí syntaxe je samozřejmě stále platná).
$attributes:=["color"; "fontBold"; "fontItalic"; "fontSize"]
WP RESET ATTRIBUTES($range1; $attributes)
WP RESET ATTRIBUTES($range2; $attributes)
WP RESET ATTRIBUTES($range3; $attributes)
WP TABLE APPEND ROW: vzorce, kolekce a návraty funkcí!
Parametry tohoto příkazu mohou být nyní typu vzorec nebo pojmenovaný vzorec (Připomínáme : pojmenovaný vzorec je objekt obsahující vzorec i název vzorce… viz tento BLOG).
Parametry pak lze příkazu předat jako kolekci a co je nejlepší, příkaz nyní vrací prvek řádku!
$row:=WP Table append row($table; "Reference"; "Date"; "Time"; "rnd 1"; "rdn 2")
WP SET ATTRIBUTES($row; wk background color; "lightgrey")
$colItems:=[]
$colItems.push("KX-825")
$colItems.push(Formula(Current date))
$colItems.push(Formula(String(Current time; HH MM SS)))
$colItems.push(Formula(Random))
$colItems.push({name: "RND NUMBER"; formula: Formula(Random)})
$row:=WP Table append row($table; $colItems)
WP VLOŽIT OBRÁZEK
Při vkládání prvku do dokumentu je obecně užitečné mít k tomuto prvku okamžitý přístup. Příkaz WP INSERT PICTURE se proto stává funkcí WP Insert picture a vrací element picture. Můžete například chtít obrázek ihned po vložení zarámovat. Kromě toho může tento příkaz nyní jako argument přijímat 4D.File!
$pictureFile:=File(Folder(fk resources folder).path+"bullet.png"; fk posix path)
$picture:=WP Insert picture(WParea; $pictureFile; wk append)
$attributes:={}
$attributes[wk margin]:="8pt"
$attributes[wk padding]:="5pt"
$attributes[wk border width]:="2pt"
$attributes[wk border style]:=wk solid
$attributes[wk border color]:="navy"
WP SET ATTRIBUTES($picture; $attributes)
DOKUMENTY a OBRÁZKY
Modernizací prošly také příkazy WP IMPORT DOCUMENT, WP EXPORT DOCUMENT, WP INSERT PICTURE a WP Add picture, které nyní kromě obvyklých typů argumentů přijímají také argumenty 4D.File.
$documentFile:=File("/RESOURCES/reference.4wp")
WParea:=WP Import document($documentFile)
$documentFile:=File("/DATA/CopyOfReference.4wp")
WP EXPORT DOCUMENT(WParea; $documentFile)
$pictureFile:=File("/RESOURCES/bullet.png")
$picture3:=WP Insert picture(WParea; $pictureFile; wk append)
$pictureFile:=File("/RESOURCES/bullet.png")
$picture:=WP Add picture(WParea; $pictureFile)
„INSERT DOCUMENT BODY“ MÍSTO „INSERT DOCUMENT“.
Pro větší přehlednost byl příkaz WP INSERT DOCUMENT přejmenován na WP Insert document body, protože to je to, co ve skutečnosti dělá.
Po jeho vyvolání se vloží tělo dokumentu. Záhlaví, zápatí, ukotvené obrázky a textová pole jsou ignorovány. Jediná výjimka: importují se také styly!
Jak vidíte v příkladu níže, tento příkaz nyní vrací rozsah odpovídající importovanému tělu!
$file:=File("/RESOURCES/Main.4wp")
$main:=WP Import document($file)
$pictureFile:=File("/RESOURCES/bullet.png")
$sub:=WP Import document($pictureFile)
$range:=WP Insert document body($main; $sub; wk append)
DALŠÍ INFORMACE O ROZSAHU
Některé příkazy mlčely a nevracely… nic, přitom by se často rozsah docela hodil. Následující příkazy právě toto dělají a všechny vracejí textové rozsahy!
- WP INSERT FORMULA
- WP INSERT BREAK
- WP INSERT DOCUMENT BODY (dříve WP INSERT DOCUMENT)
$range:=WP Insert formula(WParea; Formula(Current date); wk append)
WP SET ATTRIBUTES($range; {color: "red"; fontItalic: 1; fontBold: 0})
VÍTEJTE NOVÉ FUNKCE
Sekce
Sekce mají názvy i indexy (jedná se o atributy), ale přístup k těmto informacím nebyl snadný.
S novými funkcemi This.sectionIndex a This.sectionName, které lze vkládat jako vzorce přímo do dokumentů, je to nyní hračka!
Indexy stránek
V případě potřeby můžete nyní přistupovat k indexu stránek pomocí funkce This.pageIndex.
Zde je krátké vysvětlení: na rozdíl od funkce This.pageNumber, jejíž hodnota se může měnit (lze ji nastavit nebo vynulovat pro jednotlivé sekce), index stránek začíná vždy od 1 a závisí výhradně na stránkování.
Například dokument může obsahovat tři části, jejichž čísla stránek systematicky začínají na 1. Část s preambulí běží od 1 do 30, hlavní část od 1 do 200 a část s přílohami od 1 do 8. V případě, že se v dokumentu vyskytují stránky, které jsou označeny číslem 1, může být index stránek nastaven na hodnotu 1. V tomto případě bude index stránek probíhat od 1 do 238.
Závěr
Není pochyb o tom, že zjednodušené příkazy usnadní život vývojářům aplikace 4D Write Pro a zjednoduší kontrolu a údržbu kódu. Těšíme se na vaši zpětnou vazbu na fóru!