Vytváření dokumentů MS Word a MS Excel: Porovnání verzí
Skočit na navigaci
Skočit na vyhledávání
Řádek 16: | Řádek 16: | ||
Begin | Begin | ||
GetTemp(sTempDir) | GetTemp(sTempDir) | ||
− | sTempFile := sTempDir+ "\predavak. | + | sTempFile := sTempDir+ "\predavak.docx" |
− | ExportFromTemplatesExt("attachments\Protokoly\Předávací protokol. | + | ExportFromTemplatesExt("attachments\Protokoly\Předávací protokol.docx" ,sTempFile,i,actualDocument) //export šablony do dočasného souboru v adresáři temp |
WordOpen(sTempFile) //nevizuální otevření šablony | WordOpen(sTempFile) //nevizuální otevření šablony | ||
s := wkf.datum //funkce WordReplaceAll očekává hodnotu typu String. Proto je nutné proměnné typu Date nejprve uložit do typu String a teprve následně volat funkci WordReplaceAll | s := wkf.datum //funkce WordReplaceAll očekává hodnotu typu String. Proto je nutné proměnné typu Date nejprve uložit do typu String a teprve následně volat funkci WordReplaceAll | ||
− | WordReplaceAll(" | + | WordReplaceAll("enT_datum",s,iRC) //nahrazení klíčového slova v šabloně skutečnou hodnotou z proměnné |
s := actuser.firstname + " " + actuser.name //proměnná "s" bude obsahovat křestní jméno a příjmení aktuálně přihlášeného uživatele | s := actuser.firstname + " " + actuser.name //proměnná "s" bude obsahovat křestní jméno a příjmení aktuálně přihlášeného uživatele | ||
− | WordReplaceAll(" | + | WordReplaceAll("enT_autor",s,iRC) |
− | WordReplaceAll(" | + | WordReplaceAll("enT_společnost",wkf.sml_zakaznik,iRC) |
WordClose(true) //uzavření nevizuálně spuštěné aplikace MS Word s uložením změn | WordClose(true) //uzavření nevizuálně spuštěné aplikace MS Word s uložením změn | ||
DocumentImportExt("doc","Předávací protokol",sTempFile ,"_newdocument_",s,actualdocument) //import nové přílohy do procesu | DocumentImportExt("doc","Předávací protokol",sTempFile ,"_newdocument_",s,actualdocument) //import nové přílohy do procesu |
Verze z 11. 7. 2019, 12:16
Pomocí připravených funkcí je možné jednoduše vytvářet, nebo editovat soubory typu MS Word a MS Excel. Do jisté míry je podporován také balík Open Office. Funkce pro práci s těmito soubory jsou připraveny v knihovně rozšiřujících funkcí ActualDocument.dll
Princip generování dokumentů
- V šablonách aplikace enTeam Workflow manager jsou uloženy šablony dokumentů, ze kterých skript vytváří skutečné soubory. V enTeam Workflow designer je možné zobrazit správu šablon v menu "Nástroje/Administrace/Vzory dokumentů".
- Sice mluvíme o šablonách, ale jde přímo o finální dokumenty, které však musí splňovat určité předpoklady.
- V případě souboru typu *.doc, případně *.docx jsou na místech, do kterých chceme uložit hodnoty proměnných workflow, zapsána klíčová slova, která následně skript nahrazuje za hodnoty zmíněných proměnných.
- V případě souboru typu *.xls, případně *.xlsx předpokládáme, že skriptovací jazyk bude ukládat, nebo číst hodnoty z předem daných buněk
Vytvoření předávacího protokolu typu MS Word ze šablony
Pro správné fungování následujícího příkladu je nutné do skriptu doplnit definice funkcí z knihovny ActualDocument.dll
Ukázka šablony: Média:Predavaci_protokol.docx
Script PredavaciProtokolTypuDOC (): Boolean Var sTempFile,sTempDir, s : String i, iRC : Integer Begin GetTemp(sTempDir) sTempFile := sTempDir+ "\predavak.docx" ExportFromTemplatesExt("attachments\Protokoly\Předávací protokol.docx" ,sTempFile,i,actualDocument) //export šablony do dočasného souboru v adresáři temp WordOpen(sTempFile) //nevizuální otevření šablony s := wkf.datum //funkce WordReplaceAll očekává hodnotu typu String. Proto je nutné proměnné typu Date nejprve uložit do typu String a teprve následně volat funkci WordReplaceAll WordReplaceAll("enT_datum",s,iRC) //nahrazení klíčového slova v šabloně skutečnou hodnotou z proměnné s := actuser.firstname + " " + actuser.name //proměnná "s" bude obsahovat křestní jméno a příjmení aktuálně přihlášeného uživatele WordReplaceAll("enT_autor",s,iRC) WordReplaceAll("enT_společnost",wkf.sml_zakaznik,iRC) WordClose(true) //uzavření nevizuálně spuštěné aplikace MS Word s uložením změn DocumentImportExt("doc","Předávací protokol",sTempFile ,"_newdocument_",s,actualdocument) //import nové přílohy do procesu FileDelete(sTempFile) //smazání dočasného souboru v adresáři Temp Result := True End
Vyplnění šablony objednávky typu MS Excel
Declare function ExcelOpenFromTemplates dll "actualDocument" (string,string,string,string,pointer):boolean Declare procedure ExcelWrite dll "actualDocument" (string,string,string) Declare function ExcelCloseFromTemplates dll "actualDocument" (string,string,Boolean,Boolean,string,pointer):boolean Script ObjednavkaTypuXLSX (): Boolean Var sTempFile, s : String b : Boolean Begin //následující příkaz v sobě kombinuje několik příkazů: nalezne adresář TEMP, exportuje šablonu a nevizuálně otevře MS Excel ExcelOpenFromTemplates("Attachments\Objednavky\objednavka.xlsx","List1","",sTempDir,actualDocument) ExcelWrite("b","2",wkf.firma) //do buňky "b2" zapíše hodnotu z proměnné wkf.firma ExcelWrite("b","4",wkf.firma1D) ExcelWrite("b","7",wkf.popis1) s := wkf.cena //proměnnou typu Currency uloží do proměnné typu String ExcelWrite("c","19",s) //následující příkaz importuje šablonu jako novou přílohu procesu, smaže dočasný soubor a uzavře nevizuální aplikace MS Excel b := ExcelCloseFromTemplates("Objednávka","",true,true,"_newdocument_",actualDocument) End
Zpět na stránku Prováděcí skripty