Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33093

If no JSF

$
0
0

@Thiago_Cardoso escreveu:

estou fazendo uma tabela com JSF onde ela puxar os dados do banco através de um vetor.só que quando tento fazer que ela pegue informações exemplificas e fazer um qualitativo ela esta pegando e repetindo os dados nas linhas abaixo e colocando o numero 1 para cada e não faz a soma

Pagina Xhtml
<ui:composition template="/template.xhtml" xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:p="http://primefaces.org/ui" xmlns:o="http://omnifaces.org/ui">

<ui:define name="conteudo">

    <h1 class="sahu-page-title">Controle de Impressão</h1>

    <h:form>

        <p:messages id="msgs" autoUpdate="true" closable="true" />

        <div class="ui-fluid">
            <p:panel>
                <p:panelGrid id="panelPesquisa" columns="8" layout="grid" styleClass="panelgrid-noborder"
                    columnClasses="ui-grid-col-1, ui-grid-col-2, ui-grid-col-1, ui-grid-col-1, ui-grid-col-1">
                
                    <p:outputLabel value="Tipo de Relatório" for="tipo_relatorio"/>
                    <p:selectCheckboxMenu id="tipo_relatorio" value="#{pesquisaControleImpressaoBean.filtro.tiposRelatorio}"
                        converter="omnifaces.GenericEnumConverter" label="--- Selecione ---" >
                        <f:selectItems value="#{pesquisaControleImpressaoBean.tiposRelatorio}" var="tipoRelatorio"
                            itemLabel="#{tipoRelatorio.descricao}" itemValue="#{tipoRelatorio}" />
                    </p:selectCheckboxMenu>

                    <h:outputLabel for="periodo" value="Período" />
                    <p:inputMask id="periodo" value="#{pesquisaControleImpressaoBean.filtro.periodo}" mask="99/9999" required="true"
                        requiredMessage="O período é obrigatório" converterMessage="Informe o período corretamente. Exemplo: 06/2010">
                        <f:convertDateTime pattern="MM/yyyy" timeZone="#{initParam.timezone}" />
                    </p:inputMask>
                    
                    <h:outputLabel for="prontuario" value="Prontuario" />
                    <p:inputMask id="numeroprontuario" value="#{pesquisaControleImpressaoBean.filtro.numeroprontuario}" />
                        
                    <p:commandButton value="Pesquisar" action="#{pesquisaControleImpressaoBean.buscar}"
                        process="tipo_relatorio numeroprontuario periodo @this" update="panelGrid" />
                </p:panelGrid>
                
            </p:panel>
        </div>
        
        <h:panelGrid id="panelGrid">
            <p:dataTable id="tabela" rendered="#{not empty pesquisaControleImpressaoBean.controlesImpressao}" reflow="true"
                value="#{pesquisaControleImpressaoBean.controlesImpressao}" var="controleImpressao" style="margin-top: 20px">
                
                

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Relatório" />
                    </f:facet>
                    <h:outputText value="#{controleImpressao.tipoRelatorio.descricao}" />
                </p:column>
                
                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Nome do Paciente" />
                    </f:facet>
                    <h:outputText value="#{controleImpressao.paciente}" />
                </p:column>
                
                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Prontuário" />
                    </f:facet>
                    <h:outputText value="#{controleImpressao.prontuario}" />
                </p:column>
                
                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Quantidade de Impressões" />
                    </f:facet>
                    <h:outputText value="#{controleImpressao.quantidade}" />
                </p:column>
                
                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Data e Hora da Impressão" />
                    </f:facet>
                    <h:outputText value="#{controleImpressao.periodoImpressao}" />
                </p:column>
                
                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Local da Impressão" />
                    </f:facet>
                    <h:outputText value="#{controleImpressao.impressora}" />
                </p:column>
                
                <f:facet name="footer">
                        <h:outputText value="Total de Impressões: " />
                        <h:outputText value="         #{pesquisaControleImpressaoBean.total}" />
                </f:facet>
                    
                
            </p:dataTable>    
            <p:separator />
            
            
                                     
    <p:dataTable id="tabela1" rendered="#{not empty pesquisaControleImpressaoBean.controlesImpressao}" reflow="true"
                value="#{pesquisaControleImpressaoBean.controlesImpressao}" var="controleImpressao" style="margin-top: 10px">

                    
                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Tipo De Relatorio" />
                    </f:facet>
                    <h:outputText value="#{controleImpressao.tipoRelatorio.descricao}" />
                </p:column>
                
                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Total De Impressões" />
                        
                    </f:facet>
                     <h:outputText value="#{controleImpressao.quantidade}" />
                </p:column>
                
                        
                                    
        </p:dataTable>    
        
        <c:if totalquantidae="${date.time != 0}" >
         <h:outputText value="text"  />
         </c:if>
        
        <p:dataTable id="tabela2" rendered="#{not empty pesquisaControleImpressaoBean.controlesImpressao}" reflow="true"
                value="#{pesquisaControleImpressaoBean.controlesImpressao}" var="controleImpressao" style="margin-top: 10px">

            
                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Nome do Paciente" />
                    </f:facet>
                    <h:outputText value="#{controleImpressao.paciente}" />
                </p:column>
                
                    <p:column>
                    <f:facet name="header">
                        <h:outputText value="Total De Impressões" />
                        
                    </f:facet>
                    <h:outputText value="#{controleImpressao.quantidade}" />
                </p:column>
                
                                    
        </p:dataTable>    
        
            
    </h:panelGrid>
    
                                    
        
                
    </h:form>
    
</ui:define>

Controlesimpressão

package net.ebserh.huunivasf.repository.segurancaPaciente;

import java.io.Serializable;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.inject.Inject;
import javax.persistence.EntityManager;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.ProjectionList;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.hibernate.transform.Transformers;
import org.hibernate.type.StandardBasicTypes;
import org.hibernate.type.Type;

import net.ebserh.huunivasf.model.segurancaPaciente.ControleImpressao;
import net.ebserh.huunivasf.model.segurancaPaciente.ControleImpressaoID;
import net.ebserh.huunivasf.model.segurancaPaciente.InfoQuantitativoImpressaoPaciente;
import net.ebserh.huunivasf.utils.jpa.Transactional;
import net.ebserh.huunivasf.utils.jsf.FacesUtil;

public class ControlesImpressao implements Serializable {

private static final long serialVersionUID = 1L;

@Inject
private EntityManager manager;

public ControleImpressao buscarControleImpressaoPorID(ControleImpressaoID controleImpressaoID) {
    return manager.find(ControleImpressao.class, controleImpressaoID);
}

@Transactional
public void salvar(ControleImpressao controleImpressao) {
    manager.merge(controleImpressao);
    manager.flush();
}

@SuppressWarnings("unchecked")
public List<InfoQuantitativoImpressaoPaciente> buscarComFiltro(FiltroControleImpressao filtro) {
    Criteria criteria = criarCriteriaParaFiltro(filtro);
    criteria.createAlias("paciente", "p");
    criteria.addOrder(Order.asc("p.nome"));

    ProjectionList pl = Projections.projectionList()
            .add(Projections.sqlGroupProjection("to_char(data_impressao,'dd/MM/yyyy  -  hh:mm:ss') as periodoImpressao", "periodoImpressao",
                    new String[] { "periodoImpressao" }, new Type[] { StandardBasicTypes.STRING }))
            .add(Projections.groupProperty("p.nome").as("paciente"))
            .add(Projections.groupProperty("p.prontuario").as("prontuario"))
            .add(Projections.groupProperty("tipoRelatorio").as("tipoRelatorio"))
            .add(Projections.groupProperty("impressora").as("impressora"))    
            .add(Projections.count("codigo").as("quantidade"));
            

    criteria.setProjection(pl).setResultTransformer(Transformers.aliasToBean(InfoQuantitativoImpressaoPaciente.class));
    
    

    List<InfoQuantitativoImpressaoPaciente> lista = criteria.list();

    if (lista == null || lista.isEmpty()) {
        FacesUtil.adicionarMensagem("Não foram encontrados registros para o período selecionado!", FacesMessage.SEVERITY_WARN);
    }

    return lista;
}



private Criteria criarCriteriaParaFiltro(FiltroControleImpressao filtro) {
    Session session = manager.unwrap(Session.class);
    Criteria criteria = session.createCriteria(ControleImpressao.class);
    

    if (filtro.getTiposRelatorio() != null && !filtro.getTiposRelatorio().isEmpty()) {
        criteria.add(Restrictions.in("tipoRelatorio", filtro.getTiposRelatorio()));
    }

    if (filtro.getnumeroprontuario() != null) {
        criteria.add(Restrictions.eq("p.prontuario", filtro.getnumeroprontuario()));
    }
    
    criteria.add(Restrictions.between("dataImpressao", geraDataInicial(filtro.getPeriodo()), geraDataFinal(filtro.getPeriodo())));

    return criteria;
}


private Date geraDataInicial(Date dataEntrega) {
    Calendar dataEntregaInicial = Calendar.getInstance();
    dataEntregaInicial.setTime(dataEntrega);

    dataEntregaInicial.set(Calendar.DAY_OF_MONTH, 1);

    dataEntregaInicial.set(Calendar.HOUR_OF_DAY, 0);
    dataEntregaInicial.set(Calendar.MINUTE, 0);
    dataEntregaInicial.set(Calendar.SECOND, 0);

    return dataEntregaInicial.getTime();
}

private Date geraDataFinal(Date dataEntrega) {
    Calendar dataEntregaFinal = Calendar.getInstance();
    dataEntregaFinal.setTime(dataEntrega);

    dataEntregaFinal.set(Calendar.DAY_OF_MONTH, dataEntregaFinal.getActualMaximum(Calendar.DAY_OF_MONTH));

    dataEntregaFinal.set(Calendar.HOUR_OF_DAY, 23);
    dataEntregaFinal.set(Calendar.MINUTE, 59);
    dataEntregaFinal.set(Calendar.SECOND, 59);

    return dataEntregaFinal.getTime();
}

}

Pesquisadecontroleimpressaobeen

Mensagens: 2

Participantes: 2

Ler tópico completo


Viewing all articles
Browse latest Browse all 33093


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>