Ajuda para montar Grid

7 respostas
dlsilva1812

Boa tarde pessoal, estou com dúvida para implementar uma grid, na qual eu terei 2 listas.
Uma lista popula o cabeçalho e a outra popula as linhas.

Estou enviando uma imagem do esboço do que preciso fazer.

Se alguém puder ajudar, desde já agradeço.

Cordialmente
Diego Silva


7 Respostas

vtr002

Esse tipo de tabela é chamado CrossTab. Mas explique melhor a situação: Seria uma Grid em um relatorio?(O Ireport tem um componente CrossTab), ou uma JTable numa tela Swing?(Só montar um tableModel) Ou é Grid numa pagina JSP?(Uma jogadinha para desenhar)

Qual a situação que essa CrossTab vai ser utilizada?

dlsilva1812

vtr002:
Esse tipo de tabela é chamado CrossTab. Mas explique melhor a situação: Seria uma Grid em um relatorio?(O Ireport tem um componente CrossTab), ou uma JTable numa tela Swing?(Só montar um tableModel) Ou é Grid numa pagina JSP?(Uma jogadinha para desenhar)

Qual a situação que essa CrossTab vai ser utilizada?

Opa… Esqueci de colocar qual a plataforma, é numa JSP, só que aqui na empresa o JSF ainda está na versão 1.2.

vtr002

Você precisa de um component JSF com o funcionamento igual da JTable do swing, não manjo muito de JSF mas a ideia é mais ou menos ter um modelo para essa Table. Se não me engano no JSF voce tem que especificar coluna por coluna. Talvez tenha algum atributo que receba um modelo

dlsilva1812

Valeu pela dica amigo, vou tentar aqui!!!

dlsilva1812

Bom dia Caros amigos

Procurando no Google, encontrei algo: JSTL

Aí implementei assim:

<table border="1">
		<tr>
			<td>Veículos</td>
			<td>Data</td>
			<c:forEach var="lista" items="${chklst.sensores}">
				<td><c:out value="${lista.item.descricao}" /></td>
			</c:forEach>
			<td>Vencimento em</td>
		</tr>
</table>

O cabeçalho deu certo, só ficou faltando colocar o texto na vertical como na imagem em anexo ao tópico.
Até aí tudo bem, mas o problema vem agora…

<table border="1">
		<tr>
			<c:forEach var="lista" items="${chklst.veiculos}" begin="1"	end="1">
			     <td width="100"><c:out value="${lista.placa}" /></td>
		 	     <td width="49"><c:out value="${lista.dtCkl}" /></td>
			</c:forEach>
			<c:forEach var="lista" items="${chklst.veiculos}">
			     <td width="110"><c:out value="${lista.veiCkl.estado}" /></td>
			</c:forEach>
		</tr>
</table>

A minha lista tem 2 veículos, mas só está mostrando 1. Já tentei colocar um <c:forEach> antes da tag

mas aí ele duplica as linhas ficando com 8, pois cada veículo foi gravado 1 estado de cada vez. entendam meu SQL
SELECT V.PLACA, V.DTCKL,
CASE
 WHEN (CV.ESTADO = '1')
    THEN CAST('N' AS VARCHAR(20))
 WHEN (CV.ESTADO = '2')
    THEN CAST('D' AS VARCHAR(20))
 WHEN (CV.ESTADO = '3')
    THEN CAST('Ok' AS VARCHAR(20))
END ESTADO
     FROM TSVEICULO V

     LEFT JOIN PPESCLI C ON (C.EMPRESA = V.ESTABCLIENTE)  AND (C.CLIENTE = V.CLIENTE)
     LEFT JOIN TSCKLCLI CC ON (CC.IDCLIENTE = C.CLIENTE)
     LEFT JOIN TSITEMCKL IC ON (IC.IDITEMCKL = CC.IDITEMCKL)
     LEFT JOIN TSVEICULOCKL CV ON (CV.IDITEMCKL = CC.IDITEMCKL)
     AND (CV.IDVEICULO = V.IDVEICULO)
     WHERE (V.IDVEICULO > 0) AND (V.ATIVO <> 'N') AND (C.EMPRESA = 1000)
     AND (C.CLIENTE = 6) ORDER BY V.PLACA, CC.IDCKLCLI;

No caso cada veículo pode ter 1 ou mais estados dos sensores.

O que eu estou fazendo de errado?

Se alguém puder dar uma ajuda aí.
Desde já agradeço.
Olhem a imagem em anexo do meu tópico para vcs entenderem o q eu estou tentando fazer.

Cordialmente
Diego Silva

dlsilva1812

Ninguém teve o mesmo problema???

dlsilva1812

Alguém pode ajudar aí galera???

Criado 28 de maio de 2013
Ultima resposta 3 de jun. de 2013
Respostas 7
Participantes 2