<p:datatable> columnas agrupadas
Last updated
Was this helpful?
Last updated
Was this helpful?
<p:dataTable
id="datatableSumaTurnos2" var="item"
value="#{reservadoController.reservadoagenteDataModel}"
selectionMode="single"
widgetVar="widgetDataTableSumaTurnos"
selection="#{reservadoController.reservadoagenteSelected}"
editable="true"
rowStyleClass="#{item.horasmes eq 150 ? '' : 'coloredalert'}"
rowIndexVar="rowIx"
rowKey="#{item.idreservadoagente}"
emptyMessage="#{app['info.datatableempty']}" reflow="true"
>
<f:facet name="header">
#{msg['titlelist.turnos']}
</f:facet>
<p:columnGroup type="header">
<p:row>
<p:column rowspan="1" headerText="#{msg['titleview.agente']}" />
<p:column colspan="5" headerText="#{msg['headerText.totalesturnos']}" />
<p:column colspan="1" headerText="#{msg['headerText.totaleshoras']}" />
<p:column colspan="1" headerText="#{msg['headerText.vacaciones']}" />
<p:column colspan="1" headerText="#{msg['headerText.vacaciones']}" />
</p:row>
<p:row>
<p:column headerText="" />
<p:column headerText="#{msg['headerText.t0']}"/>
<p:column headerText="#{msg['headerText.t1']}"/>
<p:column headerText="#{msg['headerText.t2']}"/>
<p:column headerText="#{msg['headerText.t3']}"/>
<p:column headerText="#{msg['headerText.t4']}"/>
<p:column headerText="#{msg['headerText.mes']}"/>
<p:column style=" " headerText="#{msg['headerText.fechas']}"/>
<p:column headerText="#{msg['headerText.dias']}"/>
</p:row>
</p:columnGroup>
<p:column headerText="#{msg['field.agente']}" filterBy="#{item.agente.siglas}"
sortBy="#{item.agente.siglas}" filterMatchMode="contains" >
<p:outputLabel value="#{item.agente.siglas} -#{item.agente.nombre} "
title="#{reservadoController.columnTextVacacionesAgente(item.agente)}" />
</p:column>
<p:column>
<p:outputLabel value="#{reservadoController.contarTurnosCeros(item)}" />
</p:column>
<p:column>
<p:outputLabel value="#{item.t1}" />
</p:column>
<p:column >
<p:outputLabel value="#{item.t2}" />
</p:column>
<p:column >
<p:outputLabel value="#{item.t3}" />
</p:column>
<p:column >
<p:outputLabel value="#{item.t4}" />
</p:column>
<p:column>
<p:outputLabel value="#{item.horasmes}" />
</p:column>
<p:column >
<p:outputLabel value="#{reservadoController.columnTextVacacionesAgente(item.agente)}" style="font-size:12px;" />
</p:column>
<p:column>
<p:outputLabel value="#{reservadoController.columnTextDiasVacaciones(item.agente)}" />
</p:column>
<f:facet name="footer">
<p:outputLabel value="#{reservadoController.columnTextCerosPorMes()}" />
</f:facet>
</p:dataTable>
Otra agrupacion
codigo
<p:dataTable value="#{solicitudController.disponiblesBeansList}"
id="datatableDisponibles"
var="item" >
<f:facet name="header">
<p:outputLabel value="#{msg['tabletitle.vehiculos']}" />
</f:facet>
<p:columnGroup type="header">
<p:row>
<p:column rowspan="3" style="width:95px" headerText="#{msg['field.fecha']}" />
<p:column colspan="4" headerText="#{msg['tabletitle.resultado']}" />
</p:row>
<p:row>
<p:column colspan="2" headerText="#{msg['tabletitle.disponibles']}" />
<p:column colspan="3" headerText="#{msg['tabletitle.recomendados']}" />
</p:row>
<p:row>
<p:column headerText="#{msg['field.buses']}" />
<p:column headerText="#{msg['field.pasajeros']}" />
<p:column headerText="#{msg['field.buses']}" />
<p:column headerText="" />
</p:row>
</p:columnGroup>
<p:column style="width:95px">
<p:rowToggler />
<h:outputText value="#{solicitudController.showDate(item.fechahorainicio)}" style="color: #{solicitudController.columnColorDisponibles(item)}" />
</p:column>
<p:column headerText="#{msg['field.buses']}" style="width:75px">
<p:outputLabel value="#{item.numeroBuses}" style="color: #{solicitudController.columnColorDisponibles(item)}" />
</p:column>
<p:column headerText="#{msg['field.pasajeros']}" style="width:75px">
<p:outputLabel value="#{item.numeroPasajeros}" style="color: #{solicitudController.columnColorDisponibles(item)}" />
</p:column>
<p:column headerText="#{msg['field.busesRecomendados']}" style="width:75px">
<p:outputLabel value="#{item.busesRecomendados}" style="color: #{solicitudController.columnColorDisponibles(item)}" />
</p:column>
<p:column headerText="" style="width:45px">
<p:outputLabel value="" rendered="#{solicitudController.columnTieneBusesDisponibles(item)}" >
<i class="pi pi-check"></i>
</p:outputLabel>
<p:outputLabel value="" rendered="#{!solicitudController.columnTieneBusesDisponibles(item)}" >
<i class="pi pi-exclamation-triangle"></i>
</p:outputLabel>
</p:column>
<p:rowExpansion>
<p:dataTable value ="#{item.vehiculo}" var="car">
<p:column headerText="#{msg['field.marca']}">
<p:outputLabel value="#{car.marca}"/>
</p:column>
<p:column headerText="#{msg['field.modelo']}">
<p:outputLabel value="#{car.modelo}"/>
</p:column>
<p:column headerText="#{msg['field.placa']}">
<p:outputLabel value="#{car.placa}"/>
</p:column>
<p:column headerText="#{msg['field.pasajeros']}">
<p:outputLabel value="#{car.pasajeros}"/>
</p:column>
</p:dataTable>
</p:rowExpansion>
</p:dataTable>
Otra forma de agruparlo
codigo
<p:dataTable value="#{solicitudAdministrativoController.disponiblesBeansList}"
id="datatableDisponibles"
var="item" >
<f:facet name="header">
<p:outputLabel value="#{msg['tabletitle.vehiculos']}" />
</f:facet>
<p:columnGroup type="header">
<p:row>
<p:column rowspan="1" style="width:80px" headerText="#{msg['field.fecha']}" />
<p:column colspan="1" style="width:85px" headerText="#{msg['field.tipovehiculo']}" />
<p:column colspan="5" headerText="#{msg['tabletitle.resultado']}" />
</p:row>
<p:row>
<p:column headerText="" />
<p:column headerText="" />
<p:column colspan="2" headerText="#{msg['tabletitle.disponibles']}" />
<p:column colspan="3" headerText="#{msg['tabletitle.solicitados']}" />
<p:column colspan="1" headerText="#{msg['tabletitle.recomendados']}" />
</p:row>
<p:row>
<p:column headerText="" />
<p:column headerText="" />
<p:column headerText="#{msg['field.vehiculos']}" />
<p:column headerText="#{msg['field.pasajeros']}" />
<p:column headerText="#{msg['field.vehiculos']}" />
<p:column headerText="#{msg['field.pasajeros']}" />
<p:column headerText="#{msg['field.recomendados']}" />
</p:row>
</p:columnGroup>
<p:column style="width:75px">
<p:rowToggler />
<h:outputText value="#{solicitudAdministrativoController.showDate(item.fechahorainicio)}" style="color: #{solicitudAdministrativoController.columnColorDisponibles(item)}" />
</p:column>
<p:column headerText="#{msg['field.tipovehiculo']}" style="width:75px">
<h:outputText value="#{item.vehiculo.get(0).tipovehiculo.idtipovehiculo}" style="color: #{solicitudAdministrativoController.columnColorDisponibles(item)}" />
</p:column>
<p:column headerText="#{msg['field.disponible']}" style="width:75px">
<p:outputLabel value="#{item.numeroBuses}" style="color: #{solicitudAdministrativoController.columnColorDisponibles(item)}" />
</p:column>
<p:column headerText="#{msg['field.pasajeros']}" style="width:75px">
<p:outputLabel value="#{item.numeroPasajeros}" style="color: #{solicitudAdministrativoController.columnColorDisponibles(item)}" />
</p:column>
<p:column headerText="#{msg['field.solicitado']}" style="width:75px">
<p:outputLabel value="#{item.numeroVehiculosSolicitados}" style="color: #{solicitudAdministrativoController.columnColorDisponibles(item)}" />
</p:column>
<p:column headerText="#{msg['field.pasajeros']}" style="width:75px">
<p:outputLabel value="#{item.numeroPasajerosSolicitados}" style="color: #{solicitudAdministrativoController.columnColorDisponibles(item)}" />
</p:column>
<p:column headerText="#{msg['field.vehiculosRecomendados']}" style="width:75px">
<p:outputLabel value="#{item.busesRecomendados}" style="color: #{solicitudController.columnColorDisponibles(item)}" />
</p:column>
<p:rowExpansion>
<p:dataTable value ="#{item.vehiculo}" var="car">
<p:column headerText="#{msg['field.marca']}">
<p:outputLabel value="#{car.marca}"/>
</p:column>
<p:column headerText="#{msg['field.modelo']}">
<p:outputLabel value="#{car.modelo}"/>
</p:column>
<p:column headerText="#{msg['field.placa']}">
<p:outputLabel value="#{car.placa}"/>
</p:column>
<p:column headerText="#{msg['field.pasajeros']}">
<p:outputLabel value="#{car.pasajeros}"/>
</p:column>
</p:dataTable>
</p:rowExpansion>
</p:dataTable>