Ir para conteúdo

POWERED BY:

Arquivado

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

Marcelo Pescador

Relatório por data

Recommended Posts

Bom dia, alguém pode me ajudar !!

Eu tenho um retalório e gostaria que ficasse em ordem de data, até tenho essa rotina, mas não sei porque ele não sai. Segue o código.

 

<!--#include file="conexao.asp"-->
<!--#INCLUDE FILE = "config.inc" -->

<%
dim sessao
sessao = Request.QueryString("sessao") 
Session("sessao") = sessao
strsql1="select * from usuario where codigo=" & Session("cod_usuario")
set rs1=Conn.execute(strsql1)
%>

<HTML>
<STYLE type=text/css>
@import url("style.css");
</STYLE>
<HEAD>
<TITLE>Rel. Financeiro</TITLE>

</script>
<style media="print">
.oculta
{
visibility: hidden
}
</style>
</script>

''aqui eu utilizo alguma coisa que me passaram para convertar data

<%
Session.LCID = 1046
Session.TimeOut = 600
%>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
<table width="800" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="600" valign="baseline"><table width="106%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td> </td>
      </tr>
      <tr>
        <td height="19"> </td>
      </tr>
      <tr>
        <td> </td>
      </tr>
      <tr>
        <td> </td>
      </tr>
      <tr>
        <td><span class="style8">RELATÓRIO FINANCEIRO</span></td>
      </tr>
    </table></td>
    <td width="200"><img src="../base_rsvp/images/logo_pq.jpg" width="200" height="88" border="0"></td>
  </tr>
</table>
<TABLE width="847" BORDER=0 CELLPADDING=0 CELLSPACING=0>
  <TR>
    <TD WIDTH=640><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0>
      <TR>
        <TD WIDTH=800><HR size=1></TD>
        <TD width="10"><P ALIGN=RIGHT class="tiny"> </P></TD>
      </TR>
    </TABLE></TD>
  </TR>
</TABLE>
<div align="left">
<% 
'----------------- Define o número de registros por página ----------------------------

Const TamanhoPagina = 1000 
set rsQuery = Server.CreateObject( "ADODB.RecordSet" ) 

rsQuery.PageSize   = TamanhoPagina 
rsQuery.CacheSize  = TamanhoPagina 
rsQuery.CursorType = 3 

''aqui é onde ele coloca em ordem de "cod_contrato, mas quado eu mudo pra data ele não fica na ordem correta, fica todo aleatório.

rsQuery.Open"select * from contratos order by cod_contrato desc", Conn 

if Session("PaginaAtual") = "" then Session("PaginaAtual") = 1 
select case Request.QueryString( "modo" ) 

       case "proxima" 
            Session("PaginaAtual") = min( Session("PaginaAtual") + 1, rsQuery.PageCount ) 
       case "anterior" 
            Session("PaginaAtual") = max( Session("PaginaAtual") - 1, 1 ) 
       case "pagina" 
            if isNumeric( request.QueryString("numero") ) then 
               Session("PaginaAtual") = cint( request.QueryString("numero") ) 
               Session("PaginaAtual") = max( min( Session("PaginaAtual"), rsQuery.PageCount ), 1 ) 
            end if 
end select 

rsQuery.AbsolutePage = Session("PaginaAtual")
cod_contrato=rsQuery("cod_contrato") 
%>
  <br>
  <table width="800" border="1" cellpadding="0" cellspacing="0" bordercolor="#333333" bordercolorlight="<%= mainborderlight%>" bordercolordark="<%= mainborderdark%>">
    <tr bordercolor="000000">
      <td bordercolor="#666666" bgcolor="#6699CC" class="style4"><div align="center">Cod.</div></td>
      <td height="10" bordercolor="#666666" bgcolor="#6699CC"><div align="center"><span class="style4">Data</span></div></td>
      <td bordercolor="#666666" bgcolor="#6699CC"><div align="center"><span class="style4">Noivos</span></div></td>
      <td width="215" bordercolor="#666666" bgcolor="#6699CC"><div align="center"><span class="style4">Foto</span></div></td>
      <td width="95" bordercolor="#666666" bgcolor="#6699CC"><div align="center"><span class="style4">Contratados</span></div></td>
      <td bordercolor="#666666" bgcolor="#6699CC"><div align="center"><span class="style4">Filmagem</span></div></td>
      <td width="95" bordercolor="#666666" bgcolor="#6699CC"><div align="center"><span class="style4">Contratados</span></div></td>
    </tr>
    <tr bordercolor="000000">
      <% 
dim total
total = 0
item  = 1 
do while item <= TamanhoPagina and not rsQuery.eof 
cod_contrato=rsQuery("cod_contrato")
%>
      <% 
For n = 0 To limite %>
      <%
Dim n
n = 0 
do while n < colNum and NOT rsQuery.eof
cod_contrato=rsQuery("cod_contrato")
valor = rsQuery("valor")
if isnumeric(valor) then
total = total + valor
end if
%>
      <td width="33" bordercolor="#666666" bgcolor="#6699CC"><div align="center" class="style9"><%=rsQuery("cod_contrato")%></div></td>
      <td width="76" height="10" align="center" bordercolor="#666666" bgcolor="#6699CC"><div align="left" class="style9">
        <div align="center"><%=rsQuery("data")%></div>
      </div></td>
      <td width="155" align="left" bordercolor="#666666" bgcolor="#6699CC"><div align="left" class="style9">
        <div align="left"> <%=rsQuery("noiva")%> - <%=rsQuery("noivo")%></div>
      </div></td>
      <td bordercolor="#666666" bgcolor="#6699CC"><div align="left" class="style9">
        <div align="center"><%=rsQuery("qtde_fotografos")%></div>
      </div></td>
      <td bordercolor="#666666" bgcolor="#6699CC"> </td>
      <td width="115" bordercolor="666666" bgcolor="#6699CC"><div align="right" class="style9">
        <div align="left"> <%=rsQuery("video")%></div>
      </div></td>
      <td width="95" bordercolor="666666" bgcolor="#6699CC"> </td>
      <% rsQuery.Movenext
item = item + 1 
n = n + 1
loop %>
      <% next %>
    </tr>
    <% loop %>
  </table>
  <br>
</div>
<TABLE width="847" BORDER=0 CELLPADDING=0 CELLSPACING=0>
  <TR>
    <TD WIDTH=640><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0>
      <TR>
        <TD WIDTH=800><HR size=1></TD>
        <TD width="10"><P ALIGN=RIGHT class="tiny"> </P></TD>
      </TR>
    </TABLE></TD>
  </TR>
</TABLE>
<table width="800" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td class="style4"><div align="right">São Paulo,
      <!--#include file="saudacoes.asp"-->
    </div></td>
  </tr>
</table>
<table width="800" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="640"><table width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td width="8%"><input name="button3" type="BUTTON" id="button2" onClick="javascript:window.print()" value="Imprimir" class="oculta"></td>
        <td width="9%"><input name="button3" type="BUTTON" id="button2" onClick="javascript:window.close()" value="Fechar"class="oculta"></td>
        <td width="83%">
      </tr>
    </table></td>
  </tr>
</table>
</BODY>
</HTML>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse é meu código:

 

rsQuery.Open"select * from contratos order by data desc", Conn

Aqui que devo mudar ?

 

O resultado final eu queria que ficasse assim:

 

Cod. Data Noivos

 

65 01/12/2011 Ana Paula - Wilson

78 12/10/2011 João - Maria

 

-----------------------------------------

 

Cod. Data Noivos

 

45 01/09/2010 Patrícia - Claudio

36 15/08/2010 Rafael - Priscila

 

Gostaria que o relatório saisse assim dividido, tem como ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

No exemplo que postei, o ano vem de um select distinct que é feito pegando apenas o ano do registro, e depois é exibido somente os dados cadastrados referentes ao ano selecionado.

 

Se o que deseja é apenas o ano, a ordenação poderia ser order by YEAR(data) desc;

 

Se deseja exibir resultados somente do ano x, creio que é melhor fazer em duas etapas: na primeira escolhe-se o ano, e na segunda exibe-se os registros desse ano.

 

Não entendi direito a pergunta, mas acho que é isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar o ORDER BY do SQL para ordenar pelo campo que deseja , no caso, data

Compartilhar este post


Link para o post
Compartilhar em outros sites

No exemplo que postei, o ano vem de um select distinct que é feito pegando apenas o ano do registro, e depois é exibido somente os dados cadastrados referentes ao ano selecionado.

 

Se o que deseja é apenas o ano, a ordenação poderia ser order by YEAR(data) desc;

 

Se deseja exibir resultados somente do ano x, creio que é melhor fazer em duas etapas: na primeira escolhe-se o ano, e na segunda exibe-se os registros desse ano.

 

Não entendi direito a pergunta, mas acho que é isso

 

 

Acho que é isso mesmo, eu quero que dentro do relátório ele divida somente 2010 e 2011 os dosi separados, como no exemplo acima. você tem como fazer um exemplo desse usando meu código ??

 

Quero que ele mostre dua tabelas, uma com os dados de 2010 e outra com os de 2011 sepadaros, dentro do mesmo relatório, ou seja um em cima outro em baixo, separados pelo ano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja este exemplo:

 

O script foi montado para ser processado na mesma página e depois enviar para outra pagina onde cria um pdf, posto aqui até onde faz a seleção dos dados pelo ano.

    	 if opcf="" then
			 sql="select distinct Year(dataent) from pedido"
			 set rs = conn.execute(sql)
			 response.write "<form action='resultado.asp' method='POST' name='frm'>"
	  	 response.write "<p><table><tr><td align='center'><input type='hidden' name='opcao' value='totalvend'><input type='hidden' name='opc' value='ano'><h2>Relatório Anual</h2></td></tr>"
			 while not rs.eof
			 		if i mod 2 = 0 Then
					response.write "<tr><td align='center'><input type='radio' name='opcf' value='"&rs("Year(dataent)")&"'>"&rs("Year(dataent)")&"</a></td></tr>"
					else
					response.write "<tr bgcolor='#cccc66'><td align='center'><input type='radio' name='opcf' value='"&rs("Year(dataent)")&"'>"&rs("Year(dataent)")&"</a></td></tr>"
					end if
			rs.movenext
			i=i+1
			wend
	  response.write "<tr><td align='right'><input type='submit' value='Consultar'></td></tr>"
		response.write "</table><p>"	
		else
		sql="select * from pedido where Year(dataent)='"&opcf&"' order by MONTH(dataent) DESC"

Note que após selecionar o ano e processar isso, o novo select ordena pelo mês.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é a mesma pagina, coloco antes um if para saber se a variavel está vazia, se estiver, faz o select distinct, caso contrario, exibe os resultados para aquele ano.

No exemplo é a opc

E se a variavel do ano já contiver algum valor, vai fazer o select ordenando pelo mes, no exemplo seria a opcf.

Compartilhar este post


Link para o post
Compartilhar em outros sites

para dividir por ano, na hora do loop coloca uma var chamada ano, e verifica se o ano do recordset (use split para pegar) for diferente, aí faz uma linha e muda a var ano pro novo ano, se for igual, continua:

ano = ""
do until rs.eof
ano_rs = split(rs("data"),"/")(2)
if ano_rs <> ano then
ano = ano_rs
response.write "<br><hr><br>"
end if
response.write rs("data")
rs.movenext
loop

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.