Přerušení řádků. Nový přírůstek do tabulek 4D Write Pro!

Automaticky přeloženo z Deepl

Tabulky dokumentů 4D Write Pro se v posledních verzích výrazně zlepšily. Ve skutečnosti jsme my, tým 4D, natolik investovali do toho, aby se 4D Write Pro stal silným generátorem dokumentů založeným na šablonách, že jsme již vydali pokroky, jako jsou záhlaví, datové zdroje, přenesené řádky… několik výkonných funkcí, které mě napadají.

Nyní, s verzí 4D v20, přichází na řadu přerušované řádky!

Dámy a pánové, buben, prosím!

Funkce v akci

Dosažení cíle

Ať už je vaše činnost jakákoli, určitě potřebujete vytvářet seznamy.

Tyto seznamy jsou seřazeny podle vašich vlastních kritérií a pro každou z těchto skupin je obvykle nutné vytvořit skupiny, abyste získali celkové součty nebo statistiky. Právě to vám nabízí tato nová funkce aplikace 4D Write Pro!

Kdy a jak? Zde je Konkrétní příklad

Když je tabulka napájena tříděným zdrojem dat, je cílem vložit přerušovací řádek, když se změní hodnota odpovídající kritériu třídění.

Představte si, že znáte lidi z několika kontinentů, zemí a měst.

A chcete vytvořit seznam těchto lidí seskupený podle kontinentů, zemí a měst.

blank

Nebo chcete vytvořit sestavu založenou na vztahu k firmě a vytvořit seznam zaměstnanců seskupených podle firem na jednotlivých kontinentech.

blank

V obou případech musíte nejprve zajistit, aby byl tento výběr seřazen podle těchto tří kritérií.

Případ 1:

ds.people.all().orderBy("continent asc, country asc, city asc")

Případ 2:

ds.People.all().orderBy("worksFor.name asc, continent asc)

Pro každé kritérium řazení se vytvoří přerušovací řádek

Jakmile je zdroj dat spojen s tabulkou, osoby se zobrazí v „opakovaném řádku“ a v požadovaném pořadí. Podívejme se, jak je seskupit podle kritérií řazení.

Použití rozhraní

V nabídce řádků jsou nyní k dispozici nové položky. Jsou kontextové a zobrazí se pouze v případě, že se kurzor nachází uvnitř tabulky (a pod případným záhlavím).

blank

Vzorec může být například založen na názvu atributu (This.item.country) nebo na související cestě k atributu (např.: This.item.worksFor.name) nebo na jakémkoli jiném vzorci (Substring(This.item.name;1;1)).

Jakmile je atribut break nastaven…, můžete si jeho vzorec zobrazit po najetí na symbol break „S“ (jako v Sort).

blank

Nad nebo pod BreakS?

Řádky Break mohou být nad nebo pod opakovaným řádkem (vyplněným datovým zdrojem tabulky).

Breaky se vykreslí pokaždé, když se změní hodnota vrácená vzorcem breaků, proto se ujistěte, že pozice breaků odpovídá kritériím řazení datového zdroje.

blank

Nový atribut řádku

Atribut wk break formula obsahuje vzorec, jehož výsledek bude určovat zobrazení řádku zlomu. Pouhá přítomnost tohoto atributu způsobí, že řádek bude považován za řádek zlomu. Můžete definovat tolik zlomových řádků, kolik potřebujete, například Formula(This.item.city) pro nejnižší úroveň zlomu a Formula(This .item.continent) pro nejvyšší úroveň.

WP SET ATTRIBUTES($row; wk break formula; Formula(This.item.country))
WP RESET ATTRIBUTES($row; wk break formula)

Mějte na paměti, že např:

  • Řádek zlomu musí být umístěn těsně nad nebo pod opakovaným řádkem nebo dalším řádkem zlomu, pokud existuje několik úrovní. V opačném případě nebudou brány v úvahu.
  • Počet úrovní je omezen na pět. Pokud přidáte šestou úroveň, nevyvolá se žádná chyba, ale nebude vykreslena.
  • Vložením zlomových řádků do tabulky se datový zdroj netřídí. Datový zdroj musí být setříděn samostatně.

To je vše!

Obsah řádků zlomu

Kromě textu mohou řádky zlomu obsahovat dva typy vzorců.

  • První možností je použití prvků, které se vyskytují – nebo by se mohly vyskytovat – v opakovaných řádcích (Např.: This.item.continent).
    Vrácená hodnota bude poslední hodnota použitá před zlomem (nebo první použitá hodnota, pokud zlomový řádek předchází opakovaným řádkům).
  • Druhá možnost je nová: Vlastnost breakItems lze použít pouze v kontextu zlomů (Např.: This.breakItems).
    BreakItems je podmnožinou zdrojových dat tabulky, která přesně odpovídá opakovaným řádkům příslušného řádku zlomu.

    • Použijeme-li příklad vícenásobných zlomů podle kontinentů-zemí-měst, při změně obsahu podmnožina odpovídá lidem z kontinentu (před změnou), a to bez ohledu na to, zda je řádek zlomu umístěn před nebo za opakovaným řádkem. Tuto podmnožinu lze použít pro výpočty jako sum(„salary“), average(„salary“), atd.

blank

Nakonec určíme, že tyto podmnožiny budou stejného typu jako zdrojová data tabulky, tj. výběr entit nebo kolekce.

Více informací

Více informací o této funkci naleznete v dokumentaci.

Závěr

Tato nová funkce opět ukazuje sílu aplikace 4D Write Pro, pokud jde o automatické vytváření dokumentů.

S přestávkami je učiněn další krok. Dejte nám vědět, co si myslíte o fóru 4D.

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í.