Ir para conteúdo

POWERED BY:

Arquivado

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

Fells

[Resolvido] Filtro por Data

Recommended Posts

Bom dia amigos. Como mtos sou iniciante em ASP.

Desenvolvi em sisteminha que busca no SQL Server os dados de uma determinada tabela e os exibe em uma pagina ASP.

 

O usuário tem campos para filtrar esses dados a sua escolha. Até ai tudo ok. O problema esta em fazer isso e exibir todos os dados filtrados pela data. Ou seja, o usuário digita a data em um campo e o sistema filtra e trás os dados da tabela.

 

Abaixo esta um trecho do código que está funcionando. Gostaria da ajuda de vcs para inserir um filtro por DATA além dos q ja tem.

 

filtro_Cliente        = Request.Form("filtro_Cliente")
filtro_Distribuicao   = Request.Form("filtro_Distribuicao")
filtro_Emitente       = Request.Form("filtro_Emitente")
filtro_Assunto 	      = Request.Form("filtro_Assunto")

%>
       <table width="100%" align="center">
         <tr>
           <td width="13%" align="center"><font size = 2 color = "#666666">Cliente</td>
           <td width="20%" align="center"><font size = 2 color = "#666666">Distribuicao</td>
           <td width="16%" align="center"><font size = 2 color = "#666666">Emitente</td>
           <td width="20%" align="center"><font size = 2 color = "#666666">Assunto</td>
         </tr>
         <tr>
           <td align="center">
             <input maxlength=50 class="texto" style="text-align: center" type="text" value="<%=Cliente%>" name="filtro_Cliente">
           </td>
           <td align="center">
             <input maxlength=60 class="texto" style="text-align: center" type="text" value="<%=Distribuicao%>" name="filtro_Distribuicao">
           </td>
           <td align="center">
             <input maxlength=50 class="texto" style="text-align: center" type="text" value="<%=Emitente%>" name="filtro_Emitente">
           </td>
           <td align="center">
             <input maxlength=100 class="texto" style="text-align: center" type="text" value="<%=Assunto%>" name="filtro_Assunto">
           </td>
           <td align="center">
             <input class="botao" style="width: 50%" type="submit" name="Filtrar" value="Filtrar">
           </td>
         </tr>
       </table>


  sql = "SELECT ContEng_AtaVisita.Numero, ContEng_AtaVisita.Cliente, ContEng_AtaVisita.Distribuicao, ContEng_AtaVisita.Emitente, ContEng_AtaVisita.Data, ContEng_AtaVisita.Assunto FROM ContEng_AtaVisita"
  sql = sql & " WHERE (Numero LIKE N'%" & filtro_Numero & "%')"

If filtro_Cliente <> "" Then
 sql = sql & " AND (Cliente LIKE N'%" & filtro_Cliente & "%')"
End If

If filtro_Distribuicao <> "" Then
 sql = sql & " AND (Distribuicao LIKE N'%" & filtro_Distribuicao & "%')"
End If

If filtro_Emitente <> "" Then
 sql = sql & " AND (Emitente LIKE N'%" & filtro_Emitente & "%')"
End If

If filtro_Assunto <> "" Then
 sql = sql & " AND (Assunto LIKE N'%" & filtro_Assunto & "%')" 
End If

sql = sql & " ORDER BY Numero"

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, Session("Gestao_conn"), 3

Compartilhar este post


Link para o post
Compartilhar em outros sites
data_filtro = "20/05/2011"
sql = sql & " AND (DATA = '"&data_filtro&"')" 
' no formato BR; Session.LCID = 1046

'se nao estiver no formato lcid o navegador inverte o mes e o ano

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Anderson, beleza cara?

 

Então estamos quaaase lá, rs...

Seguinte. No BD do Sql Server a DATA aceitava nulos, então como tinha só 2 campos nulos na Data (sem data), coloquei 1/1/1900, só pra poder modificar e desmarcar a opção Aceitar Nulos. Agora a DATA é obrigatória ter algum valor.

 

Quando inseri no código o trecho que passou: sql = sql & " AND (DATA = '"&data_filtro&"')"

 

O usuário passou a digitar a data desejada la no campo (filtro) porem o filtro trás os dados referente as duas datas 1/1/1900 que coloquei nos campos que ERAM nulos. =/

 

[RESOLVIDO] Filtro por Data

 

Ae galera, primeiramente queria agradecer ao Anderson que abriu caminho pro 'treco' aqui dar certo.

 

Abaixo esta o código funfando como eu queria... ele filtra pela data que o usuário digita no campo e tras os dados do BD!

 

Abraços.

 

filtro_Cliente        = Request.Form("filtro_Cliente")
filtro_Distribuicao   = Request.Form("filtro_Distribuicao")
filtro_Emitente       = Request.Form("filtro_Emitente")

filtro_Data 	      = Request.Form("filtro_Data")

filtro_Assunto 	      = Request.Form("filtro_Assunto")

%>

       <table width="100%" align="center">
         <tr>
           <td width="13%" align="center"><font size = 2 color = "#666666">Cliente</td>
           <td width="20%" align="center"><font size = 2 color = "#666666">Distribuicao</td>
           <td width="16%" align="center"><font size = 2 color = "#666666">Emitente</td>

           <td width="16%" align="center"><font size = 2 color = "#666666">Data</td>

           <td width="20%" align="center"><font size = 2 color = "#666666">Assunto</td>
           <td width="20%" align="center"></td>
         </tr>
         <tr>
           <td align="center">
             <input maxlength=50 class="texto" style="text-align: center" type="text" value="<%=Cliente%>" name="filtro_Cliente">
           </td>
           <td align="center">
             <input maxlength=60 class="texto" style="text-align: center" type="text" value="<%=Distribuicao%>" name="filtro_Distribuicao">
           </td>
           <td align="center">
             <input maxlength=50 class="texto" style="text-align: center" type="text" value="<%=Emitente%>" name="filtro_Emitente">
           </td>

           <td align="center">
             <input maxlength=10 class="texto" style="text-align: center" type="text" value="<%=Data%>" name="filtro_Data">
           </td>

           <td align="center">
             <input maxlength=100 class="texto" style="text-align: center" type="text" value="<%=Assunto%>" name="filtro_Assunto">
           </td>
           <td align="center">
             <input class="botao" style="width: 50%" type="submit" name="Filtrar" value="Filtrar">
           </td>
         </tr>
       </table>

sql = "SELECT ContEng_AtaVisita.Numero, ContEng_AtaVisita.Cliente, ContEng_AtaVisita.Distribuicao, ContEng_AtaVisita.Emitente, ContEng_AtaVisita.Data, ContEng_AtaVisita.Assunto FROM ContEng_AtaVisita"
sql = sql & " WHERE (Numero LIKE N'%" & filtro_Numero & "%')"

If filtro_Cliente <> "" Then
 sql = sql & " AND (Cliente LIKE N'%" & filtro_Cliente & "%')"
End If

If filtro_Distribuicao <> "" Then
 sql = sql & " AND (Distribuicao LIKE N'%" & filtro_Distribuicao & "%')"
End If

If filtro_Emitente <> "" Then
 sql = sql & " AND (Emitente LIKE N'%" & filtro_Emitente & "%')"
End If

If filtro_Data <> "" Then
sql = sql & " AND (DATA = '"&filtro_Data&"')"  
End If

If filtro_Assunto <> "" Then
 sql = sql & " AND (Assunto LIKE N'%" & filtro_Assunto & "%')" 
End If

sql = sql & " ORDER BY Numero"

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, Session("Gestao_conn"), 3

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.