4D Write Pro: Přenos řádků je k dispozici!

Automaticky přeloženo z Deepl

Použití tabulek v dokumentech 4D Write Pro je častější, zejména proto, že je možné k nim přiřadit datový zdroj, který automaticky doplňuje jejich řádky!

S rostoucím počtem řádků je běžné, že se tyto tabulky automaticky rozdělí na několik částí, aby bylo možné provést stránkový nebo sloupcový zlom. V této situaci je někdy vhodné vložit (automaticky!) na konec každé části příslušných tabulek řádek „mezisoučet“. Ano, je to tak, ve 4D v19 R7 je to možné ?.

Ukázková databáze

Obrázek vydá za tisíc slov.

Obrázek vždy předčí dlouhé vysvětlování. Zde je to, co chceme získat:

Jak vidíte, každá část tabulky – kromě poslední – obsahuje další řádek, který se zde používá k zobrazení mezisoučtu.

To je často nutné, někdy dokonce zákonem vyžadované, například při úpravě dlouhých faktur.

JEDEN ŘÁDEK v šabloně, V KONEČNÉM DOKUMENTU JICH BUDE POTŘEBNÉ MNOHO.

Jak bylo uvedeno v úvodu, tato funkce je k dispozici pro všechny tabulky. Přesto se s ní počítá pouze v případě, že jsou tabulky spojeny s datovým zdrojem (kolekcí nebo výběrem entit). Jakmile je tato vlastnost aktivována, řádek bezprostředně následující za „opakovaným“ řádkem se stane řádkem přeneseným.

blank

Aktivaci této vlastnosti lze provést prostřednictvím rozhraní…

V obou rozhraních (na panelu nástrojů i na postranním panelu) obsahuje nabídka tabulky ( ) novou položku „Spodní přenesený řádek“.

blankblank

… Nebo naprogramováním

WP SET ATTRIBUTES($table ; wk bottom carry over row ; True | False)

DUPLICITNÍ NEBO NE?

Je nutné si uvědomit, že tento řádek, který je v šabloně jedinečný, bude po vyhodnocení dokumentu duplikován tolikrát, kolikrát bude třeba.

Všimněte si, že to nebude nutné, pokud se tabulka „vejde“ do jediného bloku. V takovém případě nebude přenesený řádek ve vyhodnocovaném dokumentu zastoupen.

V opačném případě bude vložen na konec každého bloku kromě posledního. Logicky by poslední část rozdělené tabulky neměla obsahovat mezisoučet, ale „celkový součet“. Proto v šabloně není přenosový řádek poslední, ale následují za ním poslední řádky tabulky.

OBSAH PŘENESENÝCH ŘÁDKŮ

Jak by měl být definován obsah buněk tohoto přenosového řádku?

Jak jste možná uhodli, vznikl nový atribut: previousItems, který lze použít následujícím způsobem:

This.previousItems.sum("price")

This.previousItems vrátí v závislosti na datovém zdroji tabulky buď kolekci, nebo výběr entit.

Tato množina obsahuje všechny položky, které již byly na aktuální stránce vyhodnoceny, a položky předchozí. Pro kolekce nebo výběry entit můžete použít všechny dostupné funkce (min/max/sum/atd.)!

Všimněte si, že pokud je funkce This.previousItems určena především pro použití v přenášených řádcích, není její použití omezeno na tento konkrétní kontext. Lze jej použít kdekoli v tabulce (kromě záhlaví) s různými hodnotami v každém kontextu.

Závěr

Tato nová vlastnost umožňuje zbavit se složitého kódu a obohatit tabulky při automatickém přeskakování stránek.
Užijte si vytváření krásných šablon a vyhněte se složitému kódování! A jako vždy si velmi ceníme vaší zpětné vazby. Zapojte se do diskuse na fóru 4D.

Další informace o přenášených řádcích si můžete přečíst v dokumentaci.

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