Tento dokument byl přeložen umělou inteligencí. V případě nepřesností se prosím obraťte na anglickou verzi
V rámci dodavatelského řetězce nebo obchodních scénářů je často nutné rychle generovat standardizovanou „Smlouvu o dodávkách a nákupu“ a dynamicky vyplňovat její obsah na základě informací ze zdrojů dat, jako jsou kupující, prodávající a detaily produktů. Níže Vám na příkladu zjednodušeného případu použití „Smlouvy“ ukážeme, jak nakonfigurovat a používat funkci „Tisk z šablony“ pro mapování datových informací na zástupné symboly v šablonách smluv, a tím automaticky generovat finální smluvní dokument.
V našem příkladu existují zhruba následující hlavní kolekce (ostatní irelevantní pole jsou vynechána):

Jelikož současný systém podporuje pouze tisk jednotlivých záznamů, klikneme na „Tisk“ na stránce „Detaily smlouvy“ a systém automaticky načte odpovídající záznamy smluv a související informace o stranách atd., a vyplní je do dokumentů Word nebo PDF.
Upozorňujeme, že náš plugin „Tisk z šablony“ je komerční plugin, který je třeba zakoupit a aktivovat, než budete moci provádět tiskové operace.

Potvrzení aktivace pluginu:
Na libovolné stránce vytvořte blok detailů (například pro uživatele) a zkontrolujte, zda v konfiguraci akcí existuje odpovídající možnost konfigurace šablony:


Vytvořte hlavní kolekci entit, kolekci smluv a kolekci položek produktů navržené výše (vyberte pouze klíčová pole).
| Kategorie pole | Zobrazovaný název pole | Field Name | Rozhraní pole |
|---|---|---|---|
| Pole primárních a cizích klíčů | |||
| ID | id | Celé číslo | |
| Buyer ID | buyer_id | Celé číslo | |
| Seller ID | seller_id | Celé číslo | |
| Asociační pole | |||
| Položky smlouvy | contract_items | Jeden k mnoha | |
| Kupující (strana A) | buyer | Mnoho k jednomu | |
| Prodávající (strana B) | seller | Mnoho k jednomu | |
| Obecná pole | |||
| Číslo smlouvy | contract_no | Jednořádkový text | |
| Datum zahájení dodávky | start_date | Datum a čas (s časovou zónou) | |
| Datum ukončení dodávky | end_date | Datum a čas (s časovou zónou) | |
| Poměr zálohy (%) | deposit_ratio | Procenta | |
| Dny platby po dodání | payment_days_after | Celé číslo | |
| Název bankovního účtu (příjemce) | bank_account_name | Jednořádkový text | |
| Název banky | bank_name | Jednořádkový text | |
| Číslo bankovního účtu (příjemce) | bank_account_number | Jednořádkový text | |
| Celková částka | total_amount | Číslo | |
| Kódy měn | currency_codes | Jednoduchý výběr | |
| Poměr zůstatku (%) | balance_ratio | Procenta | |
| Dny zůstatku po dodání | balance_days_after | Celé číslo | |
| Místo dodání | delivery_place | Dlouhý text | |
| Jméno signatáře strany A | party_a_signatory_name | Jednořádkový text | |
| Titul signatáře strany A | party_a_signatory_title | Jednořádkový text | |
| Jméno signatáře strany B | party_b_signatory_name | Jednořádkový text | |
| Titul signatáře strany B | party_b_signatory_title | Jednořádkový text | |
| Systémová pole | |||
| Vytvořeno v | createdAt | Vytvořeno v | |
| Vytvořeno uživatelem | createdBy | Vytvořeno uživatelem | |
| Poslední aktualizace v | updatedAt | Poslední aktualizace v | |
| Poslední aktualizace uživatelem | updatedBy | Poslední aktualizace uživatelem |
| Kategorie pole | Zobrazovaný název pole | Field Name | Rozhraní pole |
|---|---|---|---|
| Pole primárních a cizích klíčů | |||
| ID | id | Celé číslo | |
| Obecná pole | |||
| Název strany | party_name | Jednořádkový text | |
| Adresa | address | Jednořádkový text | |
| Kontaktní osoba | contact_person | Jednořádkový text | |
| Kontaktní telefon | contact_phone | Telefon | |
| Pozice | position | Jednořádkový text | |
| Webové stránky | website | URL | |
| Systémová pole | |||
| Vytvořeno v | createdAt | Vytvořeno v | |
| Vytvořeno uživatelem | createdBy | Vytvořeno uživatelem | |
| Poslední aktualizace v | updatedAt | Poslední aktualizace v | |
| Poslední aktualizace uživatelem | updatedBy | Poslední aktualizace uživatelem |
| Kategorie pole | Zobrazovaný název pole | Field Name | Rozhraní pole |
|---|---|---|---|
| Pole primárních a cizích klíčů | |||
| ID | id | Celé číslo | |
| Contract ID | contract_id | Celé číslo | |
| Asociační pole | |||
| Smlouva | contract | Mnoho k jednomu | |
| Obecná pole | |||
| Název produktu | product_name | Jednořádkový text | |
| Specifikace / Model | spec | Jednořádkový text | |
| Množství | quantity | Celé číslo | |
| Jednotková cena | unit_price | Číslo | |
| Celková částka | total_amount | Číslo | |
| Datum dodání | delivery_date | Datum a čas (s časovou zónou) | |
| Poznámka | remark | Dlouhý text | |
| Systémová pole | |||
| Vytvořeno v | createdAt | Vytvořeno v | |
| Vytvořeno uživatelem | createdBy | Vytvořeno uživatelem | |
| Poslední aktualizace v | updatedAt | Poslední aktualizace v | |
| Poslední aktualizace uživatelem | updatedBy | Poslední aktualizace uživatelem |
Zadejte ukázková data:


Pravidla propojení nakonfigurujte takto, aby se automaticky vypočítala celková cena a zbývající platby:

Vytvořte blok zobrazení, po potvrzení dat povolte akci „Tisk z šablony“:


Přidejte konfiguraci šablony, například „Smlouva o dodávkách a nákupu“:


Dále přejděte na záložku Seznam polí, kde uvidíte všechna pole aktuálního objektu. Po kliknutí na „Kopírovat“ můžete začít vyplňovat šablonu.

Soubor šablony smlouvy Word
Předem si připravte šablonu smlouvy (soubor .docx), například: SUPPLY AND PURCHASE CONTRACT.docx
V tomto příkladu uvádíme zjednodušenou verzi „Smlouvy o dodávkách a nákupu“, která obsahuje ukázkové zástupné symboly:
{d.contract_no}: Číslo smlouvy{d.buyer.party_name}、{d.seller.party_name}: Jména kupujícího a prodávajícího{d.total_amount}: Celková částka smlouvyDále můžete zkopírovat pole z vaší kolekce a vložit je do dokumentu Word.
Vyplňování základních polí:
Například číslo smlouvy v horní části nebo objekt smluvní strany. Klikněte na kopírovat a vložte jej přímo do odpovídajícího prázdného místa ve smlouvě.


V šablonách často potřebujeme formátovat pole, zejména pole data. Přímo zkopírovaný formát data je obvykle dlouhý (například St 01. ledna 2025 00:00:00 GMT) a je třeba jej formátovat tak, aby zobrazoval požadovaný styl.
Pro pole data můžete použít funkci formatD() k určení výstupního formátu:
Příklad:
Například, pokud je původní pole, které jsme zkopírovali, {d.created_at}, a potřebujeme formátovat datum do formátu 2025-01-01, pak toto pole upravíme na:
Běžné styly formátování data:
YYYY - Rok (čtyři číslice)MM - Měsíc (dvě číslice)DD - Den (dvě číslice)HH - Hodina (24hodinový formát)mm - Minutyss - SekundyPříklad 2:
Předpokládejme, že existuje pole pro částku, například {d.total_amount} ve smlouvě. Můžeme použít funkci formatN() k formátování čísel, specifikaci desetinných míst a oddělovače tisíců.
Syntaxe:
2 znamená dvě desetinná místa.true nebo false.Příklad 1: Formátování částky s oddělovačem tisíců a dvěma desetinnými místy
Toto naformátuje d.amount na dvě desetinná místa a přidá oddělovač tisíců.
Příklad 2: Formátování částky na celé číslo bez desetinných míst
Toto naformátuje d.amount na celé číslo a přidá oddělovač tisíců.
Příklad 3: Formátování částky na dvě desetinná místa, ale bez oddělovače tisíců
Zde je oddělovač tisíců zakázán a zachovávají se pouze dvě desetinná místa.
Další potřeby formátování částek:
Pro řetězcová pole můžete použít :upperCase k určení formátu textu, například převodu velikosti písmen.
Syntaxe:
Běžné metody převodu:
upperCase - Převést na velká písmenalowerCase - Převést na malá písmenaupperCase:ucFirst - Velké písmeno na začátkuPříklad:
Když potřebujeme tisknout tabulku obsahující více podpoložek (například detaily produktů), obvykle je nutné použít cyklický tisk. Tímto způsobem systém vygeneruje řádek obsahu pro každou položku v seznamu, dokud nejsou zpracovány všechny položky.
Předpokládejme, že máme seznam produktů (například contract_items), který obsahuje více objektů produktů. Každý objekt produktu má více atributů, jako je název produktu, specifikace, množství, jednotková cena, celková částka a poznámky.
Krok 1: Vyplňte pole v prvním řádku tabulky
Nejprve v prvním řádku tabulky (nikoli v záhlaví) přímo zkopírujeme a vyplníme proměnné šablony. Tyto proměnné budou nahrazeny odpovídajícími daty a zobrazeny ve výstupu.
Například první řádek tabulky vypadá takto:
| Název produktu | Specifikace / Model | Množství | Jednotková cena | Celková částka | Poznámka |
|---|---|---|---|---|---|
| {d.contract_items[i].product_name} | {d.contract_items[i].spec} | {d.contract_items[i].quantity} | {d.contract_items[i].unit_price} | {d.contract_items[i].total_amount} | {d.contract_items[i].remark} |
Zde d.contract_items[i] představuje i-tou položku v seznamu produktů a i je index, který představuje pořadí aktuálního produktu.
Krok 2: Upravte index ve druhém řádku
Dále ve druhém řádku tabulky upravíme index pole na i+1 a vyplníme pouze první atribut. To proto, že během cyklického tisku potřebujeme načíst další položku dat ze seznamu a zobrazit ji v dalším řádku.
Například druhý řádek se vyplní takto:
| Název produktu | Specifikace / Model | Množství | Jednotková cena | Celková částka | Poznámka |
|---|---|---|---|---|---|
| {d.contract_items[i+1].product_name} |
V tomto příkladu jsme změnili [i] na [i+1], takže můžeme získat další data produktu v seznamu.
Krok 3: Automatický cyklický tisk během vykreslování šablony
Když systém zpracovává tuto šablonu, bude fungovat podle následující logiky:
d.contract_items, cyklicky vyplňovat každý řádek ve formátu tabulky, dokud nebudou vytištěny všechny detaily produktu.Index i v každém řádku se bude zvyšovat, což zajistí, že každý řádek zobrazuje různé informace o produktu.


V tomto okamžiku opusťte aktuální vyskakovací okno a klikněte na „Stáhnout šablonu“, abyste získali vygenerovanou kompletní šablonu.
Tipy:
.doc nebo jiné formáty, může být nutné ji převést na .docx, v závislosti na podpoře pluginu.Přejeme Vám úspěšné používání! Díky funkci „Tisk z šablony“ můžete výrazně ušetřit opakovanou práci při správě smluv, vyhnout se chybám při ručním kopírování a vkládání a dosáhnout standardizovaného a automatizovaného výstupu smluv.