Ir para conteúdo

POWERED BY:

Arquivado

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

Victor Menezes

Problema com data no asp

Recommended Posts

Caros amigos

Estou com um problema tipico de data no asp

tenho pouco tempo de desenvolvimento por isso peço ajuda de vocês

 

O Problema:

 

Tenho 2 colunas

 

A primeira :

 

 

d_now = date()
d = split(DateAdd("d",1,d_now),"/")
data = d(2) & d(1) & d(0)
'response.Write(venc)
reagendamento = rs ("reagendamento")
menorvencimento = rs ("menorvencimento")
'
d_now1 = menorvencimento
d1 = split(DateAdd("d",1,d_now1),"/")
venc = d1(2) & d1(1) & d1(0)
if data < venc then
legenda = ("A Vencer")
coratual1 = "#00CC00"
elseif data > venc then
legenda = ("Vencido")
coratual1 = "red"
elseif data = venc then
legenda = ("Hoje")
coratual1 = "yellow"
end if
blz está funcionando normal.
na segunda coluna
eu quero a mesma coisa só com as cores e incluindo o reagendamento for = a vazio ficar cinza
if data < venc then
coratual1 = "#00CC00"
elseif data > venc then
coratual1 = "red"
elseif data = venc then
coratual1 = "yellow"
elseif reagendamento = "" then
coratual1 = "grey"
end if
creio eu que não funciona por que vazio é menor que data por isso fica vermelho
por favor me dem uma solução

Compartilhar este post


Link para o post
Compartilhar em outros sites

fica melhor fazendo isso com o SELECT CASE

Compartilhar este post


Link para o post
Compartilhar em outros sites

não sei fazer

 

com case tentei fazer alguma coisa

que fi em forum mais tbm deu errado

 

 

ps tentei fazer direto no sql tbm n deu

 

 

em março de 2012 eu tive um problema paricido como este só resolve com a ajuda de um analista de suporte...

Compartilhar este post


Link para o post
Compartilhar em outros sites

lembre-se de que o campo no bd deve aceitar nulo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o tipo da coluna estiver como Date se nao for enviando nada para o banco de dados para esse coluna ele vai ser prenchido com 0000-00-00.

Compartilhar este post


Link para o post
Compartilhar em outros sites

já tentei....

converto no sql quando nulo ficar " " com espaço

 

ai trabalho com "espaço" não é nulo mais , mais continua sendo menor que a data atual

 

RsilvaNeto isso é um fórum serio para profissionais na área . quer divulgar links vai procurar a sua turma



vou tentar tirar a conversão do sql para " ", deixar null e tentar fazer isso GilbertoJR



Gilberto Jr Não deu certo



tentei tbm

 

 

if venc = data then
coratual2 = "yellow"
elseif data > venc and reagendamento = " " then
coratual2 = "grey"
elseif data > venc and reagendamento > data then
coratual2 = "#00CC00"
elseif data > venc and reagendamento < data then
coratual2 = "red"
end if
não deu tbm

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentou assim:

 

 

<%
data=now
venc=null ' altere para =now, =now-5, venc=now+5
if data < venc then
coratual1 = "#00CC00"
elseif  data > venc then
coratual1 = "red"
elseif  data = venc then
coratual1 = "yellow"
else 'subjulgando que não satisfaça nenhum dos critérios acima, tipo no SELECT CASE
coratual1 = "grey"
end if
response.write(coratual1)
%>

fiz uns teste e rolou normal

Compartilhar este post


Link para o post
Compartilhar em outros sites

só não dá certo por 2 coisas

 

estou trabalhando isso dentro de um loop

 

e antes do else tem o se for menor que data atual fica vermelho e " " é menor que data atual ai ja fica vermelho e não chega rodar o else

Compartilhar este post


Link para o post
Compartilhar em outros sites

aconselho a habilitar o valor nulo no bd e faça a comparação no if ou select case, e vc pode por exemplo antes de inserir no bd verificar se o valor é"" e colocar um valor padrão, dae vc faz a comparação neste valor, entendeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

já fiz isso xanburzum se preferir mando o codigo inteiro pra vc testar
ta funcionando tudo o menor o maior o igual só não funciona o campo quando é nulo creio eu por que eu trato isso antes como menor que data atual

 

 <%
sql = "SELECT c.parcela12,cl.numeroctrabalho,cl.codcliente as codcliente,cl.nome as nome,cl.telefone,cl.cpf,cl.restricao,cl.ativo,cl.loja, c.codcliente as ccodcliente, CONVERT(VARCHAR(20), c.reagendamento, 103) as reagendamento, c.modulo, c.parcelas,c.numerodacobranca, c.valor,c.valorbonus,CONVERT(VARCHAR(20), c.agendamento, 103) agendamento,isnull(CONVERT(VARCHAR(20), c.menorvencimento, 103),'01-01-0000') as menorvencimento FROM cliente as cl left join cobranca as c on cl.codcliente = c.codcliente where ativo = 'sim'  and parcela12 <> 'quitado'"

set rs = conexao.execute (sql)

ct = rs ("numeroctrabalho")
codcliente = rs ("codcliente")
parcela12 = rs ("parcela12")

response.Write("<table align='center' cellpadding='0' cellspacing='0' style='margin: 0px; font-size:12px;' border='1'>")
response.Write("<tr class='teste'>")
response.Write("<td align='center' width='50px'>Legenda</td>")
response.Write("<td align='center' width='30px'> </td>")
response.Write("<td align='center' width='60px'>Loja</td>")
response.Write("<td align='center' width='250px'>Nome</td>")
response.Write("<td align='center' width='50px'>Modulo</td>")
response.Write("<td align='center' width='50px'>Parcelas</td>")
response.Write("<td align='center' width='40px'>Valor</td>")
response.Write("<td align='center' width='40px'>Vbonus</td>")
response.Write("<td align='center' width='100px'>Agendamento</td>")
response.Write("<td align='center' width='100px'>Reagendamento</td>")
response.Write("<td align='center' width='100px'>Menorvencimento</td>")
response.Write("<td align='center' width='50px'>Ativo</td>")
response.Write("<td align='center' width='50px'>Reagendar</td>")

response.Write("</table>")
response.write "<table  style='font-size:12px; width='100%' border='0'>"

coratual = "#ffffff"
coratual2 = "#ffffff"
do while not rs.EOF

if parcela12 = "quitado" then
legenda = "Quitado"
else

reagendamento = rs ("reagendamento")
menorvencimento = rs ("menorvencimento")

d_now = date()
d = split(DateAdd("d",1,d_now),"/")
data = d(2) & d(1)  & d(0)
reagendamento = rs ("reagendamento")
menorvencimento = rs ("menorvencimento")
'
d_now1 = menorvencimento
d1 = split(DateAdd("d",1,d_now1),"/")
venc = d1(2) & d1(1)  & d1(0)

teste = date()

''-------AQUI FUNCIONA CORRETO POIS NÃO TENHO DATA FAZIA-----------------------

if data < venc then
legenda = ("A Vencer")
coratual1 = "#00CC00"
elseif  data > venc then
legenda = ("Vencido")
coratual1 = "red"
elseif  data = venc then
legenda = ("Hoje")
coratual1 = "yellow"
end if


'' TERMINA ------------------------------------------



'INICIA O PROBLEMA

if reagendamento  < Ddata then
coratual2 = "#00CC00"
elseif  reagendamento  > data then
coratual2 = "red"
elseif  data = reagendamento  then
coratual2 = "yellow"
else 
coratual2 = "grey"
end if


end if

response.write "<tr>"
response.write "<td  width='50px' bgcolor="&coratual1&">"&(Legenda)
response.write "<td  width='30px' bgcolor="&coratual2&">"&(" ")
response.write "<td  width='60px' bgcolor="&coratual&">"& rs("Loja")
'response.write "<td  width='280px' bgcolor="&coratual&"><a href='teste.asp?codcliente="& rs("codcliente")&"' >"& rs("nome")&"</a>"
response.write "<td  width='250px' bgcolor="&coratual&"><a href='cobranca1.asp?codcliente="& rs("codcliente")&"' >"& rs("nome")&"</a>"
response.write "<td width='50px' bgcolor="&coratual&">"& rs("modulo")
response.write "<td width='50px' bgcolor="&coratual&">"& rs("parcelas")
response.write "<td width='40px' bgcolor="&coratual&">"& rs("valor")
response.write "<td width='40px' bgcolor="&coratual&">"& rs("valorbonus")
response.write "<td width='100px' bgcolor="&coratual&">"& rs("agendamento")
response.write "<td width='100px' bgcolor="&coratual&">"& rs("reagendamento")
response.write "<td width='100px' bgcolor="&coratual&">"& rs("menorvencimento")
response.write "<td width='50px' bgcolor="&coratual&">"& rs("Ativo")
response.write "<td  width='50px' bgcolor="&coratual&"><a href='reagendar.asp?ncobranca="& rs("numerodacobranca")&"' >Reagendar</a>"

rs.movenext

if coratual = "#ffffff" then
coratual = "#cccccc"
else
coratual = "#ffffff"
end if
loop          
           
%>

se eu retirar o else grey ai em sima funciona namoral o verde vermelho e amarelo
so quando tento incluir vazio na parada que da problema

Compartilhar este post


Link para o post
Compartilhar em outros sites
fiz esse teste fora do sistema tbm naum funfou


<%


data = 1

vencimento = ""


if vencimento = data then

teste = "yellow"

elseif vencimento > data then

teste = "green"

elseif vencimento = "" and vencimento < data then

teste = "grey"

elseif vencimento <> "" and vencimento < data then

teste = "red"

end if




response.write "<table bgcolor="&teste&">oi</table>"

response.write "<table>"

response.write "<tr width='50%'>"

response.write "<td bgcolor="&teste&" >"

response.Write("uagbjffab")

response.write " </td>"

response.write " </tr>"

response.write " </table>"



%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente com o IsDate

 

If not IsDate(vencimento) then

teste = "grey"

Compartilhar este post


Link para o post
Compartilhar em outros sites

problema resolvido !

Coloquei no sql para quando for null passar o campo para 0000/00/00

isnull(CONVERT(VARCHAR(20), c.reagendamento, 103),'0000/00/00') as reagendamento

 

depois fiz a comparação:

 

venc1 = rs ("reagendamento") 
 
if venc1 = "0000/00/00" then
venc1 = "0000-00-00"
else
d_now2 = reagendamento
'Aqui a variavel venc1 retira as barras e coloca "yyyymmdd"
d2 = split(DateAdd("d",1,d_now2),"/")
venc1 = d2(2) & d2(1)  & d2(0)
end if

 

Ai consegui trabalhar certinho com o resto:

 

if venc1 = "0000-00-00" then
coratual2 = "grey"
elseif venc1 < data then
coratual2 = "red"
elseif venc1 > data then
coratual2 = "green"
else 
coratual2 = "yellow"
end if

FIM.

 

AS VEZES UMA BOBERINHA ATRAPALHA NOSSA VIDA , FOI PURA FALTA DE ATENÇÃO

EU NÃO ESTAVA RETIRANDO AS BARRAS DA VARIÁVEL VENC1 E RETIRAVA DA VARIÁVEL DATA

 

OBRIGADO A TODOS PELA ATENÇÃO PRINCIPALMENTE o

xanburzum

e

 

 

Gilberto Jr


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza ASPmano

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.