Hola,
Necesito vuestra ayuda ya que estoy saturada y no me viene ninguna idea.
Os comento, tengo una tabla que se muestra en una pantalla, dentro de esta tabla vienen muchos datos divididos en columnas pero solo 5 de ellos me están dando el "dolor de cabeza".
Estos 5 datos los muestro dependiendo de lo que se me devuelva en un método.
Los 5 campos están mostrados como este que os indico aquí:
Código jsf 1.2:
Ver original<rich:column id="datoSum" style="text-align:right"
rendered="#{datoService.mostrarDatoSum()}">
<f:facet name="header" >
<h:outputText value="#{messages['dato.sum.pantalla']}"
escape="false" style="white-space:pre-line;"
title="#{messages['dato.sum.pantalla.export']}"/>
</f:facet>
<h:outputText value="#{detail.datoSum}">
<f:convertNumber pattern="#{messages['formatter.amount']}"
locale="es_ES" />
</h:outputText>
</rich:column>
dependiendo de lo que devuelva "rendered="#{datoService.mostrarDatoSum()}">" se pinta o no la columna.
El método mostrarDatoSum lo había implementado de esta forma, pero me he dado cuenta que si alguno de ellos no es de valor 0 me pintaría todos los campos.
Código Java:
Ver originalpublic boolean mostrarDatoSum() {
if (mostrarDatoSum == null) {
boolean mostrar = true;
for (Calculo cal : getCalculo()) {
if (((cal.
datoSum().
compareTo(BigDecimal.
ZERO) == 0) && (cal.
dato2Sum().
compareTo(BigDecimal.
ZERO) == 0)) && (cal.
dato3Sum().
compareTo(BigDecimal.
ZERO) == 0) && (cal.
dato4Sum().
compareTo(BigDecimal.
ZERO) == 0) && (cal.
dato5Sum().
compareTo(BigDecimal.
ZERO) == 0)){ mostrar = false;
}
}
mostrarDatoSum = mostrar;
}
return mostrarDatoSum;
}
Se le ocurre a alguien como podría hacer cambiando únicamente la parte java, que muestre solo los que no tienen valor a 0?