"Simon Gare" <sg@simongare.com> wrote in message
news:uu**************@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("CarParkT oDriver").Value), -1, -2, -2, -2)
If ThisNumber > 0 then
fontcolor="#000000"
Else
fontcolor="#ffffff"
End if
%>><font color="<%=fontcolor%>"><%=
FormatNumber((DriverPayments.Fields.Item("CarParkT oDriver").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("CarParkToDriv er")%>">
<%=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("CarParkToDriv er")%>">
<span><%=FormatNumber(DriverPayments("CarParkToDri ver"))%></span></td>
OTH if you don't need to the 0 or negative number on the client then PW's
solution of just sending is a good one, there are no need for styles.
Applying the function approach though:-
<%
Function FormatPosNumOnly(val)
If val > 0 Then
FormatPosNumOnly= FormatNumber(val)
Else
FormatPosNumOnly= " " ' & n b s p ;
End If
End Function
%>
and:-
<td style="width:25px">
<%=FormatPosNumOnly(DriverPayments("CarParkToDrive r"))%>
</td>
Anthony.