Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 10. 3. 2013 11:18:25

jelinekm
Člen
Registrace: 10. 2. 2009
Příspěvků: 6

Makro pro export do PDF

Dobrý den,

jsem v makrech úplný začátečník a potřeboval bych poradit. Mám 2 listy v Calcu, na List1 je tabulka ve které jsou umístěna data, která jsou na List2 generována do tiskové sestavy. List2 je automatizován pomocí funkce INDIRECT na základě hodnoty buňky List2.A1, při změně hodnoty a vystoupení z buňky se automaticky hodnoty v buňkách List2 mění. Počet řádků na List1 může být 5 a také 500, začíná vždy až od 2. řádku (1. řádek jsou názvy sloupců)
Potřebuji vytvořit makro, které zjistí počet řádků v tabulce na List1 ve sloupci A a poté pro každý řádek vygeneruje PDF z List2 s názvem z aktuálního řádku z List1.

Můžete mi, prosím poradit, jak na to?

Díky

Martin

Offline

#2 11. 3. 2013 14:32:39

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,468

Re: Makro pro export do PDF

Jestli tomu dobře rozumím, tak z tabulky 1 se tahají údaje, které mají individuální délku tiskové sestavy. Každý údaj má jinak "dlouhou" tiskovou sestavu. Prakticky například tabulka 1 bude obsahovat
100 údajů = 100 tiskových sestav (každá jinak "dlouhá").


Makro by pak mělo umět vyexportovat všechny tiskové sestavy v PDF tak, aby neobsahovaly zbytečně prázdné listy. otázkou je, zda se mají údaje z prvního řádku (2.list) opakovat v každé PDF stránce, nebo jen v první, nebo se nemají objevit vůbec.

Pokud jsem to správně pochopil tak potřebujete aby makro vygenerovalo tiskovou sestavu v PDF, přepsalo číslo řádku z INDIRECTU a znovu export tiskové sestavy do PDF. To opakovat dokud na listu 1 nedojede k poslednímu řádku. Je - li tomu tak potvrďte, nebo upřesněte.


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 11. 3. 2013 19:10:15

sedlacekdan
Moderátor
Místo Nehvizdy
Registrace: 21. 6. 2010
Příspěvků: 617

Re: Makro pro export do PDF

Samotné makro pro export do PDF je celkem jednoduché, co je nutné vyřešit:


Jestli jsem to správně pochopil, tak List2 obsahuje vždy pouze jeden záznam (řádek z Listu1), zřejmě poslední záznam.
Potřebujete vytvořit cyklus, který bude mít za počátek druhý řádek Listu1 a za konec číslo posledního použitého řádku, který bude automaticky měnit údaje na List2 po jednotlivých řádcích List1 - dá se řešit více způsoby.


Ten export do PDF - je nutné zadat cestu - lze přímo, nebo se dá použít i adresář kde je dokument uložen. Název PDF - myslíte číslo řádku?


Makro bude při větším počtu řádků časově náročnější.


S cykly Vám pomůže tento článek Cykly v makrech. Export do PDF makrem teprve vyjde, takže nejjednodušší cesta je:

sub pdf
doc = thisComponent
adr = left (doc.url, len (doc.url)-4)+".pdf" ' prosté přejmenování dokumentu s koncovkou .pdf - je uloženo ve stejném
'adresáři jako originální dokument, 
dim podminka_filtru (0) as new com.sun.star.beans.PropertyValue
podminka_filtru (0).Name = "PageRange"
podminka_filtru (0).Value = "1-5" ' pro strany 1-5
dim podminka_exportu (1) as new com.sun.star.beans.PropertyValue
podminka_exportu (0).Name = "FilterName"
podminka_exportu (0).Value = "calc_pdf_Export"
podminka_exportu (1).Name = "FilterData"
podminka_exportu (1).Value = podminka_filtru
doc.storeToURL (adr, podminka_exportu ())
end sub

Zkuste si kód upravit a pokud nebude fungovat, vložte ho sem.
Bez dokumentu, ve kterém se má makro spouštět Vám asi víc neporadím.


;o)


Linux Mint 16 Petra - Apache OpenOffice 4.0.1
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

Zápatí