Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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">
<% <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 </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>Ele armazena a data, tipo: 08/11/2010
No banco de dados o formato do campo está texto.
Esse é o problema.
Você terá que alterar o campo para data ou utilizar funções na Query para converter de texto para data e ordenar.
Não está como "data", está como "texto"..!
No select, você precisa colocar um order by data (caso o campo do bd tenha data como nome)
Ok, deu certo, uma bobeira de nada. Agora neste mesmo relatório eu consigo dividir por ano, tipo contratos de 2010, 2011 e assim por diante ?
Dá pra fazer sim, olha esse sql :
sql="select * from tabela where Year(data)='"&variavel&"'
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 ??
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
você pode usar o ORDER BY do SQL para ordenar pelo campo que deseja , no caso, data
>
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.
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.Entendi, vou ter que montar uma página para fazer a pergunta que ano que quero, e uma página de resposta trazendo o resultado.
E como seria a página "resultado.asp" deste seu scripit ??
é 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.
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
Verifique o tipo de dado que armazena a data nessa tabela.