Ir para conteúdo

POWERED BY:

Arquivado

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

pedrovisk

[Resolvido] Uso do Select Case

Recommended Posts

Turma,

 

Estou com uma dúvida na lógica do Select Case abaixo.

 

Preciso que a partir do campo DtAdmissao (Data) seja exibidos os registro nas cores:

Verde: para os admitidos com MENOS de 30 dias;

Azul: para os admitidos entre 30 e 60 dias

Roxo: para os admitidos entre 60 e 90 dias

 

DtAdmissao = Trim((rs.Fields.Item("DtAdmissao").Value))
	ABS(DtAFrente = DateDiff("D",Now,DtAdmissao))
	
	Select Case DtAFrente
		Case DtAFrente < 30 'Admmissão com menos de 30 dias
			DtAdmissao = "<font color='#009900'>" &DtAdmissao& "</font>"
		Case DtAFrente < 60 'Admissão entre 30 e 60 dias
			DtAdmissao = "<font color='#0000FF'>" &DtAdmissao& "</font>"
		Case DtAFrente < 90 'Admissão entre  60 e 90 dias
			DtAdmissao = "<font color='#FF00FF'>" &DtAdmissao& "</font>"
		Case Else
			DtAdmissao = DtAdmissao
	End Select

Pois na forma que está, fica TUDO em uma única cor.

 

Muito obrigado a quem poder ajudar.

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ted,

 

Fiz conforme sua orientação, mas continua exibindo na mesma cor. Será que o problema está nos operadores?

	Select Case (ABS(DtAFrente = DateDiff("D",Now,DtAdmissao)))
		Case DtAFrente < 30 'Admmissão com menos de 30 dias
			DtAdmissao = "<font color='#009900'>" &DtAdmissao& "</font>"
		Case DtAFrente < 60 'Admissão entre 30 e 60 dias
			DtAdmissao = "<font color='#0000FF'>" &DtAdmissao& "</font>"
		Case DtAFrente < 90 'Admissão entre  60 e 90 dias
			DtAdmissao = "<font color='#FF00FF'>" &DtAdmissao& "</font>"
		Case Else
			DtAdmissao = DtAdmissao
	End Select

Grato,

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

escreve na tela

DtAFrente

DtAdmissao

(ABS(DtAFrente = DateDiff("D",Now,DtAdmissao)))

 

para mim esta com erro ate nesta formatação ai

 

so para ter certeza e corrigir

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu faria assim:

 

DtAdmissao = Trim((rs.Fields.Item("DtAdmissao").Value))
DtAFrente = ABS(DateDiff("D",Now,DtAdmissao))
	
	Select Case DtAFrente
		Case DtAFrente < 30 'Admmissão com menos de 30 dias
			DtAdmissao = "<font color='#009900'>" &DtAdmissao& "</font>"
		Case DtAFrente < 60 'Admissão entre 30 e 60 dias
			DtAdmissao = "<font color='#0000FF'>" &DtAdmissao& "</font>"
		Case DtAFrente < 90 'Admissão entre  60 e 90 dias
			DtAdmissao = "<font color='#FF00FF'>" &DtAdmissao& "</font>"
		Case Else
			DtAdmissao = DtAdmissao
	End Select

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu faria assim:

 

DtAdmissao = Trim((rs.Fields.Item("DtAdmissao").Value))
DtAFrente = ABS(DateDiff("D",Now,DtAdmissao))
	
	Select Case DtAFrente
		Case DtAFrente < 30 'Admmissão com menos de 30 dias
			DtAdmissao = "<font color='#009900'>" &DtAdmissao& "</font>"
		Case DtAFrente < 60 'Admissão entre 30 e 60 dias
			DtAdmissao = "<font color='#0000FF'>" &DtAdmissao& "</font>"
		Case DtAFrente < 90 'Admissão entre  60 e 90 dias
			DtAdmissao = "<font color='#FF00FF'>" &DtAdmissao& "</font>"
		Case Else
			DtAdmissao = DtAdmissao
	End Select

 

O Certo não seria usar o Response.write ?

 

DtAdmissao = Trim((rs.Fields.Item("DtAdmissao").Value))

DtAFrente = ABS(DateDiff("D",Now,DtAdmissao))

 

Select Case DtAFrente

Case DtAFrente < 30 'Admmissão com menos de 30 dias

response.write "<font color='#009900'>" &DtAdmissao& "</font>"

Case DtAFrente < 60 'Admissão entre 30 e 60 dias

response.write "<font color='#0000FF'>" &DtAdmissao& "</font>"

Case DtAFrente < 90 'Admissão entre 60 e 90 dias

response.write "<font color='#FF00FF'>" &DtAdmissao& "</font>"

Case Else

response.write DtAdmissao

End Select

Compartilhar este post


Link para o post
Compartilhar em outros sites

Turma,

 

Testei todas a dicas acima e ainda não entra no Select Case, ou seja, as datas continuam em preto, conforme imagem abaixo da tela:

 

Imagem Postada

 

Muito obrigado,

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

imprime na tela o que lhe pedi para ver o real motivo do erro

 

vendo esses valores fica facil de corrigir

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mario Monteiro,

 

Conforme solicitado, segue as respostas referente ao que foi escrito na tela:

 

DtAdmissao = Trim((rs.Fields.Item("DtAdmissao").Value))
R: 20/11/2008

 

ABS(DtAFrente = DateDiff("D",Now,DtAdmissao))
R: Não exibe nada

 

DtAFrente = DateDiff("D",Now,DtAdmissao)
R: -39

 

Estou achando que o pro está justamento quando eu trabalho com a função ABS(), pois como você pode ver, ele não traz valor algum. Seria possível eu trabalhar com o IF?

 

Obrigado pela ajuda,

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você esta recuperando o DtAdmissao = Trim((rs.Fields.Item("DtAdmissao").Value))

com esta setado o campo no bd ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz,

 

Eu removi o TRIM, pois este campo no BD está como datetime. Exibi na tela cada um novamente e veja como ficou sem o TRIM:

 

DtAdmissao = (rs.Fields.Item("DtAdmissao").Value)
Response.Write(DtAdmissao)
R: 20/11/2008

 

Response.Write(DtAdmissao = (rs.Fields.Item("DtAdmissao").Value))
R: FALSE

 

Response.Write(ABS(DtAFrente = DateDiff("D",Now,DtAdmissao)))
R: 0

 

DtAFrente = DateDiff("D",Now,DtAdmissao)
Response.Write(DtAFrente)
R: -39

 

Realmente eu não sei o que está acontecendo.

 

Obrigado pela ajuda,

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta explicado o erro

 

tire o ABS e inverta as datas no datediff para ficarem positivas as diferenças e acho que resolve

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mário,

 

Realmente os valores ficaram corretos, como abaixo:

 

39

50

1309

157

67

...

 

Mas as datas não ficaram coloridas conforme informo no Select Case, é como se não pegasse o valor > 30; > 60 e > 90. Será que os operadores estão corretos?

 

Aqui vai onde eu aplico a formatação da cor do campo data conforme no Select Case.

 

No Select Case

DtAdmissao = "<font color='#009900'>" &DtAdmissao& "</font>"

Na tabela:

<td align="center"><%=DtAdmissao%></td>

Obrigado pela ajuda,

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Turma,

 

Como não conseguimos fazer com o Select Case, resolvi fazer com o If, Elseif e Else e funcionou perfeitamente. Abaixo está o código final:

 

DtAdmissao = (rs.Fields.Item("DtAdmissao").Value)
DtAFrente = DateDiff("D",DtAdmissao,Now)

If  DtAFrente	< 30 Then
	DtAdmissao = "<font color='#009900'>" &DtAdmissao& "</font>"
ElseIf DtAFrente < 60 Then
	DtAdmissao = "<font color='#0000FF'>" &DtAdmissao& "</font>"
ElseIf DtAFrente < 90 Then
	DtAdmissao = "<font color='#FF00FF'>" &DtAdmissao& "</font>"
Else
	DtAdmissao = DtAdmissao
End If

Muito obrigado pela ajuda de todos.

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente fazer o select case da forma correta

 

Select Case DtAFrente
		Case IS < 30 'Admmissão com menos de 30 dias
			Response.Write("<font color='#009900'>" &DtAdmissao& "</font>")
		Case IS < 60 'Admissão entre 30 e 60 dias
			Response.Write("<font color='#0000FF'>" &DtAdmissao& "</font>")
		Case IS < 90 'Admissão entre  60 e 90 dias
			Response.Write("<font color='#FF00FF'>" &DtAdmissao& "</font>")
		Case Else
			Response.Write(DtAdmissao)
	End Select

Compartilhar este post


Link para o post
Compartilhar em outros sites

fico feliz por isso

 

parabens

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.