Soma e média em <rich:dataTable>

0 respostas
gtludwig

Pessoal,

Eu consegui fazer a implementação uma de matriz com número de colunas variável usando o . Cada célula dessa matriz tem um componente com três valores possíveis: 0, 5 e 10.

Também tenho 3 colunas fixas por linha. A primeira é uma coluna onde retorno uma identificação para a linha. Então vem um número variável de colunas e depois uma outra coluna fixa de soma dos valores da linha e outra de média.

Preciso que toda vez que os valores dos sejam alterados, as celulas de soma e média sejam recalculadas e atualizadas. Pensei em fazer isso com o atributo valueChangeListener, mas preciso apontar um método que existe no managed bean. Mas se eu tenho um número variável de células na tabela, como resolver essa questão de dinamicidade?

Agradeço desde já!

O é definido assim:
<rich:dataTable 
	value="#{anamanMatrixMB.mechanicSysOutputs}" 
	var="mechanic" 
	rowKeyVar="rowNumber">
	<f:facet name="header">
		<h:outputText value="#{bundle['matrixTab.title']}" />
	</f:facet>

	<rich:column width="50">
		<h:outputText value="#{bundle['matrixLabel.mec']} #{rowNumber+1}"/>
	</rich:column>
	
	<rich:columns 
		value="#{anamanMatrixMB.equipmentOutputs}"
		var="equip"
		index="ind"
		width="50" >
		<f:facet name="header">
			<h:outputText value="#{bundle['matrixLabel.equip']} #{ind+1}" />
		</f:facet>
		<rich:inplaceSelect 
			value="#{anamanMatrixMB.selectedCorrValue}" 
			selectWidth="15"
			listWidth="50"
			listHeight="50"
			defaultLabel="0" >
         		<f:selectItems value="#{anamanMatrixMB.corrValues}" />
	        	<a4j:support 
		        	event="onchange"
			        reRender="rowSum"
		        	immediate="true" />
		</rich:inplaceSelect>
	</rich:columns>

	<rich:column width="125">
		<f:facet name="header">
			<h:outputText value="#{bundle['matrixTab.sum']}" />
		</f:facet>
		<h:outputText id="rowSum" value="#{anamanMatrixMB.sum}"/>
	</rich:column>

	<rich:column>
		<f:facet name="header">
			<h:outputText value="#{bundle['matrixTab.avg']}" />
		</f:facet>
		<h:outputText value="#{anamanMatrixMB.avg}"/>
	</rich:column>
							
</rich:dataTable>
Criado 3 de dezembro de 2009
Respostas 0
Participantes 1