Bom, tenho um probleminha e gostaria da ajuda de vocês.
Desenvolvo em ASP. Peguei um sistema meio pronto já onde há uma instrução (no codigo abaixo) para trazer dados do SQL. Esses dados se alteram de acordo com quem acessa o sistema. O mesmo identifica o cpf do usuario e traz os dados do banco que se referem aquele determinado usuário apenas.
É um sistema de calibração de instrumentos que exibe alguns dados do item juntamente com a ultima calibração feita (Dat_calibr) e a proxima a se fazer (Prox_calibr).
O problema é que não consigo fazer com que os dados com proxima calibração vencida sejam exibidos pintados de vermelho e os itens a vencer continuem em preto. Ele simplesmente esta exibindo TUDO em preto.
Abaixo tem um exemplo (NÚMERO DO PATRIMONIO) de como tentei fazer, mais não funfou. Aparentemente estou com problemas pra comparar datas.
Parece idiota, mais esta me dando mta dor de cabeça tentar resolver porque não estou conseguindo. rs Vlwws
'Select para pegar os dados do banco pertinentes ao usuário logado
sql = "SELECT *, convert(NVARCHAR(10), Dat_calibr, 103) AS Dat , convert(NVARCHAR(10), Prox_calibr, 103) AS Prox "
Question
Fells
Bom dia galera, Feliz 2012.
Bom, tenho um probleminha e gostaria da ajuda de vocês.
Desenvolvo em ASP. Peguei um sistema meio pronto já onde há uma instrução (no codigo abaixo) para trazer dados do SQL. Esses dados se alteram de acordo com quem acessa o sistema. O mesmo identifica o cpf do usuario e traz os dados do banco que se referem aquele determinado usuário apenas.
É um sistema de calibração de instrumentos que exibe alguns dados do item juntamente com a ultima calibração feita (Dat_calibr) e a proxima a se fazer (Prox_calibr).
O problema é que não consigo fazer com que os dados com proxima calibração vencida sejam exibidos pintados de vermelho e os itens a vencer continuem em preto. Ele simplesmente esta exibindo TUDO em preto.
Abaixo tem um exemplo (NÚMERO DO PATRIMONIO) de como tentei fazer, mais não funfou. Aparentemente estou com problemas pra comparar datas.
Parece idiota, mais esta me dando mta dor de cabeça tentar resolver porque não estou conseguindo. rs Vlwws
'Select para pegar os dados do banco pertinentes ao usuário logado
sql = "SELECT *, convert(NVARCHAR(10), Dat_calibr, 103) AS Dat , convert(NVARCHAR(10), Prox_calibr, 103) AS Prox "
sql = sql & " FROM Instrumentos "
sql = sql & " INNER JOIN Instr_local ON Instrumentos.Cod_local = Instr_local.Cod_local AND Instr_local.CPF_respons =" & "'" & request("CPF") & "'"
sql = sql & " WHERE (" 'Calibrações vencidas e que vencem no mes atual
sql = sql & " YEAR(Instrumentos.Prox_calibr) < YEAR(GETDATE()) OR "
sql = sql & " MONTH(Instrumentos.Prox_calibr) <= MONTH(GETDATE()) AND YEAR(Instrumentos.Prox_calibr) = YEAR(GETDATE())"
sql = sql & " ) OR"
sql = sql & " (" 'Calibrações a vencer no mês seguinte e que estão marcadas como "Notificar calibração a vencer"
sql = sql & " ((MONTH(Instrumentos.Prox_calibr) = MONTH(DATEADD(MONTH, +1, GETDATE())) AND MONTH(DATEADD(MONTH, +1, GETDATE())) <=12) AND YEAR(Instrumentos.Prox_calibr) = YEAR(GETDATE()) ) OR"
sql = sql & " ((MONTH(Instrumentos.Prox_calibr) = MONTH(DATEADD(MONTH, +1, GETDATE())) AND MONTH(DATEADD(MONTH, +1, GETDATE())) =13) AND YEAR(Instrumentos.Prox_calibr) = YEAR(DATEADD(YEAR, +1, GETDATE())) )"
sql = sql & " AND Instr_local.flg_aviso_calibracao_avencer = 1 )"
sql = sql & " ORDER BY Instrumentos.Prox_calibr"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, Session("Gestao_conn"), 3, 3
If Not rs.bof AND Not rs.EOF Then
rs.MoveFirst
' Cria-se uma variavel com mes/ano do sistema
DataSistem = Month(date) &"/"& Year(date)
' trecho que adiciona o zero a esquerda no mes que tiver apenas 1 digito. Ex.: dd/m/aaaa - transforma para dd/MM/aaaa!
If Len(MONTH(DataSistem)) < 2 THEN
DataSistem = "0"& Month(date) &"/"& Year(date)
End If
Do While Not rs.EOF
%><tr><%
'************************************************************************************************************************
'NÚMERO DO PATRIMONIO **************************************************************************************************
'If faz a comparação das datas... pega-se com o MID o mes e ano e compara com a data do sistema (DataSistem)
'e pinta de vermelho os dados das calibrações vencidos.
If (MID(rs.Fields("Prox"),4,7) < DataSistem) THEN
%>
<td width="15%" align="center">
<font size="1" color = "red"><%=rs.Fields("Num_patr").Value%></font>
</td>
<%Else%>
<td width="15%" align="center">
<font size="1"><%=rs.Fields("Num_patr").Value%> - <%=MID(rs.Fields("Prox"),4,7)%> - <%=DataSistem%> </font>
</td>
<% End if %>
Edited by FellsLink to comment
Share on other sites
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.