Skočiť na obsah Skočiť na menu

Inet.sk - internetový denník

internetový denník

Makrá v OpenOffice.org – jednoduchá faktúra pre podnikateľov

Hľadáte program pre tlač dvoch kópií faktúry vo formáte A5 na jednu stranu A4? Vytvorte si ju v OpenOffice.org, skopírujte pomocou makra a vytlačte.


 

Mnohí podnikatelia (napríklad slobodní umelci, ale aj tzv. „zamestnanci na živnosť“) potrebujú vystaviť faktúry iba občas, pričom ich faktúry nepresahujú veľkosť A5. V takýchto prípadoch je vhodné, aby (v rámci šetrenia papierom, t. j. lesov) kópiu pre seba aj odberateľa vytlačili na jednu stranu bežného papiera vo formáta A4.

Za týmto účelom si môžete v module Writer pripraviť dve tabuľky, ktorých obsah budú predstavovať vlastné faktúry. Pravdaže, pri vlastnej práci by bolo nepohodlné, aby ste ich museli vypisovať dvakrát, a preto je potrebné, aby ste si pripravili aj makro, pomocou ktorého dokážete skopírovať obsah jednej tabuľky do druhej. Pre jednoduchú prácu je zároveň vhodné, aby ste si do tlačiva vložili tlačidlo, pomocou ktorého faktúru skopírujete a pre ešte pohodlnejšiu prácu je možné do tlačiva vložiť aj tlačidlo pre tlač faktúry.

Pre podnikateľov, ktorí nie sú platcami DPH, sme preto pripravili jednoduché tlačivo faktúr, ktoré obsahuje spomínané funkcie. Ako písmo je použité Open Source písmo Linux Libertine – linuxlibertine.sourceforge.net. Pozor, dokument obsahuje makrá, ktoré je potrebné pri jeho otváraní povoliť.



Pre správnu funkciu je potrebné vypísať prvú („hornú“) faktúru a následne stlačiť tlačidlo Kopíruj. Týmto sa všetky údaje (úplne všetky, vrátane názvu „FAKTÚRA č.“) prenesú do druhej („dolnej“) faktúry. Pre zjednodušenie práce je pod tlačidlom Kopíruj umiestnené tlačidlo Tlač, pomocou ktorého môžete oboje faktúry ihneď vytlačiť a medzi faktúrami sú vložené aj orezové značky pre rozdelenie papiera na dve polovice.



Pravdaže, všetky prednastavené údaje si každý musí najprv upraviť podľa svojej potreby. Ešte upozorňujeme, že pri kopírovaní sa neprenáša formátovanie (veľkosť písma, jeho rez – tučné písmo, kurzíva) a ani sa nemenia veľkosti buniek tabuľky, pomocou ktorej sú faktúry vytvorené a preto, pokiaľ chcete zmeniť tieto nastavenia, musíte tak urobiť v obidvoch faktúrach.



Stiahnite si tlačivo faktúr v slovenskom alebo českom jazyku.

A pre programátorov teraz uvádzame vlastné makro pre kopírovanie obsahov tabuliek a tlač dokumentu:

REM Funkcia na výmaz znaku LF z reťazca
function Vymaz_LF (S as string) as string
 dim ps as string
 ps=s
 while instr(ps,chr$(10))<>0 ' Pokiaľ je v reťazci LF
  i=instr(ps,chr$(10)) ' Poloha LF
  ps=left(ps,i-1)+right(ps,len(ps)-i) ' Ľavá časť pred LF + pravá časť za LF
 wend
 Vymaz_LF=ps
end function

REM Procedúra skopíruje "hornú" tabuľku – faktúru do "dolnej"
sub Kopiruj_fa
 dim dokument, tabulkah, tabulkad, bunkah, bunkad as object
 dokument=StarDesktop.CurrentComponent.GetTextTables()
 dim i,j,k as integer
 for k=1 to 4
  ' Výber tabuľky s číselným údajom podľa jej názvu
  tabulkah=dokument.GetByName("Tabulka"+trim(str(k)))
  tabulkad=dokument.GetByName("Tabulka"+trim(str(k+4)))
  ' Výber buniek podľa jednotlivých tabuliek
  select case k
   case 1 ' Tabulka1 – A1 – B1, A2 – A5
    for i=0 to 1
     bunkah=tabulkah.getCellByName(chr(asc("A")+i)+"1") ' Bunka A1 – B1 z "hornej" tabuľky
     bunkad=tabulkad.getCellByName(chr(asc("A")+i)+"1") ' Bunka A1 – B1 z "dolnej" tabuľky
     bunkad.SetString(Vymaz_LF(bunkah.GetString)) ' Vlastný prenos
    next i
    for i=2 to 5
     bunkah=tabulkah.getCellByName("A"+trim(str(i))) ' Bunka A2 – A5 z "hornej" tabuľky
     bunkad=tabulkad.getCellByName("A"+trim(str(i))) ' Bunka A2 – A5 z "dolnej" tabuľky
     bunkad.SetString(Vymaz_LF(bunkah.GetString)) ' Vlastný prenos
    next i
   case 2 ' Tabulka2 – A1, A2 – B2
    bunkah=tabulkah.getCellByName("A1") ' Bunka A1 z "hornej" tabuľky
    bunkad=tabulkad.getCellByName("A1") ' Bunka A1 z "dolnej" tabuľky
    bunkad.SetString(Vymaz_LF(bunkah.GetString)) ' Vlastný prenos
    for i=0 to 1
     bunkah=tabulkah.getCellByName(chr(asc("A")+i)+"2") ' Bunka A2 – B2 z "hornej" tabuľky
     bunkad=tabulkad.getCellByName(chr(asc("A")+i)+"2") ' Bunka A2 – B2 z "dolnej" tabuľky
     bunkad.SetString(Vymaz_LF(bunkah.GetString)) ' Vlastný prenos
    next i
   case 3 ' Tabulka3 – A1 – B2
    for i=1 to 2
     for j=0 to 1
      bunkah=tabulkah.getCellByName(chr(asc("A")+j)+trim(str(i))) ' Bunka A1 – B2 z "hornej" tabuľky
      bunkad=tabulkad.getCellByName(chr(asc("A")+j)+trim(str(i))) ' Bunka A1 – B2 z "dolnej" tabuľky
      bunkad.SetString(Vymaz_LF(bunkah.GetString)) ' Vlastný prenos
     next j
    next i
   case 4 ' Tabulka4 – A1 – B1, A2
    for i=0 to 1
     bunkah=tabulkah.getCellByName(chr(asc("A")+i)+"1") ' Bunka A1 – B1 z "hornej" tabuľky
     bunkad=tabulkad.getCellByName(chr(asc("A")+i)+"1") ' Bunka A1 – B1 z "dolnej" tabuľky
     bunkad.SetString(Vymaz_LF(bunkah.GetString)) ' Vlastný prenos
    next i
    bunkah=tabulkah.getCellByName("A2") ' Bunka A2 z "hornej" tabuľky
    bunkad=tabulkad.getCellByName("A2") ' Bunka A2 z "dolnej" tabuľky
    bunkad.SetString(Vymaz_LF(bunkah.GetString)) ' Vlastný prenos
  end select
 next k
end sub

REM Procedúra vytlačí dokument na defaultnú tlačiareň
sub Tlac_fa
 dim document as object
 dim dispatcher as object
 document = ThisComponent.CurrentController.Frame
 dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
 dispatcher.executeDispatch(document, ".uno:PrintDefault", "", 0, Array())
end sub

 


Komentáre


Pôvodná diskusia k článku

Takováto faktura lze jednodušeji vytvořit v Calku bez maker. Stačí si vytvořit na jednu stránku dva formuláře faktury (nebo jiného tiskopisu) a odkazem na buňky vyplnit i druhý formulář automaticky.

05. 08. 2010 Pavel 89.24.46.xxx

Áno, dá sa to aj tak. Riešenie vo Writeri má tú výhodu, že sa automaticky zväčšuje veľkosť tabuľky (podľa dĺžky popisu), takže ak sa náhodou nezmestí faktúra na pol strany, hneď sú pripravené dve kópie bez nutnosti dvojnásobnej tlače.

Osobne používam zverejnenú faktúru, pretože mám navyše v prvej z nich vloženú zosnímanú pečiatku a podpis (túto stranu exportujem do PDF a zasielam e-mailom) a v druhej z nich nie (tú tlačím).

06. 08. 2010 j.p. 78.141.102.xxx

Je Vaša doména voľná?

Platená reklama

Textová reklama

Ako začať podnikať na internete? Nechajte si poradiť. Aký má byť obsah kvalitne www stránky? Tvorba www stránok, Tvorba webu, Redakčný systém - CMS, Prieskumy o nakupovaní na internete, Pôžičky
Kompletné informácie o Kika Banská Bystrica | Čo takto navštíviť Viedeň? | Zaujímavé informácie priamo od zdroja

Newsletter


Copyright © 2002 - 2012 Inet.sk, s. r. o.Všetky práva vyhradenéNeprešlo jazykovou úpravouISSN 1336-1899

Využívame kvalitný webhosting za rozumnú cenu od Webhosting Inet.sk


Bilancia skrývky Fotokniha Fotografie Osobnosti.sk