Vytvoření dokumentu DOCX
Průvodce vytvořením tiskové šablony z dokumentu DOCX
Tento postup popisuje, jak generovat dokumenty DOCX v aplikaci Team assistant (TAS) na základě předem připravené šablony aplikace Word. Potřebné údaje z úkolu v TAS budou automaticky vyplněny do šablony.
Případy použití
- Generování protokolu podání na základě odeslané pošty v rámci společnosti.
- Vytvoření podpisového listu dokumentu vygenerovaného ze schvalovací matice pro proces.
- Sestavení smlouvy na základě vybraných atributů v TAS.
Příprava šablony dokumentu
Vytvořte dokument aplikace Word s pevným obsahem, jako jsou záhlaví, zápatí a obecná struktura. Pomocí speciálních značek označte, kam mají být vkládána data z TAS. Tyto značky používají k otevírání a zavírání trojité znaménko plus ( +++
). Název proměnné, definovaný ve výpočtech TAS, je umístěn mezi tagy.
+++companyName+++
Příklad:
📄 Stáhněte si dokument - DOCX_document_creation-template.docx
Seznamy s odrážkami v šabloně
Definujte proměnnou seznamu v TAS a iterujte ji pomocí
Word šablona:
+++FOR myBullet IN myBullets+++
• +++= $myBullet+++
+++END-FOR myBullet+++
Výpočet TAS:
const myBullets = vars['list'].getValue();
Obrázky v šabloně
Dynamické vkládání obrázků:
Word šablona:
+++IMAGE workerSignature()+++
Výpočet TAS:
const workerSignatureBase64 = workerSignatureFileName ? lib.getFileContents(`${signaturesAndStampsPath}/${workerSignatureFileName}`, 'base64') : '';
let generated = docx.docxTemplater({
template,
data: docxData,
processLineBreaksAsNewText: true,
additionalJsContext: {
workerSignature: func => {
let data = workerSignatureBase64;
return {
width: signatureWidth,
height: signatureHeight,
data,
extension: '.png'
};
}
}
});
Dynamické tabulky
Tato struktura iteruje přes každý řádek v tabulce a vkládá příslušné hodnoty do sloupců.
Word šablona:
Index | Kód | Jméno |
+++ PRO řádek v typeOfCost+++ | ||
+++= $řádek.DTV_INDEX+++ | +++= $row.COL_1+++ | +++= $řádek.COL_2+++ |
+++KONEC-PRO řádek+++ |
Výpočet TAS:
const myTable = vars['table'].getValue();
Vytváření dynamických řádků
Toto prochází každý řádek a vkládá relevantní hodnoty do tabulky.
Word šablona:
Název objednávky | Cena |
+++PRO index v Array.from(Array(items.itemName.length).keys())+++ | |
+++= items.itemName[$index] +++ | +++= položky. jednotková cena[$index] +++USD |
+++END-FOR index+++ |
|
Výpočet TAS:
const myDynamicRows = vars['dynRows'].getValue();
Nahrání šablony do TAS
- Přejděte na kartu "Dokumenty" v TAS.
- Klikněte na "Nahrát soubor" a vyberte připravený dokument aplikace Word.
- Najděte nahraný dokument pomocí filtrů v části „Dokumenty“ > „Vše“.
- Otevřete konzolu prohlížeče (stiskněte F12).
- Přejděte na kartu "Síť" a filtrujte nahraný dokument.
- Zkopírujte hodnotu odpovědi po
"DMS:"
Příklad cesty:
DMS:_7d5/template-podaciArch.docx.7d5fd45a805c10856ed4b07b9ce9048b.1.1655895144727
- Vložte zkopírovanou cestu k souboru do úlohy, kde se má vygenerovat DOCX:
const template = lib.getFileContents('/srv/dms-data/neworigin/storage/_7d5/template-podaciArch.docx.7d5fd45a805c10856ed4b07b9ce9048b.1.1655895144727', 'buffer');
Generování dokumentu DOCX
V rámci konkrétní úlohy, kde bude dokument generován:
- Definujte proměnné ve výpočtu:
const companyName = vars['companyName'].getValue();
const date = moment(vars['today'].getValue()).format('MMMM D, YYYY');
const items = vars['itemsDR'].getJSON();
const itemsDT = JSON.parse(vars['itemsDT'].IVAR_MULTI_SELECTED);
const internalCaseNr = vars['internalCaseNr'].getValue();
const typeOfCost = dt.from("001-typeOfCost").get(); - Definujte cestu šablony dokumentu:
const template = lib.getFileContents('/srv/dms-data/neworigin/storage/_7d5/template-podaciArch.docx.7d5fd45a805c10856ed4b07b9ce9048b.1.1655895144727', 'binary');
- Vygenerujte dokument pomocí funkce šablony TAS:
const generated = docx.docxTemplater({
template,
data: {
companyName,
date,
items,
itemsDT,
internalCaseNr,
typeOfCost
}
}); - Uložte vygenerovaný dokument:
lib.storeAttachment('template_generated.docx', generated, false);
Tento proces vygeneruje dokument na základě šablony a vloží příslušné hodnoty.
Updated
by Anna Gernát