<%
'Desenvolvido por Diogo Silvério(diogosilverio@yahoo.com.br)
'Fez alguma Alteração? Poste aqui sem tirar os créditos anteriores.
'A alteração ficou legal?? Manda pra mim o link
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------
'Os estilos podem facilmente serem alterados, tanto in quanto out-line
'Cuidado especial com essas variáveis globais, se alterar alguma
'lembre-se de alterar também na página onde é feita a inclusão desse .Asp
'-------------------------------------------------------------------------
'Ah sim, é lógico que é livre pra ser usado em qualquer site, inclusive
'para seus clientes, tio, papagaio e etc, mas não vendido ou ser parte
'daqueles CD's ou coleções fuleiras vendidos em CD em banca de jornal!
'
'No mais, bom uso, e reportem qualquer coisa!
'[]'s a todos
Dim objCon, objRs
Dim contador
Dim tamanhoPag, pagAtual
Dim buscaNome ' Aqui você adiciona seus novos campos de busca
Dim buscaNomeOk ' E também adicione uma variavel com o mesmo nome finalizando com Ok, logo mais vera o porque
Dim queryDados, queryDadosExtra, buscaInterna
Set objCon = Server.CreateObject("Adodb.Connection") 'Criação do Obj de Conexão
Set objRs = Server.CreateObject("Adodb.RecordSet") 'Criação do RecorSet
%>
<%
Sub CarregarRs(driver)' Aqui é Carregado o seu RS e SGBD
'-----------------------------------------------------------
buscaExtra = "" 'É vazio, mas será preenchido caso algum campo de busca exista!
queryDados = "Select * from Clientes" 'Query Básica, atente-se ao controle abaixo, explicado posteriormente
queryDadosExtra = false 'Valor inicial é falso mesmo
'-----------------------------------------------------------
tamanhoPag = Cint(Request("qtd")) 'Tanto QueryString quanto Form
pagAtual = Cint(Request("pag")) 'Idem
buscaNome = Request("txt_nome") ' Adicione outras campos de busca que desejar, lembrando da oura variavel com ok no fim
if((pagAtual <=0) or (pagAtual = "")) then pagAtual = 1 'Por questão de bom senso, caso não haja numero ou a página tenha número negativo(Lammer FDP, quase buga sua paginação uashusa) o valor é configurado como 1
if((tamanhoPag <=0) or (tamanhoPag = "")) then tamanhoPag = 10 ' O mesmo que de cima
'------------------------------------------
'Aqui está algo que não achei muito comum.
'Nesse ponto, as variaveis de busca que possuirem algum valor
'terão suas variaveis OK configuradas como true
'
if(buscaNome <> "") then buscaNomeOk = true 'Se houver caracteres em BuscaNome, BuscaNomeOk é VERDADEIRO
if((buscaNomeOk)) then 'SE BuscaNomeOk É VERDADEIRO, queryDadosExtra também será. Aqui, adicione seguidas condicionais para verificar todos os campos de busca, e fazer o mesmo com o queryDadosExtra
queryDadosExtra = True
end if
'------------------------------------------
if(queryDadosExtra) then 'Se QueryDadosExtra é verdadeiro
if(buscaNomeOk) then 'E busca também o é
buscaInterna = buscaInterna & " nome like '%" & buscaNome & "%'" ' Então, adicione à buscaInterna estes parametros. LEMBRE-SE do espaço no ínicio de cada campo verdadeiro
end if
queryDados = queryDados & " where" & buscaInterna 'Logo, se querDadosExtra e buscaNome é verdadeiro e BuscaInterna foi preenchida, à queryDados é concatenada com o valor da buscaInterna.
end if
'Já se foi o mais chato, agora é configuração de RecordSet apenas(outra parte que pode ser muita chata se houverem incorreções no queryBusca! fique atento ;])
'------------------------------------------
objCon.open driver ' Abre o driver especificado
objRs.ActiveConnection = objCon ' Abre sua conexão com o BD
objRs.CursorLocation = 3 ' adUseClient, use 2(adUseServer) caso queira que o cursos fique no Server
objRs.CursorType = 2 'adUseDinamic ou 1 para adUseStatic
objRs.PageSize = tamanhoPag 'Tamanho de cada pagina paginada(huashuasuh)
objRs.open queryDados ' Sua Consulta está sendo aberta! :O
contador = objRs.PageCount ' Aqui é recebido o total de páginas calculada pelo seu BD, essa variável servirá para controle posterior
if(pagAtual > contador) then pagAtual = contador 'A página atual nunca poderá ser maior que o total de páginas existentes
objRs.AbsolutePage = pagAtual ' Muda o recordSet para a página atual
end Sub
%>
<%
sub Listar(obj, pag)'Aqui são(ou é?) listado seus registros
'Modificações devem ser feitas(preferencialmente) no html.
'Tá tá, eu sei que usat tabela é feio, mas fiz isso em 25 minutos
'e nem me liguei que poderia ter usado listas =PpP
if Not((obj.Eof) or (obj.Eof)) then
While(Not(obj.Eof) and(obj.AbsolutePage = pag))
Response.Write("<tr>")
For Each campo in obj.Fields
%>
<td><%=campo.value%></td>
<%
Next
Response.Write("</tr>")
obj.MoveNext
Wend
else
Response.Write("<tr><td>Dados não inicializados ou não há registros para paginação.</td></tr>")
end if
end sub
%>
<%
Sub ListarColunas(obj) 'Listando as colunas
Response.Write("<tr>")
For each Coluna in obj.Fields
%>
<td style="font-weight:bold"><%=Coluna.Name%></td>
<%
Next
Response.Write("</tr>")
end sub
%>
<%
sub Avancar(pag, cont)'Avançando nas páginas
'Se a pagina atual é menor que o total de páginas, link avançar ativado, senão, desativado
if(pag < cont) then
%>
<a href="?pag=<%=(pag+1)%>">Avançar</a>
<%
else
%>
Avançar
<%
end if
end sub
sub Voltar(pag, cont)'Retrocedendo nas páginas
'Parecido com o de Avançar, as o contrário =p
if(pag > 1) then
%>
<a href="?pag=<%=(pag-1)%>">Voltar</a>
<%
else
%>
Voltar
<%
end if
end sub
%>
<%
sub PaginaAtual(pag, obj)'Aqui é exibida a página atual e o total de páginas
%>
Página <%=pag%>/<%=obj.PageCount%>
<%
end sub
%>
<%
Sub ListaNumerada(pag, obj)'Gera a lista númerada das páginas, desativando apenas a página atual
For i = 1 to obj.PageCount
if(i <> pag) then
%>
<a href=?pag=<%=i%>&qtd=<%=tamanhoPag%>&txt_nome=<%=buscaNome%>><%=i%></a>
<%
else
%>
<%=i%>
<%
end if
next
End Sub
%>