Merge pull request 'fixes bug#AL-2946' (!225) from AL-2946 into master

Reviewed-on: adm/VentaBoletosAdm#225
Reviewed-by: Valdir Cordeiro <valdir.cordeiro@totvs.com.br>
master 1.10.2
Gleison da Cruz 2023-07-19 12:28:45 +00:00
commit 8a5379082b
11 changed files with 381 additions and 1 deletions

View File

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>br.com.rjconsultores</groupId> <groupId>br.com.rjconsultores</groupId>
<artifactId>ventaboletosadm</artifactId> <artifactId>ventaboletosadm</artifactId>
<version>1.10.1</version> <version>1.10.2</version>
<packaging>war</packaging> <packaging>war</packaging>
<properties> <properties>

View File

@ -0,0 +1,93 @@
package com.rjconsultores.ventaboletos.relatorios.impl;
import java.sql.Connection;
import java.util.Date;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
public class RelatorioPassageirosViajarDetalhado extends Relatorio {
public RelatorioPassageirosViajarDetalhado(Map<String, Object> parametros, Connection conexao) throws Exception {
super(parametros, conexao);
this.setCustomDataSource(new ArrayDataSource(this) {
public void initDados() throws Exception {
Connection conexao = this.relatorio.getConexao();
Map<String, Object> parametros = this.relatorio.getParametros();
String sql = getSql(parametros);
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
ResultSet rset = stmt.executeQuery();
while (rset.next()) {
Map<String, Object> dataResult = new HashMap<String, Object>();
dataResult.put("NUMERO", rset.getString("NUMERO"));
dataResult.put("NOME", trataCampoNull(rset.getString("NOME")));
dataResult.put("RG", trataCampoNull(rset.getString("RG")));
dataResult.put("LOCALIZADOR", trataCampoNull(rset.getString("LOCALIZADOR")));
dataResult.put("ENDERECO", trataCampoNull(rset.getString("ENDERECO")));
dataResult.put("NUMTELEFONO", trataCampoNull(rset.getString("NUMTELEFONO")));
dataResult.put("AGENTE", trataCampoNull(rset.getString("AGENTE")));
dataResult.put("CONTROLE", trataCampoNull(rset.getString("CONTROLE")));
this.dados.add(dataResult);
}
this.resultSet = rset;
}
});
}
@Override
protected void processaParametros() throws Exception {
}
private String getSql(Map<String, Object> parametros) {
StringBuilder sql = new StringBuilder();
String formatToDate = ("'dd/MM/yyyy hh24:mi:ss'");
SimpleDateFormat formatSemHora = new SimpleDateFormat("dd/MM/yyyy");
Date dataCadastroInicial = (Date) parametros.get("DATA_INICIO");
Date dataCadastroFinal = (Date) parametros.get("DATA_FINAL");
String passagemAberta = (String) parametros.get("PASSAGEM_ABERTA");
String empresaId = (String) parametros.get("EMPRESA_ID");
String categorias = (String) parametros.get("LS_CATEGORIA");
Integer usuario = (Integer) parametros.get("USUARIO");
sql.append(" SELECT ROWNUM AS NUMERO, ");
sql.append(" B.NOMBPASAJERO AS NOME, ");
sql.append(" CASE B.DESCTIPODOC WHEN 'RG' THEN B.DESCNUMDOC END AS RG, ");
sql.append(" COALESCE(B.NUMFOLIOSISTEMA, B.NUMOPERACION) AS LOCALIZADOR, ");
sql.append(" CD.DESCCALLE AS ENDERECO, ");
sql.append(" C.NUMTELEFONO, ");
sql.append(" U.CVEUSUARIO AS AGENTE, ");
sql.append(" '''' AS CONTROLE ");
sql.append(" FROM BOLETO B INNER JOIN USUARIO U ON (B.USUARIO_ID = U.USUARIO_ID) ");
sql.append(" LEFT JOIN CLIENTE C ON (B.CLIENTE_ID = C.CLIENTE_ID) ");
sql.append(" LEFT JOIN CLIENTE_DIRECCION CD ON (C.CLIENTE_ID = CD.CLIENTE_ID) ");
sql.append("WHERE B.TIPOVENTA_ID = 15 ");
if (dataCadastroInicial != null && dataCadastroFinal != null) {
sql.append("AND B.FECCREACION BETWEEN TO_DATE('" + formatSemHora.format(dataCadastroInicial) + " 00:00:00', " + formatToDate + ") "
+ "AND TO_DATE('" + formatSemHora.format(dataCadastroFinal) + " 23:59:59', " + formatToDate + ") ");
}
return sql.toString();
}
private String trataCampoNull(String campo) {
if (campo != null && !campo.isEmpty() && campo.equalsIgnoreCase("null")) {
return "";
}
return campo;
}
}

View File

@ -0,0 +1,21 @@
#geral
msg.noData=Não foi possivel obter dados com os parâmetros informados.
#Labels cabeçalho
cabecalho.relatorio=Relatório:
cabecalho.periodo=Período:
cabecalho.periodoA=à
cabecalho.dataHora=Data/Hora:
cabecalho.impressorPor=Impressor por:
cabecalho.pagina=Página
cabecalho.de=de
cabecalho.filtros=Filtros:
label.numero=
label.nome=NOME
label.RG=RG
label.LOCALIZAODR=VOO / LOCALIZADOR
label.ENDERECO=ENDEREÇO
label.TELEFONE=TELEFONE
label.AGENTE=AGENTE
label.CONTROLE=CONTROLE

View File

@ -0,0 +1,21 @@
#geral
msg.noData=Não foi possivel obter dados com os parâmetros informados.
#Labels cabeçalho
cabecalho.relatorio=Relatório:
cabecalho.periodo=Período:
cabecalho.periodoA=à
cabecalho.dataHora=Data/Hora:
cabecalho.impressorPor=Impressor por:
cabecalho.pagina=Página
cabecalho.de=de
cabecalho.filtros=Filtros:
label.numero=
label.nome=NOME
label.RG=RG
label.LOCALIZAODR=VOO / LOCALIZADOR
label.ENDERECO=ENDEREÇO
label.TELEFONE=TELEFONE
label.AGENTE=AGENTE
label.CONTROLE=CONTROLE

View File

@ -0,0 +1,186 @@
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="RelatorioPassageirosViajarDetalhado" pageWidth="842" pageHeight="595" orientation="Landscape" whenNoDataType="NoDataSection" columnWidth="832" leftMargin="5" rightMargin="5" topMargin="20" bottomMargin="20" uuid="d7fd3a52-424b-4065-b1f3-aed2d7988042">
<property name="ireport.zoom" value="1.3310000000000064"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<property name="net.sf.jasperreports.export.xls.exclude.origin.band.1" value="title"/>
<property name="net.sf.jasperreports.export.xls.exclude.origin.keep.first.band.2" value="columnHeader"/>
<property name="net.sf.jasperreports.export.xls.remove.empty.space.between.rows" value="true"/>
<property name="net.sf.jasperreports.export.xls.remove.empty.space.between.columns" value="true"/>
<parameter name="NOME_RELATORIO" class="java.lang.String"/>
<parameter name="AGRUPAR" class="java.lang.Boolean"/>
<field name="NUMERO" class="java.lang.String"/>
<field name="NOME" class="java.lang.String"/>
<field name="RG" class="java.lang.String"/>
<field name="LOCALIZADOR" class="java.lang.String"/>
<field name="ENDERECO" class="java.lang.String"/>
<field name="NUMTELEFONO" class="java.lang.String"/>
<field name="AGENTE" class="java.lang.String"/>
<field name="CONTROLE" class="java.lang.String"/>
<title>
<band height="79" splitType="Stretch">
<textField pattern="" isBlankWhenNull="false">
<reportElement uuid="96eded89-d7ca-4186-a91e-41fcd6baf278" mode="Transparent" x="0" y="0" width="457" height="41" forecolor="#000000" backcolor="#FFFFFF"/>
<textElement textAlignment="Left" verticalAlignment="Top" rotation="None" markup="none">
<font fontName="SansSerif" size="14" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$P{NOME_RELATORIO}]]></textFieldExpression>
</textField>
<line>
<reportElement uuid="041f4c8d-2436-490c-b906-77c8780b5425" x="-1" y="58" width="832" height="1"/>
</line>
<line>
<reportElement uuid="51d2aa74-94f4-440a-959f-2c9acc1902c7" positionType="Float" x="-1" y="78" width="832" height="1"/>
</line>
</band>
</title>
<columnHeader>
<band height="15">
<textField>
<reportElement uuid="c6ced1fc-28e7-445d-9f43-b476844a133d" x="0" y="0" width="48" height="15"/>
<textElement textAlignment="Center">
<font size="8" isBold="true" pdfFontName="Helvetica-Bold"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$R{label.numero}]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="dc43d3ca-dfab-4ce0-91b8-f605c590235f" x="48" y="0" width="132" height="15"/>
<textElement textAlignment="Center">
<font size="8" isBold="true" pdfFontName="Helvetica-Bold"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$R{label.nome}]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="3134385c-d37e-434c-9f4c-d08ce78af5cf" x="180" y="0" width="63" height="15"/>
<textElement textAlignment="Center">
<font size="8" isBold="true" pdfFontName="Helvetica-Bold"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$R{label.RG}]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="0355b7db-15aa-4ef2-b4b4-3e25791a0d09" x="339" y="0" width="244" height="15"/>
<textElement textAlignment="Center">
<font size="8" isBold="true" pdfFontName="Helvetica-Bold"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$R{label.ENDERECO}]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="45b7e8f0-ce88-4abf-809c-a94b71129200" x="583" y="0" width="72" height="15"/>
<textElement textAlignment="Center">
<font size="8" isBold="true" pdfFontName="Helvetica-Bold"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$R{label.TELEFONE}]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="79b7d382-4247-4180-91b6-03a1dd0ef959" x="655" y="0" width="103" height="15"/>
<textElement textAlignment="Center">
<font size="8" isBold="true" pdfFontName="Helvetica-Bold"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$R{label.AGENTE}]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="92c67a67-1094-47b6-9d5b-83079f2f6e1d" x="758" y="0" width="72" height="15"/>
<textElement textAlignment="Center">
<font size="8" isBold="true" pdfFontName="Helvetica-Bold"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$R{label.CONTROLE}]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="1554e6f3-625f-4f07-8bab-5fc5e435a5b4" x="243" y="0" width="96" height="15"/>
<textElement textAlignment="Center">
<font size="8" isBold="true" pdfFontName="Helvetica-Bold"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$R{label.LOCALIZAODR}]]></textFieldExpression>
</textField>
</band>
</columnHeader>
<detail>
<band height="15" splitType="Stretch">
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement uuid="55096f40-971d-4895-9140-8b2f38984737" stretchType="RelativeToTallestObject" x="0" y="0" width="48" height="15"/>
<textElement textAlignment="Center">
<font size="8"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$F{NUMERO}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement uuid="5d8a3d97-d870-45f4-9612-806b6ab916ee" stretchType="RelativeToTallestObject" x="48" y="0" width="132" height="15"/>
<textElement textAlignment="Center">
<font size="8"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$F{NOME}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement uuid="c53b11a5-83ff-4b8c-914e-8a70bc322a99" stretchType="RelativeToTallestObject" x="180" y="0" width="63" height="15"/>
<textElement textAlignment="Center">
<font size="8"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$F{RG}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement uuid="e008bd89-857a-4925-95ca-1330cbd69ca2" stretchType="RelativeToTallestObject" x="243" y="0" width="96" height="15"/>
<textElement textAlignment="Center">
<font size="8"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$F{LOCALIZADOR}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" pattern="dd/MM/yyyy" isBlankWhenNull="true">
<reportElement uuid="f6693f4a-6280-4b83-adb7-fad2a351b393" stretchType="RelativeToTallestObject" x="339" y="0" width="244" height="15"/>
<textElement>
<font size="8"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$F{ENDERECO}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement uuid="3ef85f2d-afaa-45a1-9c7e-b55765e66799" stretchType="RelativeToTallestObject" x="583" y="0" width="72" height="15"/>
<textElement textAlignment="Center">
<font size="8"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$F{NUMTELEFONO}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement uuid="36f0e2b4-dec6-401a-8a91-089b2568a538" stretchType="RelativeToTallestObject" x="655" y="0" width="103" height="15"/>
<textElement textAlignment="Center">
<font size="8"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$F{AGENTE}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement uuid="d9bab8d3-0fd2-403e-bb80-91cfc67763bd" stretchType="RelativeToTallestObject" x="758" y="0" width="72" height="15"/>
<textElement textAlignment="Center">
<font size="8"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$F{CONTROLE}]]></textFieldExpression>
</textField>
</band>
</detail>
<noData>
<band height="50">
<textField>
<reportElement uuid="d7468366-b8c1-4388-bd51-171a74ee2c78" x="0" y="24" width="831" height="26"/>
<textElement markup="none">
<font size="11" isBold="true"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$R{msg.noData}]]></textFieldExpression>
</textField>
</band>
</noData>
</jasperReport>

View File

@ -28,6 +28,7 @@ import org.zkoss.zul.Textbox;
import com.rjconsultores.ventaboletos.entidad.Categoria; import com.rjconsultores.ventaboletos.entidad.Categoria;
import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioPassageirosViajar; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioPassageirosViajar;
import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioPassageirosViajarDetalhado;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
import com.rjconsultores.ventaboletos.service.CategoriaService; import com.rjconsultores.ventaboletos.service.CategoriaService;
import com.rjconsultores.ventaboletos.service.EmpresaService; import com.rjconsultores.ventaboletos.service.EmpresaService;
@ -158,6 +159,10 @@ public class RelatorioPassageirosViajarController extends MyGenericForwardCompos
public void onClick$btnExecutarRelatorio(Event ev) throws Exception { public void onClick$btnExecutarRelatorio(Event ev) throws Exception {
executarRelatorio(); executarRelatorio();
} }
public void onClick$btnExecutarRelatorioDetalhado(Event ev) throws Exception {
executarRelatorioDetalhado();
}
public void onSelect$categoriaList(Event ev) { public void onSelect$categoriaList(Event ev) {
@ -249,6 +254,53 @@ public class RelatorioPassageirosViajarController extends MyGenericForwardCompos
Labels.getLabel("relatorioPassageirosViajarController.window.title"), args, MODAL); Labels.getLabel("relatorioPassageirosViajarController.window.title"), args, MODAL);
} }
private void executarRelatorioDetalhado() throws Exception {
Map<String, Object> parametros = new HashMap<String, Object>();
parametros.put("DATA_INICIO", datInicial.getValue());
parametros.put("DATA_FINAL", datFinal.getValue());
String passagemAberta = " and (B.feccorrida is null and B.corrida_id is null) ";
if (!chkPassageiroAberto.isChecked()) {
passagemAberta = " and (B.feccorrida is not null and B.corrida_id is not null) ";
}
parametros.put("PASSAGEM_ABERTA", passagemAberta);
Empresa e = (Empresa) cmbEmpresa.getSelectedItem().getValue();
parametros.put("EMPRESA_ID", e.getEmpresaId().toString());
parametros.put("NOME_RELATORIO", Labels.getLabel("relatorioCadastroClientesController.window.title"));
parametros.put("USUARIO", UsuarioLogado.getUsuarioLogado().getUsuarioId().toString());
parametros.put("USUARIO_NOME", UsuarioLogado.getUsuarioLogado().getNombusuario());
String strNumCategoria="";
StringBuilder sbCategoria = new StringBuilder("");
if (categoriaSelList.getData().length != 0){
lsNumCategoria = new ArrayList(Arrays.asList(categoriaSelList.getData()));
sbCategoria = new StringBuilder(" and B.categoria_id in ( ");
for (Categoria c : lsNumCategoria) {
sbCategoria.append(c.getCategoriaId().toString()).append(",");
}
sbCategoria.delete(sbCategoria.length()-1,sbCategoria.length());
sbCategoria.append(")");
}
parametros.put("LS_CATEGORIA", sbCategoria.toString());
parametros.put("USUARIO", UsuarioLogado.getUsuarioLogado().getUsuarioId());
Relatorio relatorio = new RelatorioPassageirosViajarDetalhado(parametros, dataSourceRead.getConnection());
Map args = new HashMap();
args.put("relatorio", relatorio);
openWindow("/component/reportView.zul",
Labels.getLabel("relatorioPassageirosViajarController.window.title"), args, MODAL);
}
@Override @Override
public void doAfterCompose(Component comp) throws Exception { public void doAfterCompose(Component comp) throws Exception {

View File

@ -94,6 +94,7 @@ lb.sigla = Currency
# Relatório # Relatório
relatorio.lb.btnExecutarRelatorio = Executar Relatório relatorio.lb.btnExecutarRelatorio = Executar Relatório
relatorio.lb.btnExecutarRelatorioDetalhado = Relatório Detalhado
relatorio.lb.btnSalvarRelatorio = Salvar Relatório relatorio.lb.btnSalvarRelatorio = Salvar Relatório
relatorio.lb.btnSalvarRelatorioPdf = Salvar Relatório em PDF relatorio.lb.btnSalvarRelatorioPdf = Salvar Relatório em PDF
relatorio.lb.btnSalvarRelatorioXls = Salvar Relatório em XLS relatorio.lb.btnSalvarRelatorioXls = Salvar Relatório em XLS
@ -7829,6 +7830,7 @@ relatorioLinhaOperacionalController.lblEspecie.value = Espécie
#Relatorio Pasajeiros Viajar #Relatorio Pasajeiros Viajar
relatorioPassageirosViajarController.window.title = Passageiros a viajar relatorioPassageirosViajarController.window.title = Passageiros a viajar
relatorioPassageirosViajarControllerDetalhado.window.title = LISTA DE PASSAGEIROS
relatorioPassageirosViajarController.lbDataIni.value = Data Inicial relatorioPassageirosViajarController.lbDataIni.value = Data Inicial
relatorioPassageirosViajarController.lbDataFin.value = Data Final relatorioPassageirosViajarController.lbDataFin.value = Data Final
relatorioPassageirosViajarController.lbEmpresa.value = Empresa relatorioPassageirosViajarController.lbEmpresa.value = Empresa

View File

@ -93,6 +93,7 @@ lb.sigla = Sigla
# Reporte # Reporte
relatorio.lb.btnExecutarRelatorio = Ejecutar reporte relatorio.lb.btnExecutarRelatorio = Ejecutar reporte
relatorio.lb.btnExecutarRelatorioDetalhado = Relatório Detalhado
relatorio.lb.btnSalvarRelatorio = Guardar reporte relatorio.lb.btnSalvarRelatorio = Guardar reporte
relatorio.lb.btnSalvarRelatorioPdf = Guardar reporte en PDF relatorio.lb.btnSalvarRelatorioPdf = Guardar reporte en PDF
relatorio.lb.btnSalvarRelatorioXls = Guardar reporte en XLS relatorio.lb.btnSalvarRelatorioXls = Guardar reporte en XLS

View File

@ -94,6 +94,7 @@ lb.sigla = Sigla
# Relatório # Relatório
relatorio.lb.btnExecutarRelatorio = Executar Relatório relatorio.lb.btnExecutarRelatorio = Executar Relatório
relatorio.lb.btnExecutarRelatorioDetalhado = Relatório Detalhado
relatorio.lb.btnSalvarRelatorio = Salvar Relatório relatorio.lb.btnSalvarRelatorio = Salvar Relatório
relatorio.lb.btnSalvarRelatorioPdf = Salvar Relatório em PDF relatorio.lb.btnSalvarRelatorioPdf = Salvar Relatório em PDF
relatorio.lb.btnSalvarRelatorioXls = Salvar Relatório em XLS relatorio.lb.btnSalvarRelatorioXls = Salvar Relatório em XLS

View File

@ -98,6 +98,9 @@
<toolbar> <toolbar>
<button id="btnExecutarRelatorio" image="/gui/img/find.png" <button id="btnExecutarRelatorio" image="/gui/img/find.png"
label="${c:l('relatorio.lb.btnExecutarRelatorio')}" /> label="${c:l('relatorio.lb.btnExecutarRelatorio')}" />
<button id="btnExecutarRelatorioDetalhado" image="/gui/img/find.png"
label="${c:l('relatorio.lb.btnExecutarRelatorioDetalhado')}" />
</toolbar> </toolbar>
</window> </window>
</zk> </zk>