Aplikace 4D v18 R2 umožňuje ve 4D Write Pro spravovat objekty vzorců uvnitř dokumentů. Za tímto účelem byly vytvořeny čtyři nové příkazy: WP Get formulas, WP Insert formula, WP Compute formulas, a WP Freeze formulas. Všechny lze použít s intuitivními cíli, jako je dokument, tělo, záhlaví atd. A jak jste možná uhodli z názvů příkazů, vzorce již nejsou textové výrazy, ale výkonné objekty vzorců!
Vše najednou
První příkaz, WP Get formulas, umožňuje získat všechny vzorce v rámci určitého cíle. Prvním cílem, který vás napadne, je samozřejmě celý dokument jako takový, ale může to být i konkrétnější část dokumentu, například tělo, druhý oddíl, levé záhlaví, prostě si řekněte! Tento příkaz vrací kolekci objektů obsahující formula, range (pokud je výraz inline) nebo anchoredID , pokud je výraz připojen k ukotvenému obrázku.
Poznámka: Objekt formula má nyní čitelný atribut nazvaný source. Tento atribut je velmi užitečný pro vyhledávání a nahrazování akcí. (viz níže)
Příkazy WP Compute formulas a WP Freeze formulas lze použít velmi podobným způsobem(tj. , pomocí cíle). Můžete znovu vyhodnotit všechny výrazy dokumentu, nebo se můžete rozhodnout zmrazit pouze výrazy patřící do zápatí. Je to jednoduché a logické.
// find all expressions of the document
C_COLLECTION($_expressions)
$_expressions :=WP Get formulas(WParea)
jeden po druhém
Čtvrtý příkaz, WP Insert formula, umožňuje vložit výraz (jako objekt vzorce) v rámci libovolného zadaného rozsahu. Lze jej také použít k nahrazení existujících výrazů (jednou nalezených příkazem WP Get formulas ).
Zde je jednoduchý příklad nahrazení: Váš dokument obsahuje výrazy current date a vy byste je chtěli všechny nahradit formátovaným řetězcem, například„čtvrtek 14. listopadu 2019„.
// define what to find
$find:=Formula(Current date)
// define the replacement
$formula :=Formula(String(Current date;System date long))
// find all expressions of the document
$_ expressions :=WP Get formulas(WParea)
// query the collection (could have been done on previous line, but easier to read this way!)
$_
expressions:=$_
expressions .
query("formula.source = :1";$find.source)
// then replace each expression with the new one
For each ($expression;$_ expressions )
.
WP INSERT FORMULA ($expression.range;$formula;wk replace)
End for each
Další vylepšení
Vylepšeny a zjednodušeny byly také některé stávající výrazy. Vyhrazené lokální proměnné jako $wp_pageCount nebo $wp_author byly nyní prohlášeny za zastaralé, i když jsou stále podporovány. Byly nahrazeny použitím čitelnější a modernější This.property. Zde je kompletní seznam dostupných vlastností:
$wp_subject -> | This.subject |
$wp_author -> | This.author |
$wp_company -> | This.company |
$wp_notes -> | This.notes |
$wp_dateCreation -> | This.dateCreation |
$wp_dateModified -> | This.dateModified |
$wp_pageNumber -> | This.pageNumber |
$wp_pageCount -> | This.pageCount |
$wp_title -> | This.title |
Výkonnější, jednodušší
Na závěr bychom chtěli říci, že používání těchto nativních příkazů vám skutečně zjednoduší správu vzorců v dokumentech 4D Write Pro. Neváhejte si přečíst celou dokumentaci a podívat se do databáze HDI, kde najdete další informace!