Change font with IF statement problem
Web Server forum
Back To The Forum Home!Search!Private Messaging System

Web Server Talk Web Server Talk > Web Servers reviews > IIS server support > IIS ASP > Change font with IF statement problem




  Last Thread   Next Thread Next
  Show Printable Version Email this Page Subscribe to this Thread      Post New Thread    Post A Reply      

    Change font with IF statement problem  
Simon Gare


View Ip Address Report This Message To A Moderator Edit/Delete Message


 
06-19-06 12:21 AM

Hi,

trying to hide zero values by changing the colour of the font, problem is it
is still printing in a light grey colour? Code below but cant work out where
it is going wrong.


<td width="45"<%
ThisNumber =
FormatNumber((DriverPayments.Fields.Item("CarParkToDriver").Value), -1, -2,
-2, -2)
If ThisNumber > 0 then
fontcolor="#000000"
Else
fontcolor="#ffffff"
End if
%>><font color="<%=fontcolor%>"><%=
FormatNumber((DriverPayments.Fields.Item("CarParkToDriver").Value), -1, -2,
-2, -2) %></font></td>

Thanks in advance

Simon







[ Post a follow-up to this message ]



    Re: Change font with IF statement problem  
PW


View Ip Address Report This Message To A Moderator Edit/Delete Message


 
06-19-06 12:21 AM


"Simon Gare" <sg@simongare.com> wrote in message
news:uuhCKKykGHA.1264@TK2MSFTNGP05.phx.gbl...
> Hi,
>
> trying to hide zero values by changing the colour of the font, problem is
> it
> is still printing in a light grey colour? Code below but cant work out
> where
> it is going wrong.
>
>
> <td width="45"<%
>  ThisNumber =
> FormatNumber((DriverPayments.Fields.Item("CarParkToDriver").Value), -1, -2
,
> -2, -2)
>  If ThisNumber > 0 then
>  fontcolor="#000000"
>  Else
>  fontcolor="#ffffff"
>    End if
> %>><font color="<%=fontcolor%>"><%=
> FormatNumber((DriverPayments.Fields.Item("CarParkToDriver").Value), -1, -2
,
> -2, -2) %></font></td>
>
> Thanks in advance
>
> Simon
>
>


How about this instead ...

<td width="45">
<%
ThisNumber =
FormatNumber((DriverPayments.Fields.Item("CarParkToDriver").Value), -1, -2,
-2, -2)
If ThisNumber > 0 then
response.write ThisNumber
Else
response.write " "
End if
%>
</td>









[ Post a follow-up to this message ]



    Re: Change font with IF statement problem  
Dave Anderson


View Ip Address Report This Message To A Moderator Edit/Delete Message


 
06-19-06 12:23 PM

Simon Gare wrote:
> trying to hide zero values by changing the colour of the font,
> problem is it is still printing in a light grey colour? Code below
> but cant work out where it is going wrong.
>
> <td width="45"<%
>  ThisNumber =
> FormatNumber((DriverPayments.Fields.Item("CarParkToDriver").Value),
> -1, -2, -2, -2)
>  If ThisNumber > 0 then
>  fontcolor="#000000"
>  Else
>  fontcolor="#ffffff"
>    End if
> %>><font color="<%=fontcolor%>"><%=
> FormatNumber((DriverPayments.Fields.Item("CarParkToDriver").Value),
> -1, -2, -2, -2) %></font></td>

I see a number of things going wrong here. For starters, neither #000000 nor
#ffffff is grey, unless you consider black or white shades of grey. Tell us
which value is delivered in the response stream, not the color you perceive.
[View Source] is your best friend. Use it.

Next, comparing a string to a number is fraught with peril. FormatNumber
returns a string. 0 is a number. Is the string "0.00" supposed to be equal
to numeric zero? It is not.

Lastly, you go through the trouble of formatting your number twice -- once
for comparison, again for display. Why not simply display the number
conditionally instead of coloring it conditionally?



--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use
of this email address implies consent to these terms.







[ Post a follow-up to this message ]



    Re: Change font with IF statement problem  
Anthony Jones


View Ip Address Report This Message To A Moderator Edit/Delete Message


 
06-19-06 12:23 PM


"Simon Gare" <sg@simongare.com> wrote in message
news:uuhCKKykGHA.1264@TK2MSFTNGP05.phx.gbl...
> Hi,
>
> trying to hide zero values by changing the colour of the font, problem is
it
> is still printing in a light grey colour? Code below but cant work out
where
> it is going wrong.
>
>
> <td width="45"<%
>   ThisNumber =
>
FormatNumber((DriverPayments.Fields.Item("CarParkToDriver").Value), -1, -2,
> -2, -2)
>   If ThisNumber > 0 then
>   fontcolor="#000000"
>   Else
>   fontcolor="#ffffff"
>     End if
> %>><font color="<%=fontcolor%>"><%=
>
FormatNumber((DriverPayments.Fields.Item("CarParkToDriver").Value), -1, -2,
> -2, -2) %></font></td>
>
> Thanks in advance
>
> Simon
>
>

Lets take a look a FormatNumber.  -2 is the default for the parameters to
which you are supplying it as is the -1.  So lets stop doing that.  It's a
fair bet the DriverPayments is an ADO recordset hence this all becomes:-

FormatNumber(DriverPayments("CarParkToDriver"))

You only need the format in the output not in the test variable. In fact
it's debatable whether you need a seperate variable at all.

Rather then mucking about with an additional font element why not modify the
style of the TD.  In fact rather than mucking about with a style on a TD why
not use a class.

Also placing this sort of logic in line with HTML output makes things
difficult to read so use a function.



The result:-

In a block of server script at the top of the page

<%
Function GetTDClass(val)
If val > 0 Then
GetTDClass  = "pos"
Else
GetTDClass = "neg"
End If
End Function
%>

In the <head> of the page:-

<style>
td.pos {color:black}
td.neg {color:white}
</style>

Now in your recordset loop:-

<td style="width:25px"
class="<%=GetTDClass(DriverPayments("CarParkToDriver")%>">
<%=FormatNumber(DriverPayments("CarParkToDriver"))%></td>


Since it's likely that you are attempting to hide the 0 or negative values
by using white on white this is probably not the best approach.  If at some
point you wanted a different background color say a light blue pastel or
some such, these characters would become visible.  There are conditions
where having the value in the source output (although not currently visible)
is a useful. Use:-

<style>
td.pos span {visibility:visible}
td.neg span {visibility:hidden}
</style>

and:-

<td style="width:25px"
class="<%=GetTDClass(DriverPayments("CarParkToDriver")%>">
<span><%=FormatNumber(DriverPayments("CarParkToDriver"))%></span></td>



OTH if you don't need to the 0 or negative number on the client then PW's
solution of just sending &nbsp; is a good one, there are no need for sty
les.
Applying the function approach though:-

<%
Function FormatPosNumOnly(val)
If val > 0 Then
FormatPosNumOnly= FormatNumber(val)
Else
FormatPosNumOnly=  "&nbsp;"  ' & n b s p ;
End If
End Function
%>

and:-

<td style="width:25px">
<%=FormatPosNumOnly(DriverPayments("CarParkToDriver"))%>
</td>


Anthony.







[ Post a follow-up to this message ]



    Sponsored Links  




 





   All times are GMT. The time now is 01:04 PM.      Post New Thread    Post A Reply      
  Last Thread   Next Thread Next


Most Popular forums 

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is OFF
 
Medical and Health forum | Computer Games Reviews | Graphics design forum

Back To The Top
Home | Usercp | Faq | Register