Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pedrovisk

Relatório com Quebra de Linha

Recommended Posts

Turma,

 

Tenho um relatório com as seguintes caractérísticas:

 

- Possui uma quebra de linha onde exibe TODOS os Empregados da Unidade;

- Nessa QUEBRA, deveria haver uma outra quebra de linha, para exibir por Departamento.

Ou seja, exibir na seguinte ordem:

UNIDADE A

-------------Departamento A

-------------------------------Empregados

-------------Departamento B

-------------------------------Empregados

 

UNIDADE B

-------------Departamento A

-------------------------------Empregados

-------------Departamento B

-------------------------------Empregados

 

 

Eu consegui fazer a PRIMEIRA QUEBRA, mas não consegui fazer a segunda, pois QUEBRA POR UNIDADE e logo abaixo exibe o PRIMEIRO Departamento e TODOS os Empregados da Unidade.

 

Abaixo segue uma tela de como está o relatório:

Imagem Postada

 

Abaixo segue o código da tabela:

 

<table width="100%" border="0" cellpadding="2" cellspacing="2" class="LinhaAmarelaTab">
	<%
	DS_Unidade = 0
	DS_Departamento = 0
	%>
			  <% 
		  Total = 0
	While ((Repeat1__numRows <> 0) AND (NOT rs.EOF)) 
		Total = Total + 1
		
			If strColor = "#FFFFCC" Then 
				strColor = "#FFFFFF" 
			Else 
				strColor = "#FFFFCC" 
			End If 

	If DS_Unidade <> (rs.Fields.Item("IDUnidade").Value) Then
	%>
	  <tr align="center" class="qTopLeftHeader">
		<td colspan="8" align="left" class="Titulo1_Verde_Tabela_Media"><strong>Unidade: <%=(rs.Fields.Item("Unidade").Value)%></strong></td>
		</tr>
	  <tr align="center" class="Texto_10">
		<td colspan="8" align="left" class="Titulo1_Verde_Tabela_Media">Departamento: <%= Trim((rs.Fields.Item("Departamento").Value)) %></td>
		</tr>
	  <tr align="center" bgcolor="#FFFF99" class="Texto_10_Negrito">
		<td class="Titulo1_Verde_Tabela_Media">Nome de Guerra</td>
		<td class="Titulo1_Verde_Tabela_Media">Função</td>
		<td class="Titulo1_Verde_Tabela_Media">Admissão</td>
		<td class="Titulo1_Verde_Tabela_Media">Educacao</td>
		<td class="Titulo1_Verde_Tabela_Media">Conhecimento</td>
		<td class="Titulo1_Verde_Tabela_Media">Habilidade</td>
		<td class="Titulo1_Verde_Tabela_Media">Experiencia</td>
		<td class="Titulo1_Verde_Tabela_Media">Ult. AD </td>
	  </tr>
	  <%
	  End If
	  DS_Unidade = (rs.Fields.Item("IDUnidade").Value)
	  'DS_Departamento = (rs.Fields.Item("IDDepartamento").Value)
	  %>
	  <%
'Calcula a data de Admissão com menos de 30 dias
DtAdmissao = (rs.Fields.Item("DtAdmissao").Value)
DtAFrente = DateDiff("D",DtAdmissao,Now)

If  DtAFrente	< 30 Then 'Menos de 30 dias de admissão ficará em Verde
	FonteDestaque = "#009900"
ElseIf DtAFrente < 60 Then 'Menos de 60 dias de admissão ficará em Azul
	FonteDestaque = "#0000FF"
ElseIf DtAFrente < 90 Then 'Menos de 90 dias de admissão ficará em Roxo
	FonteDestaque = "#FF00FF"
Else
	FonteDestaque = "#000000"
End If
%>
	  <tr align="left" class="Texto_10" bgcolor="<%=strColor%>" onMouseOver="this.style.backgroundColor='#FFFF99'; this.style.cursor='hand';" onMouseOut="this.style.backgroundColor='';">
		<td><font color="<%=FonteDestaque%>"><%= Trim((rs.Fields.Item("NomeGuerra").Value)) %></font></td>
		<td><font color="<%=FonteDestaque%>"><%= Trim((rs.Fields.Item("Cargo").Value)) %></font></td>
		<td align="center"><font color="<%=FonteDestaque%>"><%=DtAdmissao%></font></td>
		<td align="center"><span class="Titulo1_Verde_Tabela_Media"><%= Trim((rs.Fields.Item("Educacao").Value)) %></span></td>
		<td align="center"><span class="Titulo1_Verde_Tabela_Media"><%= Trim((rs.Fields.Item("Conhecimento").Value)) %></span></td>
		<td align="center"><%= Trim((rs.Fields.Item("Habilidade").Value)) %></td>
		<td align="center"><%= Trim((rs.Fields.Item("Experiencia").Value)) %></td>
		<td align="center"><%= Trim((rs.Fields.Item("DtUltAD").Value)) %></td>
	  </tr>
	  <% 
  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  rs.MoveNext()
Wend
%>
	  <tr bgcolor="#FFFF99" class="Texto_10">
		<td colspan="8" align="left" class="Titulo1_Verde_Tabela_Media"><strong>Total: <%=Total%></strong></td>
	  </tr>
	</table>

Gostaria de uma ajuda dos que já tiveram este problema.

 

Grato,

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você vai precisar de muita matematica e utilizar o page break do Css. terá que calcular a lista de registros antes de imprimir para adicionar a quebra de linha

Compartilhar este post


Link para o post
Compartilhar em outros sites

jonathandj,

 

Com essa fiquei foi desistimulado em concluir esse trabalho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desisto,

 

- Em uma linha (amarela mais escura), eu quero que exiba o nome da Unidade;

- Na segunda linha, logo abaixo e de cor branca, deverá vir o Departamento da Unidade acima;

- Na terceira linha, vem o cabeçalho com as colunas (Nome de Guerra, Função, Admissão, etc.) Esta linha só vai ser exibida para os Departamentos que possuem empregados;

- Daí pra frente, entra o loop de Unidades e repete-se o proce acima.

 

Espero ter explicado melhor.

 

Obrigado,

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desisto,

 

Você está certo no raciocínio. Conforme o código que postei, há um LOOP que gera todo o conteúdo dos Departamentos (Empregados) e que quando encontra um ID da Unidade e/ou Departamento, e pula e cria outro conteúdo para o Departamento.

 

Abaixo, segue um exemplo mais detalhado:

 

Imagem Postada

 

Aqui está o código do Loop:

 

<%
	DS_Unidade = 0
	DS_Departamento = 0
	%>
			  <% 
		  Total = 0
	While ((Repeat1__numRows <> 0) AND (NOT rs.EOF)) 
		Total = Total + 1
		
			If strColor = "#FFFFCC" Then 
				strColor = "#FFFFFF" 
			Else 
				strColor = "#FFFFCC" 
			End If 

	If DS_Unidade <> (rs.Fields.Item("IDUnidade").Value) Then
	%>
	  <tr align="center" class="qTopLeftHeader">
		<td colspan="8" align="left" class="Titulo1_Verde_Tabela_Media"><strong>Unidade: <%=(rs.Fields.Item("Unidade").Value)%></strong></td>
		</tr>
	  <tr align="center" class="Texto_10">
		<td colspan="8" align="left" class="Titulo1_Verde_Tabela_Media">Departamento: <%= Trim((rs.Fields.Item("Departamento").Value)) %></td>
		</tr>
	  <tr align="center" bgcolor="#FFFF99" class="Texto_10_Negrito">
		<td class="Titulo1_Verde_Tabela_Media">Nome de Guerra</td>
		<td class="Titulo1_Verde_Tabela_Media">Função</td>
		<td class="Titulo1_Verde_Tabela_Media">Admissão</td>
		<td class="Titulo1_Verde_Tabela_Media">Educacao</td>
		<td class="Titulo1_Verde_Tabela_Media">Conhecimento</td>
		<td class="Titulo1_Verde_Tabela_Media">Habilidade</td>
		<td class="Titulo1_Verde_Tabela_Media">Experiencia</td>
		<td class="Titulo1_Verde_Tabela_Media">Ult. AD </td>
	  </tr>
	  <%
	  End If
	  DS_Unidade = (rs.Fields.Item("IDUnidade").Value)
	  'DS_Departamento = (rs.Fields.Item("IDDepartamento").Value)
	  %>
	  <%

Aqui vai o SQL:

 

SELECT	 PES.IS_PES AS IDEmpregado, PES.NM_PES AS Nome, PES.NM_PES_GUE AS NomeGuerra,
						  (SELECT	 CONVERT(CHAR(10), MIN(OCR.DT_OCR), 103)
							FROM		  WINTOUR.DBO.T_OCR OCR
							WHERE	  OCR.IS_PES = PES.IS_PES) AS DtAdmissao, dbo.SGQ_Cargo.Cargo, dbo.SGQ_Departamento.Departamento, 
					  dbo.SGQ_Departamento.IDUnidade, dbo.SGQ_Unidade.Unidade, dbo.Competencia.Educacao, dbo.Competencia.Conhecimento, 
					  dbo.Competencia.Habilidade, dbo.Competencia.Experiencia, dbo.Competencia.DtUltAD, dbo.Competencia.IDDepartamento
FROM		 dbo.Competencia INNER JOIN
					  wintour.dbo.T_PES PES ON dbo.Competencia.IDEmpregado = PES.IS_PES INNER JOIN
					  dbo.SGQ_Cargo ON dbo.Competencia.IDCargo = dbo.SGQ_Cargo.IDCargo INNER JOIN
					  dbo.SGQ_Departamento ON dbo.Competencia.IDDepartamento = dbo.SGQ_Departamento.IDDep INNER JOIN
					  dbo.SGQ_Unidade ON dbo.SGQ_Departamento.IDUnidade = dbo.SGQ_Unidade.IDUni
WHERE	 (NOT EXISTS
						  (SELECT	 1
							FROM		  WINTOUR.DBO.T_OCR T02
							WHERE	  T02.IS_PES = PES.IS_PES AND T02.IS_TDE IS NOT NULL AND T02.DT_OCR =
													   (SELECT	 MAX(T03.DT_OCR)
														 FROM		  WINTOUR.DBO.T_OCR T03
														 WHERE	  T03.IS_PES = T02.IS_PES)))

 

Obrigado pela ajuda.

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é dessa forma que você quer?

 

Imagem Postada

 

coloquei o 2º bloco junto, assim

<tr align="center" bgcolor="#FFFF99" class="Texto_10_Negrito">
		<td class="Titulo1_Verde_Tabela_Media">Nome de Guerra</td>
		<td class="Titulo1_Verde_Tabela_Media">Função</td>
		<td class="Titulo1_Verde_Tabela_Media">Admissão</td>
		<td class="Titulo1_Verde_Tabela_Media">Educacao</td>
		<td class="Titulo1_Verde_Tabela_Media">Conhecimento</td>
		<td class="Titulo1_Verde_Tabela_Media">Habilidade</td>
		<td class="Titulo1_Verde_Tabela_Media">Experiencia</td>
		<td class="Titulo1_Verde_Tabela_Media">Ult. AD </td>
	  </tr>
	  <tr align="left" class="Texto_10" bgcolor="<%=strColor%>">
		<td><font color="<%=FonteDestaque%>">111</font></td>
		<td><font color="<%=FonteDestaque%>">222</font></td>
		<td align="center"><font color="<%=FonteDestaque%>">333</font></td>
		<td align="center"><span class="Titulo1_Verde_Tabela_Media">444</span></td>
		<td align="center"><span class="Titulo1_Verde_Tabela_Media">555</span></td>
		<td align="center">666</td>
		<td align="center">777</td>
		<td align="center">888</td>
	  </tr>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desisto,

 

O cabeçalho sim, mas o completo, exibindo DUAS UNIDADES, seria assim:

 

<tr align="center" bgcolor="#FFFF99" class="Texto_10_Negrito">
	   <td colspan="8" align="left" class="Titulo1_Verde_Tabela_Media">Unidade: XXX</td>
	 </tr>
	 <tr align="center">
	   <td colspan="8" align="left">Departamento: XXX1</td>
	 </tr>
	 <tr align="center" bgcolor="#FFFF99" class="Texto_10_Negrito">
		<td class="Titulo1_Verde_Tabela_Media">Nome de Guerra</td>
		<td class="Titulo1_Verde_Tabela_Media">Função</td>
		<td class="Titulo1_Verde_Tabela_Media">Admissão</td>
		<td class="Titulo1_Verde_Tabela_Media">Educacao</td>
		<td class="Titulo1_Verde_Tabela_Media">Conhecimento</td>
		<td class="Titulo1_Verde_Tabela_Media">Habilidade</td>
		<td class="Titulo1_Verde_Tabela_Media">Experiencia</td>
		<td class="Titulo1_Verde_Tabela_Media">Ult. AD </td>
  </tr>
	  <tr align="left" class="Texto_10" bgcolor="<%=strColor%>">
		<td><font color="<%=FonteDestaque%>">111</font></td>
		<td><font color="<%=FonteDestaque%>">222</font></td>
		<td align="center"><font color="<%=FonteDestaque%>">333</font></td>
		<td align="center"><span class="Titulo1_Verde_Tabela_Media">444</span></td>
		<td align="center"><span class="Titulo1_Verde_Tabela_Media">555</span></td>
		<td align="center">666</td>
		<td align="center">777</td>
		<td align="center">888</td>
	  </tr>
<tr align="center" bgcolor="#FFFF99" class="Texto_10_Negrito">
	   <td colspan="8" align="left" bgcolor="#999999" class="Titulo1_Verde_Tabela_Media">Unidade: YYY</td>
  </tr>
	 <tr align="center">
	   <td colspan="8" align="left">Departamento: YYY1</td>
	 </tr>
	 <tr align="center" bgcolor="#CCCCCC" class="Texto_10_Negrito">
		<td class="Titulo1_Verde_Tabela_Media">Nome de Guerra</td>
		<td class="Titulo1_Verde_Tabela_Media">Função</td>
		<td class="Titulo1_Verde_Tabela_Media">Admissão</td>
		<td class="Titulo1_Verde_Tabela_Media">Educacao</td>
		<td class="Titulo1_Verde_Tabela_Media">Conhecimento</td>
		<td class="Titulo1_Verde_Tabela_Media">Habilidade</td>
		<td class="Titulo1_Verde_Tabela_Media">Experiencia</td>
		<td class="Titulo1_Verde_Tabela_Media">Ult. AD </td>
  </tr>
	  <tr align="left" class="Texto_10" bgcolor="<%=strColor%>">
		<td><font color="<%=FonteDestaque%>">111</font></td>
		<td><font color="<%=FonteDestaque%>">222</font></td>
		<td align="center"><font color="<%=FonteDestaque%>">333</font></td>
		<td align="center"><span class="Titulo1_Verde_Tabela_Media">444</span></td>
		<td align="center"><span class="Titulo1_Verde_Tabela_Media">555</span></td>
		<td align="center">666</td>
		<td align="center">777</td>
		<td align="center">888</td>
	  </tr>

Muito obrigado,

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.