From cfb7e431732bf93f4f9e18e92b123c16d2620911 Mon Sep 17 00:00:00 2001 From: Josef Rokos Date: Sun, 1 Jun 2014 14:24:44 +0200 Subject: [PATCH] =?UTF-8?q?Podpora=20pro=20sestavy=20definovan=C3=A9=20p?= =?UTF-8?q?=C5=99es=20JRXML=20soubory.=20Dynamick=C3=A9=20na=C4=8D=C3=ADt?= =?UTF-8?q?=C3=A1n=C3=AD=20zul=20soubor=C5=AF=20pro=20nastaven=C3=AD=20ses?= =?UTF-8?q?tavy.=20closes=20#81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/info/bukova/isspst/Constants.java | 2 +- .../isspst/reporting/GeneratorFactory.java | 9 + .../isspst/reporting/PredefinedGenerator.java | 45 +++++ .../info/bukova/isspst/reporting/Report.java | 17 +- .../info/bukova/isspst/ui/ListViewModel.java | 2 +- .../ColSelectVM.java} | 61 ++---- .../isspst/ui/reporting/ReportDialogVM.java | 75 ++++++++ .../isspst/ui/{ => reporting}/ReportVM.java | 2 +- .../WEB-INF/locales/zk-label.properties | 1 + .../webapp/WEB-INF/reports/address.jasper | Bin 0 -> 26251 bytes src/main/webapp/WEB-INF/reports/address.jrxml | 173 ++++++++++++++++++ src/main/webapp/app/reporting/colSelect.zul | 15 ++ src/main/webapp/app/reporting/noOptions.zul | 6 + .../webapp/app/{ => reporting}/report.zul | 2 +- .../app/{ => reporting}/reportDialog.zul | 14 +- 15 files changed, 358 insertions(+), 66 deletions(-) create mode 100644 src/main/java/info/bukova/isspst/reporting/PredefinedGenerator.java rename src/main/java/info/bukova/isspst/ui/{ReportDialogVM.java => reporting/ColSelectVM.java} (56%) create mode 100644 src/main/java/info/bukova/isspst/ui/reporting/ReportDialogVM.java rename src/main/java/info/bukova/isspst/ui/{ => reporting}/ReportVM.java (71%) create mode 100644 src/main/webapp/WEB-INF/reports/address.jasper create mode 100644 src/main/webapp/WEB-INF/reports/address.jrxml create mode 100644 src/main/webapp/app/reporting/colSelect.zul create mode 100644 src/main/webapp/app/reporting/noOptions.zul rename src/main/webapp/app/{ => reporting}/report.zul (82%) rename src/main/webapp/app/{ => reporting}/reportDialog.zul (56%) diff --git a/src/main/java/info/bukova/isspst/Constants.java b/src/main/java/info/bukova/isspst/Constants.java index 3c88315f..039d67cb 100644 --- a/src/main/java/info/bukova/isspst/Constants.java +++ b/src/main/java/info/bukova/isspst/Constants.java @@ -58,6 +58,6 @@ public class Constants { public final static String DYNAMIC_REPORT_NAME = "Tabulková sestava"; public final static ReportMapping REPORTS[] = { - new ReportMapping(MOD_ADDRESSBOOK, new Report("Pokusná sestava", "report")) + new ReportMapping(MOD_ADDRESSBOOK, new Report("Adresní karty", "address")) }; } diff --git a/src/main/java/info/bukova/isspst/reporting/GeneratorFactory.java b/src/main/java/info/bukova/isspst/reporting/GeneratorFactory.java index 40f6d227..0b45414a 100644 --- a/src/main/java/info/bukova/isspst/reporting/GeneratorFactory.java +++ b/src/main/java/info/bukova/isspst/reporting/GeneratorFactory.java @@ -1,11 +1,20 @@ package info.bukova.isspst.reporting; +import javax.servlet.ServletContext; + +import org.springframework.beans.factory.annotation.Autowired; + public class GeneratorFactory { + @Autowired + private ServletContext context; + public Generator createGenerator(ReportDefinition definition) { switch (definition.getReport().getType()) { case DYNAMIC: return new DynamicGenerator(definition); + case DEFINED: + return new PredefinedGenerator(definition, context); default: return null; diff --git a/src/main/java/info/bukova/isspst/reporting/PredefinedGenerator.java b/src/main/java/info/bukova/isspst/reporting/PredefinedGenerator.java new file mode 100644 index 00000000..d50fd5c6 --- /dev/null +++ b/src/main/java/info/bukova/isspst/reporting/PredefinedGenerator.java @@ -0,0 +1,45 @@ +package info.bukova.isspst.reporting; + +import java.io.File; + +import javax.servlet.ServletContext; + +import net.sf.jasperreports.engine.JRException; +import net.sf.jasperreports.engine.JasperReport; +import net.sf.jasperreports.engine.JasperRunManager; +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; +import net.sf.jasperreports.engine.util.JRLoader; +import net.sf.jasperreports.engine.util.JRProperties; + +@SuppressWarnings("deprecation") +public class PredefinedGenerator implements Generator { + + private ReportDefinition definition; + private ServletContext ctx; + + public PredefinedGenerator(ReportDefinition definition, ServletContext ctx) { + this.definition = definition; + this.ctx = ctx; + } + + @Override + public byte[] generate() { + byte[] bytes = null; + + try { + JasperReport report = (JasperReport) JRLoader.loadObject(getReportFile()); + JRProperties.setProperty("net.sf.jasperreports.default.pdf.encoding", "Cp1250"); + bytes = JasperRunManager.runReportToPdf(report, definition.getParams(), new JRBeanCollectionDataSource(definition.getDataSet()));; + } catch (JRException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + return bytes; + } + + protected File getReportFile() { + return new File(ctx.getRealPath("WEB-INF/reports") + "/" + definition.getReport().getJasperFile() + ".jasper"); + } + +} diff --git a/src/main/java/info/bukova/isspst/reporting/Report.java b/src/main/java/info/bukova/isspst/reporting/Report.java index 061381f8..93dd580c 100644 --- a/src/main/java/info/bukova/isspst/reporting/Report.java +++ b/src/main/java/info/bukova/isspst/reporting/Report.java @@ -6,16 +6,23 @@ public class Report { private ReportType type; private String name; private String jasperFile; + private boolean hasSettings; public Report() { - + hasSettings = false; } public Report(String name, String jasperFile) { + this(); this.type = ReportType.DEFINED; this.name = name; this.jasperFile = jasperFile; } + + public Report(String name, String jasperFile, boolean hasSettings) { + this(name, jasperFile); + this.hasSettings = hasSettings; + } public ReportType getType() { return type; @@ -41,4 +48,12 @@ public class Report { this.jasperFile = jasperFile; } + public boolean isHasSettings() { + return hasSettings; + } + + public void setHasSettings(boolean hasSettings) { + this.hasSettings = hasSettings; + } + } diff --git a/src/main/java/info/bukova/isspst/ui/ListViewModel.java b/src/main/java/info/bukova/isspst/ui/ListViewModel.java index d0fd12ba..f739efd9 100644 --- a/src/main/java/info/bukova/isspst/ui/ListViewModel.java +++ b/src/main/java/info/bukova/isspst/ui/ListViewModel.java @@ -301,7 +301,7 @@ public class ListViewModel { Map params = new HashMap(); params.put("reports", service.getReports()); params.put("data", dataList); - Window win = (Window) Executions.createComponents("/app/reportDialog.zul", null, params); + Window win = (Window) Executions.createComponents("/app/reporting/reportDialog.zul", null, params); win.doModal(); } diff --git a/src/main/java/info/bukova/isspst/ui/ReportDialogVM.java b/src/main/java/info/bukova/isspst/ui/reporting/ColSelectVM.java similarity index 56% rename from src/main/java/info/bukova/isspst/ui/ReportDialogVM.java rename to src/main/java/info/bukova/isspst/ui/reporting/ColSelectVM.java index 66bec2f7..6036514c 100644 --- a/src/main/java/info/bukova/isspst/ui/ReportDialogVM.java +++ b/src/main/java/info/bukova/isspst/ui/reporting/ColSelectVM.java @@ -1,4 +1,4 @@ -package info.bukova.isspst.ui; +package info.bukova.isspst.ui.reporting; import java.beans.BeanInfo; import java.beans.IntrospectionException; @@ -10,50 +10,27 @@ import java.util.List; import info.bukova.isspst.reporting.Report; import info.bukova.isspst.reporting.ReportDefinition; import info.bukova.isspst.reporting.ReportType; +import info.bukova.isspst.ui.ListChecks; +import info.bukova.isspst.ui.LocaleConverter; -import org.zkoss.bind.annotation.BindingParam; -import org.zkoss.bind.annotation.Command; -import org.zkoss.bind.annotation.ExecutionArgParam; import org.zkoss.bind.annotation.Init; -import org.zkoss.bind.annotation.NotifyChange; -import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.select.annotation.WireVariable; -import org.zkoss.zul.Window; -public class ReportDialogVM { +public class ColSelectVM { - private List reports; - private Report selected; - private List data; @WireVariable private ReportDefinition reportDefinition; private LocaleConverter locConverter; @Init - public void init(@ExecutionArgParam("reports") List reports, - @ExecutionArgParam("data") List data) { - this.reports = reports; - this.data = data; + public void init() { locConverter = new LocaleConverter(); - - if (data != null && data.size() > 0 && data.get(0).getClass() != reportDefinition.gatDataClass()) { - reportDefinition.clear(); - } - } - - public LocaleConverter getLocConverter() { - return locConverter; } - public List getReports() { - return this.reports; - } - - public ReportDefinition getReportDefinition() { - return reportDefinition; - } - public ListChecks getColumns() { + Report selected = reportDefinition.getReport(); + List data = reportDefinition.getDataSet(); + if (selected == null || selected.getType() != ReportType.DYNAMIC) { return null; } @@ -79,26 +56,12 @@ public class ReportDialogVM { return columns; } - public Report getSelected() { - return selected; + public LocaleConverter getLocConverter() { + return locConverter; } - @NotifyChange("columns") - public void setSelected(Report selected) { - this.selected = selected; - } - - @Command - public void print(@BindingParam("window") Window window) { - reportDefinition.setDataSet(data); - reportDefinition.setReport(selected); - - if (window != null) { - window.detach(); - } - - Window reportWin = (Window) Executions.createComponents("/app/report.zul", null, null); - reportWin.doModal(); + public ReportDefinition getReportDefinition() { + return reportDefinition; } } diff --git a/src/main/java/info/bukova/isspst/ui/reporting/ReportDialogVM.java b/src/main/java/info/bukova/isspst/ui/reporting/ReportDialogVM.java new file mode 100644 index 00000000..ba37c19a --- /dev/null +++ b/src/main/java/info/bukova/isspst/ui/reporting/ReportDialogVM.java @@ -0,0 +1,75 @@ +package info.bukova.isspst.ui.reporting; + +import info.bukova.isspst.reporting.Report; +import info.bukova.isspst.reporting.ReportDefinition; +import info.bukova.isspst.reporting.ReportType; + +import java.util.List; + +import org.zkoss.bind.annotation.BindingParam; +import org.zkoss.bind.annotation.Command; +import org.zkoss.bind.annotation.ExecutionArgParam; +import org.zkoss.bind.annotation.Init; +import org.zkoss.bind.annotation.NotifyChange; +import org.zkoss.zk.ui.Executions; +import org.zkoss.zk.ui.select.annotation.WireVariable; +import org.zkoss.zul.Window; + +public class ReportDialogVM { + + private List reports; + private Report selected; + @WireVariable + private ReportDefinition reportDefinition; + + @Init + public void init(@ExecutionArgParam("reports") List reports, + @ExecutionArgParam("data") List data) { + this.reports = reports; + + if (data != null && data.size() > 0 && data.get(0).getClass() != reportDefinition.gatDataClass()) { + reportDefinition.clear(); + } + + reportDefinition.setDataSet(data); + } + + public List getReports() { + return this.reports; + } + + public ReportDefinition getReportDefinition() { + return reportDefinition; + } + + public Report getSelected() { + return selected; + } + + @NotifyChange("optionsForm") + public void setSelected(Report selected) { + this.selected = selected; + reportDefinition.setReport(selected); + } + + @Command + public void print(@BindingParam("window") Window window) { + if (window != null) { + window.detach(); + } + + Window reportWin = (Window) Executions.createComponents("/app/reporting/report.zul", null, null); + reportWin.doModal(); + } + + public String getOptionsForm() { + if (selected != null && selected.getType() == ReportType.DYNAMIC) { + return "/app/reporting/colSelect.zul"; + } else if (selected != null && selected.isHasSettings()) { + return "/app/reporting/" + selected.getJasperFile() + ".zul"; + } else { + return "/app/reporting/noOptions.zul"; + } + } + +} diff --git a/src/main/java/info/bukova/isspst/ui/ReportVM.java b/src/main/java/info/bukova/isspst/ui/reporting/ReportVM.java similarity index 71% rename from src/main/java/info/bukova/isspst/ui/ReportVM.java rename to src/main/java/info/bukova/isspst/ui/reporting/ReportVM.java index 29723ee2..5fda96d7 100644 --- a/src/main/java/info/bukova/isspst/ui/ReportVM.java +++ b/src/main/java/info/bukova/isspst/ui/reporting/ReportVM.java @@ -1,4 +1,4 @@ -package info.bukova.isspst.ui; +package info.bukova.isspst.ui.reporting; import org.zkoss.bind.annotation.Init; diff --git a/src/main/webapp/WEB-INF/locales/zk-label.properties b/src/main/webapp/WEB-INF/locales/zk-label.properties index 51e3507f..a7df6ea1 100644 --- a/src/main/webapp/WEB-INF/locales/zk-label.properties +++ b/src/main/webapp/WEB-INF/locales/zk-label.properties @@ -78,6 +78,7 @@ ReportPrint=Tisk ReportReports=Sestavy ReportTitle=Nadpis sestavy: ReportOptions=Volby sestavy +ReportNoOptions=Žádná nestavení Error=Chyba ErrorRights=K vykobání této operace nemáte dostatečná oprávnění diff --git a/src/main/webapp/WEB-INF/reports/address.jasper b/src/main/webapp/WEB-INF/reports/address.jasper new file mode 100644 index 0000000000000000000000000000000000000000..78f658e9098ff3339eeb6467312d8afe4d5c30bc GIT binary patch literal 26251 zcmdsfdwg8Qb^p1NEUl%rEX&3=1`-o6*s?A8#hagDC9Ui=t4DTMwy|BrN_%B3UhOWs zSGGg~fe=g{CIlyhhoON$NC6WdfjT@4G^Qb;O4id(ljOgrA_-iGjkuK zz1m&(uYM|f=iYnH+?g}qIdjfD@8Nf7RNv9BscMSl7wz!8h_ ziShAdVXDvEhv?=GTI!ItrL8fhZ8noBvk=Or?6;cJ#YEc5nChJfHD=6FOA6XaO}Rqa z%mQ%a3szpFklsB8sb}+pkg*dCfNJ#@kTk?Ea0I)kv#ng-POW+0n3?U%aSbM>@@AA8 zhm#|Fb{7Cc%A(Vwz`mn6+M(%1ht!J>hCQ1?z0H+qb*BsF2#aOW`m!%t$f+YXk#$}O zXD7yyPEe*Jap3B&b7&GILEA}z6vQo>R?(v6JIm&@CB`K~R8Bo*jwUBER@|D(m=-Oo z@S=!@*XmQIl}u-pICJDv+%D*ul~R!rkxuJqt}vdodXghnt}x|lI3Q1ti}n^bEsN&L zhB0BKGiXOFcYqto1Zq|^h$uCqaagQ48ct2)$#hl~)}l&cxv11-(JEES^;w|^s;Dg< zMcbOpOaQZWWlJlnwcpiFRjWcpHCdI?vf8V>=DOOdvRYd?s{u#DMNT`ZzQ|PztvI8S zR@jx>P?XJ6h_RDqTjqE^le9REj!J1rdy`OaprU43+-g;c=IaehmFld@rP`)7NKvxM zJkhZPEbjvR3~7RER?4d+)@~uHi8F=RJ#7m6Z_id17BMnMbY9XCK_oNw$Xyh2#{cJ9*uA zPPyZy~6E)fpPsGBBuFc40ZN*%sI|y%D+{jL`&<9DxL_cAk2$yh_X{BoBQgQV6REXH( zM8pd~vMdaqZijLOQaY|=V<*iTMx%laSysu02nRZupD3uPGxx!yuf6q0*ZktZ%Qu`= z1F*RcjcJ8CL6m;saWwxZdU&qvwdIflfDAkRoGs1f>fQ8_DCGN_~;`Si6X!ucT$UyV~ZndYCeQ!$) zkzj0U^JbQ{ZUG8dttOR}?4)ufi;!cC7p05B7e=x@=|a)kHkQkntXVtg1jT``GU3)z zqU^;Tv_#R_UU!TBP5)lAFbZ1^CSHn}B8A>A+?~_Y%=VNxvtSg7XmP01FB??ImNdy!gb@hlyKCn6MSF2PV^$S(ut;glI^(Y zOK`#sQCjRF@o*<*j+%%wV)wA-c_CDpR?$};@Bpte_w%)|h_M|!q3SOgCB3D4g)eB~Lalm&Udrv+a$zbCSNC>D-}5|ORp zp+rCa52*Cll(TTsqv~bzNxrcU!&vD(Vcn&h6>gqO{OldI@7_LsLkD^oTPT<@F+hl? zcXy_(;udNe&pA(%`I`^E_pK{-ZT;kp2j->@d@KUfzwejA-L;jI(PM>S-dxjLU(P_G zX|d51EuJw#6BGoey`b?ma|}UHdQe55jIEM*MQMRZRE&Bpn&;{EiSala2bkh63`#LR zViQxTPlW5M&5bFZ1{q-Jw328LoPB9R`4PnbIf zXHY<;?nz)?#k4wUj!OYcI2YBBdH%!pI&cWd?8sQIz(&)xFswE(Xmj0cgpFeIxfpV| zWX@e_P!&V0uqL%qqek?K)wo4vd!i$HNXS+q*CHnZ567pmVKP1J0?LIcp=wO#W*fqR zq2# zeDazjH3it|jW$nC3rd8mI*L`2}-#CfY}T22NP-QpoB{Ho|(aFQw= z8#^|16T(_Ug`v@+;+3qJYAqyp^N7Tv6=iD&BLX`r%bN$_*^wOU5GRF{nbf0ejhwI5 zU~CanxTQD-1ziU+P{_&oVTH&X`&q%!QC47~PBE2&!h)xaHF269g13z{f~t!$55o#8 zJyNRe3riSExbi~)A>3APnnJ=!F6nw_mTdYQ*{qUYAIIOw-7~%kiBWXd{)uh#zIS=3 zZ}uhcygGPF=WCoCM-ly_dG5r9YVECW-*f-F*WGw7M*JB5?By9!7_=5QUf%>-R$>3) zTTf~F%v+zZhwQ=W$tk<~t)+!)|K_g$|4Ssd!%i-52>FH`DXJYxss`fr)SA$(*9;h! z8*Og3BJ#+#{D_#1F;DsDCecHJCc}76Ivu6T-7382#1`$=r};BU4x2HdIIY3i18Q*m zRi5W1-M33Mv7U8Pr9LU@pxU`Sh~6n}zqjwpvt89LO-az)+Av&W$MvvHsBhTTHztib z!7iSRDmz=|ag)d>Dp7PZBa!-8Y3g~Q_P&hj9W!!_Dd?-pvij~RQcj2}t0rC9NUQDn zIu_YYx)I&XQJy{FrW1izlYSXZM7T7KGTrHH$GaYUgI01l4)qsrt@^?T3u?)OlBO8n2Zfz8dv62W*T>T zPUDyU)f?$c?i;k-gMqT2U2aI|Y3a%pp#n$NZs$d6Vu4jkGi=vN#bG*+RjV~@aqiHJ zaNpA{C9J5Yc${KF6=H!s??b&x!_KIx5D&b2`<(|L{Piy$z3)@ae|O`S*|yCTaB&91 znm=aBh=gyq9hGVOo!}#qdqpYN$N0+EBm*lavh(32wO=xFJ`B4KuVgv-g^vh<(TJP% zMl8u3V(ldI;sH_f*K>-1sT8#Hs{-vvKL7BpPltXJ8DIMM2M_iBr!An!jHRg#v|Bi; z2yXTPO>%ue^D;EhybKLA#ejIC_zq|{3xP$EZ<4nhT2$9b=7DJM%Im7iK2VuVC+hYv!M>w}P&p&{gDXb33=B+?PO!;#Ux zQGfseBB^?N#VeC|o;|_xegJoJmFjBPpW0M<#C}(*hMmdGTG&^W7CyD_<*PI2d@l6W zo8Ddat7|)vt=)M?4l*kzLsc$6jQ@lqiQoYrj3w6xV=qI)*vrr`Rt&rNjut*3;bAc} zEv)Z-@lesq33N;K@F-AbJ**C^qZcis`i4Wb!&ez^+<#k-u$nSkZ#bhKewl?6!DBuc zNv;n@UWSH|m!V;#7$q1z<`q-im(#;WA3dxaNy9&?KSwV_iDy`Hn+mcb_ z+=j_}d$zp&>1A_E(m4I;%Tf#@YiM*F6m9ya;tA$BYkOw+Po=K_hreg#e3Ta`(C{(zag{M`?=J-BGm z&wlv%u7B6ym039%mNALnK$i489vIQB>} zGm}l^WsP3^ssrnbUx^(0!MggNXaC{Gr|&&^(}y&$?D~<#^wY(+SUM5B;RBN7`hetR zXdrnR8c2#!0@53fjP^}AT@3o@V$)b|qG-xVD?1HGKPo8X$E#AvFV*bL2i~*jv?r{8 zO>aGG^AQbWnU#}a8HId@BZ=VWK3Gex57u6WhP9WWVXYV?SpQtY!(wO(SvL?@edkmULx-u-C$V-%*SiG!gh3C!@7jH_$t}ctz6>uD|;mzimG4 z$kh*ZHEHeIBN_q&NgE@&PI)dhh^0?vE>q8V%lS6 zk3F(9SIl9~fTNUlZEV!48^0WW<;!>e{Gu~|{YdX$-um5xy?_2cM6H=o6G6}iHOcis z&CAeG^D;El6r%(+Ou_SC32L?5%wYjkY4d#;>UAyDt2&^bd%E-1Q@?h}zWWZ%54E+0 zKA{06Ge;=0@@c-tVg^VA3w;2RTpxhE3=JSJLjy=LY+3BSpRv%9(Y`6ye4BlmZ|y!) ztyw}S(p<(1@Xc#F*2}Y|O8SR^LdN|id4`-PSrv0{54?CNgTX}U( zKi<1OuiTEB9fa*9z1T+ANsIPji%`rg<|YawW^Wp&J+iwKSa86a%P8+C!Lk zUvahvYhQ(_%6n+v&(V1K2wTYnIGs31Cl3W-t4DKjq>#?zkdWn`|AMFv6@{%RYTQoZ z0)7+Qs|Ai#y=g~=d}8Y?1C3N>?@i*oCeCUikrkDY+N$Crjgx0k0=1E2W93~YywS`@ zi{zG$Jhv2su&5?gsm!99RHd2=-+ZaB?O*ctQd%R{msVA|lqOPe+rca>xTZ{5FWB(T zK%x3v{hC2bj(5=zs|)su9AqtfVhhW{-s4WLs5pmP$7_Nt<9w)?+NX^}RDAY_sf(sd ztDiE&Su5;w#UFN3yPH>d4_J1$u#E;E#u788+$k|qm7=Oit?D9sXC0h3IGdcCH%y?z z!kU&VWHjd$(H=57ai=B2iw`sM&|jU2C;JdHalJlpS{#P70o%r43yM%<*|f{3v1^6i zN5Pxgj$MALt;+ME9>=q}LD(`^M`nuydp)@VbZ9(pp<;Is@AI1~;=m)$RA9>k_SGy@ zXEH?loo0?Jwuj~{%m;P{!U;I5;?wnxm627{T}1apoq1{9fRjVD$HD{svBXeUe_tZJ zJt4J2>f(xWja(kna+A(dh^`k^@Y04o&U7h3dUnSe9|9bFi;lPhhcI-?m$l z{##4PE?Oee8y?!x->1pY>L$UP(s$&tx)iq3_4LPjLy4iDP*q#dzp=e~saiqE>wl!U_CiqJm(^6d!i4R3K_4UWXLj$2rkv^PB((Q@IBB<@B zc3HSN5g(+j6-P<2W*@|vPyRkZ`&GHzxJ9$=M{LD$?x!Z_ZnO)3XIRbh?6E8?JHYBGP(#lln7?hD{r$62%E{=P-V8oqfQ+XmLQ zi`(xpP3~0_a(3PJ_|bp6;QVJ#Ty^+&nXkNb@z3C8We>KDmvwru!#}}cC>b*JTk6X9O5)w1lV8IfK|RrsV>*T=p~G<@O>J2ZXv!LVp?*4!sey*Sga zw!SZ4yMnu9O)xIup}xW1PFO7zv#jS5VriKAh*U5A1ULJ;rA7LQ4I|V3NlYdizwiic z9Iw!Gy85Goy?u_@obGQhzTvX?<$Dbi|IwmZqFW`*4ue&5eEITXgC=)v_3y6{Ue)n1la;%uG05?Q{>*|Jtp3xb;EJWU`Mbf#~6di3IDM}G0OZ9nI4FNN|cuorK608mQKwMb2EcnohvTjmNe| zg%572#4xPLxKl@3a@r&XgfGd+Gwv{GNeSB-;u`p>ggr-&IRaQj^iB^2S zL6<=-ZZ>k%=vQccHoy-vXJW^XiGHCR`Wm#<%}!OvwD}GLXOww~W+**kP3)u4Iu$+HS*&>Trq+jk5K%4f{zV56hMR_9O*{v;0zgQ;2P9#gSS(w;qO z1~sbeuy@y>1@@|iFhi<4XHfa?#(7F)kKisaXrYso);EOCI}C5<%b@uV-Rqs>kZOEdDkDLMe^?bL0T;D;z2r*maz1LK{`p^Z41)L^6t_gog(jc2I)QW z?vH}>UU@eZq^0sM8KhI?-AIt$C+~pJY4UD&kWQy%oJTrHXUMxfK{`|3jR$GDyvqe? zg}l4cz-JUOr!Ds~CU|MfpyrVY?4KXUTuCZ|>M&@{a?ht0c@d=iBUfD`SL6WO!Jy>{_1OCW-GgHI8TtTy z9xYv3_yFDS3a^{?06pNA*0JdU`V*Jx81n!<1ly#9oMy!XblAWl$B_Visk$Bq*RRmV z271gOxug}KFQb+`);mB?7-TP_1?W#vB5Ah+^i?pF(GJklP)1nn06mKvnCk#NhlD(~ zIzTVL(D5OQ0DTQCVJ787L4aN~L_fJ2jYLBcE7J}1btt4}odfg@I2XHac~Bgnm(lE8 ziyWZ8L=3Mj4$!yJ0!?0j!q?DHN6RBVO$UjDCr3=IljX8#=VI-pLo_%3B*s2ACk^x} zbWk)=!BF!e4fHoCHWGy;XrsSvr0>$}$Pn#TOglk!miy!vr0>%Y8tHNRA(X&P6O-y# zsB54%pw=#xmpmKjEnsRFqd$|v6Y{`~$RoS9lk3g>Mm8couPmUlCV$6>)`65m$H= zafLq-S9lX~g)b3TcoK1i9}!o05nKagu#ZN#3bS}|;KE;(c(m;ZwYM2h(i#rdaj=1d zvpG1IgY!AKkb{jJT+Bfy2i+X>aIl$!EgVES=;L63gBS-14z_Zzor4`5?Bd`u4ld_l zn1d7tqa2KJa0Le$4ze8NIVe01kqs&$JP0SsuKkI!*@f;P~n=q$PwsohEE(C6q}x}VOY2kCtJ5@a#Rq6rBwVoF79XariyEa5lm|7+04NV@lo%+FXq1Fo5i#@xR?5&eOk-?EwO>k~2jvOcNnfX3^g8_!{R~R;A2eh%)8)oeN*e2E z*yyGaV=JXlap)o`Rrsx}NO}@NJgS6v`~`ZPTgA%OuV|F*pggHjc7Sq3qwE6ZDUEU& zD9>n=%RxD+QHDWzUZbQy`7@0&3d%8!GUme6j&3>ukXE#h(a)2ohP_6{E0GNt^ z$pTChfN3uvK!;F4aHE1?Co=eRmBC9d&`aFRSGImrqhvt&3yqQmo+|h?1=(P~^Itcn<2zoul`D=OwqJ0NNsl(H2!W#ZF#H&S9>oR&zdI;Bz;PT%* z{08w$;>UAaQ~2G0-!1svjo*X#J&E5j{9eKDP5j=$@ApUphwY6;_`&uX>z|?TURrmA zzSsLjddqYFn&d(F^n@a<~Rh!_HG4Ph-y0 zFrF@Ro)UN(b)I_gw99!q7f&hYsSQutou`xWw8MF7#?w~u^yA)DkD>U|Lf;81OR$+W zbQ2oTEdcQ#8pdY<Ljqr=doC-LvA z^b|mT8cpvx0R23w?HIs*k=~|n0Pt_pujpF<{oC{h`VN49)dBq);dfPagerkm1myq!7|GR4N_nI20C#44JNvVN)Qfi={lp3ffr3UIrseyV@YM`E! z8sN!C4c>(s{5#a(KcNPHpp;QV<3=szjRu-B0`x&t*bT-UjMC=OEk-NGN(wq7R+&ssEPZ+e*^WXmg4{b literal 0 HcmV?d00001 diff --git a/src/main/webapp/WEB-INF/reports/address.jrxml b/src/main/webapp/WEB-INF/reports/address.jrxml new file mode 100644 index 00000000..a03e1260 --- /dev/null +++ b/src/main/webapp/WEB-INF/reports/address.jrxml @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + <band height="18" splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/app/reporting/colSelect.zul b/src/main/webapp/app/reporting/colSelect.zul new file mode 100644 index 00000000..4ad9fdee --- /dev/null +++ b/src/main/webapp/app/reporting/colSelect.zul @@ -0,0 +1,15 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/app/reporting/noOptions.zul b/src/main/webapp/app/reporting/noOptions.zul new file mode 100644 index 00000000..e2401f1c --- /dev/null +++ b/src/main/webapp/app/reporting/noOptions.zul @@ -0,0 +1,6 @@ + + +
+
+
\ No newline at end of file diff --git a/src/main/webapp/app/report.zul b/src/main/webapp/app/reporting/report.zul similarity index 82% rename from src/main/webapp/app/report.zul rename to src/main/webapp/app/reporting/report.zul index 5cef3420..b8710f9e 100644 --- a/src/main/webapp/app/report.zul +++ b/src/main/webapp/app/reporting/report.zul @@ -1,7 +1,7 @@ + viewModel="@id('vm') @init('info.bukova.isspst.ui.reporting.ReportVM')"> diff --git a/src/main/webapp/app/reportDialog.zul b/src/main/webapp/app/reporting/reportDialog.zul similarity index 56% rename from src/main/webapp/app/reportDialog.zul rename to src/main/webapp/app/reporting/reportDialog.zul index b71ab691..6017a6b2 100644 --- a/src/main/webapp/app/reportDialog.zul +++ b/src/main/webapp/app/reporting/reportDialog.zul @@ -1,7 +1,7 @@ @@ -12,17 +12,7 @@ - - - - - - - - +