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

#1 7. 6. 2011 14:21:53

nezapamatovatelnejmeno
Člen
Registrace: 15. 7. 2010
Příspěvků: 24

Tisk určitého listu pomocí makra VYŘEŠENO

Prosím o radu: jak vytisknout určitý list v sešitu bez zobrazení dialogového okna?
Našel jsem toto: http://forum.openoffice.cz/viewtopic.php?id=977, ale to je pro tisk určitých buněk v listu, zdá se mi to pro můj účel příliš složité (definovat buňky atd.).
Nebo toto, o mnoho jednodušší:

Dim PrintProperty(0) as New com.sun.star.beans.PropertyValue

PrintProperty(0).Name = "Pages"

PrintProperty(0).Value = "1;3-5;9"

thisComponent.Print (PrintProperty)

ale to zřejmě funguje jen pro stránky Writeru.
Nastavení pomocí area lze najít bez problémů, ale opět - tolik příkazů a parametrů, výmaz rozsahu tisku pomocí cyklu a opět nastavení..?
Má laická představa: definuji list k tisku, zadám příkaz k tisku - nevíte o něčem takovém?
Měl jsem na to makro, které fungovalo v 3.2.1, asi to nebylo příliš košer, ale jelo. Ve 3.3.0 nejede.
Děkuji za odpověď.

Editoval nezapamatovatelnejmeno (7. 6. 2011 14:23:48)

Offline

#2 7. 6. 2011 20:24:19

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

Re: Tisk určitého listu pomocí makra VYŘEŠENO

Pokud nebudete tisknout jiný list můžete si na tom který je k tisku určen nastavit oblast tisku
přes Formát -> Oblast tisku -> Definovat a pak tisknout klasicky přes ikonu tiskárny.

Další možností je nastavit si přes Nástroje -> Volby -> Calc -> Tisk, že chcete tisknout pouze vybrané listy (tzn. pouze list který je v okamžiku tisku aktivní).

A nakonec si můžete nahrát makro přes Nástroje -> Makra -> Zaznamenat makro kde si vytisknete konkrétní list a ukončíte nahrávání, uložíte a máte to.

Samozřejmě je možné kombinovat
;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

#3 8. 6. 2011 06:11:35

nezapamatovatelnejmeno
Člen
Registrace: 15. 7. 2010
Příspěvků: 24

Re: Tisk určitého listu pomocí makra VYŘEŠENO

Děkuji za odpovědi,ale bohužel nepomohly. Pro vysvětlení: Na Listu1 mám formulář sloužící k zadání dat, na Listu2 a Listu3 mám naformátované stránky, které přebírají data z formuláře. Po spuštění makra mi to v OOo 3.2.1 fungovalo takto: aktivoval se příslušný List(2 nebo 3), vytiskl se a aktivoval se opět List1.
ad1 - Oblast tisku mohu definovat jen pro aktuální list, makro přechází na jiný;
ad2 - ve volbách mám nastaveno;
ad3 - Při nahrávání makra dosáhnu jen toho, že se mi otevře dialog pro potvrzení tisku.
Mým cílem je spustit makro, které zvýší číselnou řadu v záhlaví, vytiskne, zvýší.., vytiskne.., bez toho, abych něco přepisoval a mačkal na klávesnici. Jenom bych zakládal nové tiskopisy do tiskárny. Zajímavé je, že při krokování makra mi to funguje, ale při ostrém nasazení se tiskne vždy jen List1 - formulář.
Poradí někdo?

Editoval nezapamatovatelnejmeno (8. 6. 2011 11:39:08)

Offline

#4 8. 6. 2011 12:00:33

nezapamatovatelnejmeno
Člen
Registrace: 15. 7. 2010
Příspěvků: 24

Re: Tisk určitého listu pomocí makra VYŘEŠENO

Pokud by to někdo potřeboval, našel jsem řešení: http://user.services.openoffice.org/en/ … 20&t=35043.
Vtip byl v tom příkazu wait 500 po přechodu na daný list. Nevím proč to tak je, ale funguje to.

Offline

#5 8. 6. 2011 15:06:29

j-pastierik
Člen
Registrace: 15. 11. 2004
Příspěvků: 761

Re: Tisk určitého listu pomocí makra VYŘEŠENO

Príkaz "wait 500" v podstate zodpovedá synchronizácii tlače OO.o s operačným systémom, "čistejšie" riešenie je napr. takéto (z http://dennik.inet.sk/clanok/10947-makr … c-suborov/ ):

 aMediaDesc(0).Name = "Wait" ' Tlač musíme synchronizovať
 aMediaDesc(0).Value = TRUE
 oDokument.print(aMediaDesc()) ' Vytlačíme súbor

Offline

#6 8. 6. 2011 20:52:04

mirozm
Člen
Registrace: 9. 1. 2006
Příspěvků: 49

Re: Tisk určitého listu pomocí makra VYŘEŠENO

No môžem ponúknuť dve makrá. Prvé je v podstate makro záznamníka a je ho potrebné spustiť v aktuálnom liste a v možnostiach OOo Calc musí byť nastavená možnosť Tlačiť len vybrané listy. Makro si priraďte k nejakému tlačidlu, ktoré si vytvoríte v liste:

sub tlacit
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Copies"
args1(0).Value = 1
args1(1).Name = "Collate"
args1(1).Value = true
dispatcher.executeDispatch(document, ".uno:Print", "", 0, args1())
end sub

a druhé, kde je určený názov listu, kde tak isto musí byť nastavené v možnostiach OOo Calc  Tlačiť len vybrané listy  a je ho potrebné spustiť v aktuálnom liste:


sub tlac
dim oDoc,oSheet as object
oDoc=ThisComponent
oSheet=oDoc.Sheets.getByName("tlac")'sem namiesto "tlac" dopíšte "názov listu" čo chcete tlačiť
oDoc.Print(Array())
end sub

Editoval mirozm (8. 6. 2011 20:59:12)


LO 5.1.6  platforma Ubuntu-linux 16.04

Offline

#7 8. 6. 2011 21:21:03

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

Re: Tisk určitého listu pomocí makra VYŘEŠENO

nezapamatovatelnejmeno napsal(a)

ad1 - Oblast tisku mohu definovat jen pro aktuální list, makro přechází na jiný;


Tiskovou oblast si můžete nastavit na každém listě i když není aktivní. Nastavujete přes Formát -> Oblast tisku -> Definovat. Pak stačí makro na vseobecný tisk. Ve volbách zakažte Tisk vybraných listů.


sub tiskni
doc=thisComponent
dim a()as new com.sun.star.beans.PropertyValue
doc.print(a())
end sub

Vytisknou se vybrané tiskové oblasti bez nutnosti je makrem definovat.

;o)

Editoval sedlacekdan (8. 6. 2011 21:37:53)


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

#8 10. 6. 2011 06:57:52

nezapamatovatelnejmeno
Člen
Registrace: 15. 7. 2010
Příspěvků: 24

Re: Tisk určitého listu pomocí makra VYŘEŠENO

Děkuji za odpovědi. Vyzkouším.

Offline

Zápatí