Pokud jste přidali složku bin do proměnné PATH, stačí pro vyvolání programu zadat
$ jasperstarter
Pokud ne, můžete zadat absolutní cestu. V Linuxu:
/opt/jasperstarter/bin/jasperstarter
a ve Windows:
C:\App\jasperstarter\bin\jasperstarter.exe
pokud jste se řídili příkladem v kapitole instalace.
Pokud máte problém s binárním souborem nebo s shell skriptem nebo pokud potřebujete pro java VM specifikovat jiné volby, vyvolejte program přímo:
$ java -jar /opt/jasperstarter/lib/jasperstarter.jar
nebo
$ java -cp /opt/jasperstarter/lib/jasperstarter.jar de.cenote.jasperstarter.App
JasperReports zná tři typy souborů:
Jedná se o xml soubor, který definuje report. Můžete si je napsat ručně, ale spíš použijete jeden z těch hezkých dostupných GUI nástrojů.
Tento soubor je výsledkem kompilování souboru .jrxml.
Tento soubor získáte po vyvolání reportu. Data získaná z požadovaného datového zdroje vyplní kompilovaný report a výsledek je možné uložit jako .jrprint soubor.
JasperStarter obsahuje několik globálních příkazů a voleb. Každý příkaz může mít vlastní volby.
Přehled získáte vyvoláním jasperstarter s -h, které vám ukáže všechny globální volby a příkazy, které máte k dispozici.
$ jasperstarter -h usage: jasperstarter [-h] [--locale <lang>] [-v] [-V] <cmd> ... optional arguments: -h, --help show this help message and exit --locale <lang> set locale with two-letter ISO-639 code or a combination of ISO-639 and ISO-3166 like de_DE -v, --verbose display additional messages -V, --version display version information and exit commands: <cmd> type <cmd> -h to get help on command compile (cp) compile reports process (pr) view, print or export an existing report list_printers (printers,lpr) lists available printers list_parameters (params,lpa) list parameters from a given report
Každý příkaz má také vlastní nápovědu, kterou lze vyvolat pomocí <command> -h.
Příkaz compile slouží ke kompilování jednoho nebo všech reportů v adresáři. cp je alias pro compile.
$ jasperstarter cp -h usage: jasperstarter compile [-h] [-o <output>] <input> optional arguments: -h, --help show this help message and exit options: <input> input file (.jrxml) or directory -o <output> directory or basename of outputfile(s)
Příkaz process slouží ke zpracování jednoho reportu. Může to být náhled, tisk nebo export. pr je alias pro process.
$ jasperstarter pr -h usage: jasperstarter process [-h] -f <fmt> [<fmt> ...] [-o <output>] [-w] [-a [<filter>]] [-P <param> [<param> ...]] [-r [<resource>]] [-t <dstype>] [-H <dbhost>] [-u <dbuser>] [-p <dbpasswd>] [-n <dbname>] [--db-sid <sid>] [--db-port <port>] [--db-driver <name>] [--db-url <jdbcUrl>] [--jdbc-dir <dir>] [--data-file <file>] [--csv-first-row] [--csv-columns <list>] [--csv-record-del <delimiter>] [--csv-field-del <delimiter>] [--csv-charset <charset>] [--xml-xpath <xpath>] [--json-query <jsonquery>] [--jsonql-query <jsonqlquery>] [-N <printername>] [-d] [-s <reportname>] [-c <copies>] [--out-field-del <delimiter>] [--out-charset <charset>] <input> optional arguments: -h, --help show this help message and exit options: -f <fmt> [<fmt> ...] view, print, pdf, rtf, xls, xlsMeta, xlsx, docx, odt, ods, pptx, csv, csvMeta, html, xhtml, xml, jrprint <input> input file (.jrxml|.jasper|.jrprint) -o <output> directory or basename of outputfile(s), use '-' for stdout compile options: -w, --write-jasper write .jasper file to imput dir if jrxml is processed fill options: -a [<filter>] ask for report parameters. Filter: a, ae, u, ue, p, pe (see usage) -P <param> [<param> ...] report parameter: name=value [...] -r [<resource>] path to report resource dir or jar file. If <resource> is not given the input directory is used. datasource options: -t <dstype> datasource type: none, csv, xml, json, jsonql, mysql, postgres, oracle, generic (jdbc) -H <dbhost> database host -u <dbuser> database user -p <dbpasswd> database password -n <dbname> database name --db-sid <sid> oracle sid --db-port <port> database port --db-driver <name> jdbc driver class name for use with type: generic --db-url <jdbcUrl> jdbc url without user, passwd with type:generic --jdbc-dir <dir> directory where jdbc driver jars are located. Defaults to ./jdbc --data-file <file> input file for file based datasource, use '-' for stdin --csv-first-row first row contains column headers --csv-columns <list> Comma separated list of column names --csv-record-del <delimiter> CSV Record Delimiter - defaults to line.separator --csv-field-del <delimiter> CSV Field Delimiter - defaults to "," --csv-charset <charset> CSV charset - defaults to "utf-8" --xml-xpath <xpath> XPath for XML Datasource --json-query <jsonquery> JSON query string for JSON Datasource --jsonql-query <jsonqlquery> JSONQL query string for JSONQL Datasource output options: -N <printername> name of printer -d show print dialog when printing -s <reportname> set internal report/document name when printing -c <copies> number of copies. Defaults to 1 --out-field-del <delimiter> Export CSV (Metadata) Field Delimiter - defaults to "," --out-charset <charset> Export CSV (Metadata) Charset - defaults to "utf- 8"
Příkaz list_printers nemá žádné volby. Vypíše všechny tiskárny dostupné ve vašem systému, které můžete použít s volbou -N u příkazu process. printers, lpr je alias pro list_printers.
Příkaz list_parameterss nabídne seznam všech parametrů reportu definovaných uživatelem. params, lpa are aliases for list_parameters.
$ jasperstarter params -h usage: jasperstarter list_parameters [-h] <input> optional arguments: -h, --help show this help message and exit options: <input> input file (.jrxml) or (.jasper)
Sloupce mají následující význam:
Příklad výstupu:
$ jasperstarter params myreport.jasper P background java.awt.Image Background image P MyName java.lang.String Title of some component P MyDate java.util.Date
Každý příkaz, volbu nebo argument, které JasperStarter akceptuje, můžete uložit do souboru, který pak po přidání @ můžete přidat k vyvolání.
Takový soubor by měl obsahovat na jednom řádku pouze jeden příkaz/volbu/argument.
Příklad (db.conf):
-t mysql -H localhost -n mydb -u volker
Příklad vyvolání s příkazovým souborem:
$ jasperstarter pr myreport -f view @db.conf
Pozor! Příkazový soubor nesmí obsahovat žádné prázdné řádky a musí být zakončen jedním zalomením řádku!
Aby došlo ke zpracování reportu, zadejte příkaz pr, který potřebuje následující volby:
Všechny ostatní volby jsou nepovinné.
Pro výstup -o viz kapitola "Zacházení se soubory".
<input> je nyní pouze parametr. Na pořadí voleb a tohoto parametru nezáleží, ale parametr nelze umístit za volbu, která sama má jistý počet parametrů. Tyto volby jsou:
Následující případ tedy fungovat nebude:
$ jasperstarter pr -f view myreport.jasper
Ale tento bude:
$ jasperstarter pr -f print pdf -d myreport.jasper $ jasperstarter pr -f view -t mysql myreport.jasper -H localhost -u myuser -n mydb
The easiest way to circumvent any problems regarding arguments is to always place <input> at the first position right behind the command as shown in the following examples.
Pro zpracování reportu s prázdnou databází potřebujete minimálně následující volby:
$ jasperstarter pr myreport.jasper -f view
Pro zpracování reportu, který potřebuje připojení k databázi, musíte zadat minimálně následující volby:
$ jasperstarter pr myreport.jasper -f pdf -t mysql -H localhost -n mydb -u appuser
Report je možné pouze vyplnit. Náhled, tisk a export je možný i později.
Pouhé vyplnění reportu:
$ jasperstarter pr myreport.jasper -f jrprint -t mysql -H localhost -n mydb -u appuser
Náhled již vyplněného reportu:
$ jasperstarter pr myreport.jrprint -f view
Znaková sada souborů CSV je defaultně UTF-8. Další často používané znakové sady jsou cp1252 (Windows), ISO-8859-1 or ISO-8859-15 (Linux). Znakovou sadu CSV souboru lze specifikovat parametrem --csv-charset.
Jednotlivé údaje jsou obvykle odděleny novým řádkem, nemusí tak tomu ale být. separátor je závislý na defaultním separátoru celého systému a ten se v každém operačním systému liší. Pokud používáte CSV soubory z jiného systému, musíte tedy zadat správný separátor pomocí parametru --csv-record-del:
Jednotlivá pole mohou být oddělena jakýmkoliv znakem a navíc být uzavřena do například uvozovkami. Separátor pole je defaultně ,
Jednoduchý příklad:
$ jasperstarter pr csv.jrxml -f view -t csv --data-file data.csv --csv-first-row
Složitější příklad:
$ jasperstarter pr csv.jrxml -f view -t csv --data-file data.csv \ --csv-columns Name,Phone --csv-record-del="\n" --csv-field-del="|" \ --csv-charset=cp1252
Parametry reportu se mohou skládat z více typů (classes). JasperStarter umí zacházet se všemi typy, které mají konstruktor typu String. Navíc má JasperStarter speciální funkce pro typy, které nemají konstruktor typu String nebo potřebují speciální zacházení. Jedná se o:
Parametry s více hodnotami se oddělují mezerami. Parameter má následující formu:
Míso name dosaďte název parametru ve vašem reportu. U názvů parametrů dbejte na velká a malá písmena!
Datum je v ISO formátu a má tvar: YYYY-MM-DD Parametr typu date akceptuje datum v ISO formátu a ve tvaru YYYY-MM-DD
Parametr typu locale může mít dvě písmena - jazykový kód ISO-639 - nebo se skládat z kódu pro jazyk (ISO-639) a z kódu pro zemi (ISO-3166) spojených podtržítkem. Například de nebo de_DE.
$ jasperstarter pr report.jasper -t mysql -u myuser -f pdf -H myhost -n mydb \ -o report -p secret -P CustomerNo=10 StartFrom=2012-10-01
Report lze snadno upravit přidáním loga či obrázku v pozadí jako parametr. V následujícím příkladu použijeme background jako název parametru pro obrázek:
Nyní můžete report zpracovat pomocí JasperStarteru:
$ jasperstarter pr report.jasper -t mysql -u myuser -f pdf -H myhost -n mydb \ -o report -p secret -P background=/tmp/mybackgroundimage.jpg
Především uživatelé windows budou určitě muset pracovat s názvy souborů, které obsahují mezery. Existují dva způsoby. Zadejte do uvozovek buď hodnotu:
c:\jasperstarter pr report.jasper -t mysql -u myuser -f pdf -H myhost -n mydb \ -o report -p secret -P background="C:\Temp Files\My Image.jpg" otherValue=1
nebo celý parametr:
c:\jasperstarter pr report.jasper -t mysql -u myuser -f pdf -H myhost -n mydb \ -o report -p secret -P "background=C:\Temp Files\My Image.jpg" otherValue=1
JasperStarter umí požádat o zadání parametrů volbou -a.
Lze zobrazit každý parametr, který je v reportu definovaný, ale zadat lze pouze takový, který má typ (class) s konstruktorem, který vyžaduje jeden string coby argumen nebo pro něj existuje extra funkce.
Je možné zúžit výběr zobrazených parametrů pomocí následujících nepovinných argumentů:
V následujících příkladech se podíváme na report bez databáze, který má dva parametry:
Uživatel bude vyzván, aby zadal tyto dva parametry:
$ jasperstarter pr myreport.jasper -f view -a
Uživatel bude vyzván, aby zadal dva parametry. Paramet MyDate již je vyplněný, lze ho ale změnit:
$ jasperstarter pr myreport.jasper -f view -P MyDate=2013-01-30 -a
Uživatel bude vyzván pouze k zadání prázdného parametru MyText. Parametr MyDate již je vyplněný a nezobrazí se:
$ jasperstarter pr myreport.jasper -f view -P MyDate=2013-01-30 -a pe
Reporty mohou používat několik různých zdrojů, jako třeba resource balíčky i18n, ikony či obrázky.
Pokud se zdroje nacházejí ve stejném adresáři jako report, specifikujte pouze -r bez argumentů:
$ jasperstarter pr myreport.jasper -f view -r
Pokud se zdroje nacházejí v jiném adresáři, nebo v souboru jar, můžete jako argument zadat cestu:
$ jasperstarter pr myreport.jasper -f view -r myresources/
nebo
$ jasperstarter pr myreport.jasper -f view -r myresources.jar
Pokud vstupní soubor (volba -i ) nebyl nalezen, je k názvu souboru přidáno nejdřív .jasper, pokud soubor opět nebyl nalezen, je k názvu souboru přidáno .jrxml. Koncovku souboru tedy můžete vynechat.
Pokud je použitý soubor .jrxml, zkompiluje se a uloží pro další zpracování. Pokud zadáte volbu -w, zkompilovaný soubor se zapíše do adresáře input.
Jako vstupní soubor můžete použít i soubor .jrprint, musíte však zadat celý název souboru.
Pokud není uveden výstupní soubor nebo adresář ( volba -o ), bude pro uložení výstupního souboru použit nadřazený adresář a základní název vstupního souboru:
(...) myreports/report1 -f pdf odt
nebo
(...) myreports/report1.jasper -f pdf odt
nebo
(...) myreports/report1.jrxml -f pdf odt
výsledek:
myreports/report1.odt myreports/report1.pdf
Pokud existuje adresář output, základní název input poslouží pro pojmenování souboru v adresáři:
(...) myreports/report1.jasper -f pdf odt -o month01/
výsledek:
month01/report1.odt month01/report1.pdf
Pokud adresář output neexistuje, jeho název poslouží pro pojmenování souborů:
(...) myreports/report1.jasper -f pdf odt -o month01/journal.xyz
výsledek:
month01/journal.xyz.odt month01/journal.xyz.pdf