Toto je starší verze dokumentu!
Obsah
Výstupy do OpenOffice calc
Vzorce pro počítání hodnot na jednotlivých řádcích
V OpenOffice šablonách se při použití vzorců drží absolutní odkazy na buňky. Pokud chceme používat vzorce musí se odkazovat na buňky pomocí funkce indirect() a cell(). Cell() vrací info o buňce, ve které je vzorec, Indirect() převádí řetězec na odkaz na buňku.
Příklad: chci na řádku ve vzorci sečíst sloupce F a K - vzorec bude:
=INDIRECT(CONCATENATE("F";CELL("ROW")))+INDIRECT(CONCATENATE("K";CELL("ROW")))
Makro na odstránkování podle textu v buňce
Pokud se tiskne do OpenOffice calc více záznamů, které je třeba tisknout tak, aby hlavička každého zázamu začínala na samostatném listě, je možné použít následující makro. Pro každou šablonu je nutné specificky doupravit kde a co hledat (zalomení stránky se dá nad buňku, která obsahuje hledaný text) - v následujícím příkladu se na prvním listu v rozsahu J1:J3000 hledá text "Dodací list".
Pro automatické spuštění po otevření dokumentu je nutné makro "navěsit" např. na akci Otevřít dokument (menu Nástroje → Přizpůsobit → Události). Pozor potom na úpravu šablony - při každém otevření se přidá ruční zalomení.
sub ZalomitStranku dim document as object dim dispatcher as object dim Sheet, CellRange, Descriptor, Found As Object document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") Sheet = ThisComponent.getSheets().getByIndex(0) 'hledej na prvnim listu CellRange=Sheet.getCellRangeByName("J1:J3000") 'hledej ve sloupci J Descriptor=CellRange.createSearchDescriptor() With Descriptor .SearchCaseSensitive=False .SearchString="Dodací list" .SearchType=1 'Search for values, not just formulas. This is an undocumented property .SearchWords=True 'Search the whole cell, not just part of it End With Found=Sheet.findAll(Descriptor) 'najit vsechno podle .SearchString dim args1(0) as new com.sun.star.beans.PropertyValue For i=0 to Found.Count-1 'MsgBox Found(i).AbsoluteName args1(0).Name = "ToPoint" args1(0).Value = Found(i).AbsoluteName dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1()) dispatcher.executeDispatch(document, ".uno:InsertRowBreak", "", 0, Array()) Next 'skok zpatky na A1 args1(0).Name = "ToPoint" args1(0).Value = "$A$1" dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1()) end sub
Výstupy do OpenOffice writer
Bandy se oddělují pomocí Poznamek Ctrl+Alt+N.
- Band se pojmenovává pomocí textu v poznámce BandName="body_table_name".
- CommandBand se nastavuje pomoci textu v poznámce Options="commandband,pripadny_dalsi_option"
Config pro report se nastavuje též pomocí poznamek. Např. nastavení výstupního souboru:
BandName="config_output" Options="#@return HOMEDIR()..[[pokus.odt]]#"
Fieldy jsou jako v html #FieldName#
Vypnout náhrady uvozovek: "Nástroje|Automatické opravy|Vlastní uvozovky"
Podepisování PDF elektronickým podpisem
Podepsaný ODT soubor nelze uložit jako podepsané PDF. Pomocí Adobe Reader se dají podepisovat pouze PDF dokumenty, které byly při vytvoření speciálně označeny - běžné nelze. Je nutné použít např. JSignPdf. Postup viz. http://www.openoffice.cz/navody/jak-elektronicky-podepsat-pdf.
Lze také stáhnout extension do OpenOffice