Jump to content
Software FX Community

Point labels and border bug


User (Legacy)

Recommended Posts

I believe that I have found a bug somehow relating to the PointLabels and

Border properties of a series. When I use the following code:

<!-- #include virtual="/Include/CfxIE.inc" -->

<%

Set ChartFX1 = Server.CreateObject("ChartFX.WebServer")

ChartFX1.OpenDataEX COD_VALUES,1,1

ChartFX1.ValueEX(0,0) = 10

ChartFX1.CloseData COD_VALUES

chartFX1.Series(0).PointLabels = True 'LINE 1

ChartFX1.Series(CS_ALL).Border = True 'LINE 2

Response.Write ChartFX1.GetHtmlTag(300,300,"Image")

%>

The point label for Series(0) is NOT displayed. However, if I reverse the

order of LINE 1 and LINE 2, the point label for Series(0) IS displayed.

Also, if I keep the lines in the same original order and change LINE 2 to

use the value "0" instead of "CS_ALL," the label IS displayed. I can assign

the Border property of the whole chart instead of the Series(CS_ALL) and the

label IS displayed.

This code is SEVERLY reduced from the original but is the minimal code with

which I've been able to reproduce the problem. This behavior exhibits

itself with multiple data points per series and multiple series.

I'm am running ChartFX IE 5.5.3.0 on a Windows 2000 Server 5.00.2195 Service

Pack 1. The browser is IE 5 but should be irrelevant as an image is being

generated and no client side activity is being performed.

Obviously, with the aforementioned workarounds, this is not a critical bug.

If you need more information, please let me know.

Chris

Link to comment
Share on other sites

I have noticed that I was not entirely right on one of the workarounds.  I

said that if you assign the Border property of the whole chart instead of

the Series(CS_ALL), the label is displayed. This is true; however, if you

assign true to the Border property, the Border is NOT displayed. In my

limited testing, the only way I can get both the label and border displayed

is to set the border on each individual series (chart.series(n).border =

true).

Chris

"Chris Taylor" <ctaylor@belltechlogix.com> wrote in message

news:bhCk1WjuBHA.1412@webserver1.softwarefx.com...

> I believe that I have found a bug somehow relating to the PointLabels and

> Border properties of a series. When I use the following code:

>

> <!-- #include virtual="/Include/CfxIE.inc" -->

> <%

> Set ChartFX1 = Server.CreateObject("ChartFX.WebServer")

>

> ChartFX1.OpenDataEX COD_VALUES,1,1

> ChartFX1.ValueEX(0,0) = 10

> ChartFX1.CloseData COD_VALUES

> chartFX1.Series(0).PointLabels = True 'LINE 1

> ChartFX1.Series(CS_ALL).Border = True 'LINE 2

>

> Response.Write ChartFX1.GetHtmlTag(300,300,"Image")

> %>

>

> The point label for Series(0) is NOT displayed. However, if I reverse the

> order of LINE 1 and LINE 2, the point label for Series(0) IS displayed.

> Also, if I keep the lines in the same original order and change LINE 2 to

> use the value "0" instead of "CS_ALL," the label IS displayed. I can

assign

> the Border property of the whole chart instead of the Series(CS_ALL) and

the

> label IS displayed.

>

> This code is SEVERLY reduced from the original but is the minimal code

with

> which I've been able to reproduce the problem. This behavior exhibits

> itself with multiple data points per series and multiple series.

>

> I'm am running ChartFX IE 5.5.3.0 on a Windows 2000 Server 5.00.2195

Service

> Pack 1. The browser is IE 5 but should be irrelevant as an image is being

> generated and no client side activity is being performed.

>

> Obviously, with the aforementioned workarounds, this is not a critical

bug.

>

> If you need more information, please let me know.

>

> Chris

>

>

>

Link to comment
Share on other sites

When you execute the following code

ChartFX1.Series(CS_ALL).Border = True

It means that you want all your series to have border but it also means to

us that you want us to "ignore" the same attribute if it was set on a

per-series basis. The problem lies in the fact that keep many related

properties like Border and PointLabels internally as 1 number where every

bit is a flag so that line of code is actually clearing the PointLabels

flag.

The problem in your second posting is that even though you are turning on

the flag for the whole chart, you are also setting the PointLabels true for

a particular series and again we now use a different typemask per series.

Note that this should work

ChartFX1.Border = True

ChartFX1.Series(0).PointLabels = True

I would recommend you set first all the global flags, you can safely use the

chart property instead of Series(CS_ALL), and then customize the series as

desired.

--

Regards

JC

Software FX Support

"Chris Taylor" <ctaylor@belltechlogix.com> wrote in message

news:cKrmm7juBHA.1412@webserver1.softwarefx.com...

> I have noticed that I was not entirely right on one of the workarounds. I

> said that if you assign the Border property of the whole chart instead of

> the Series(CS_ALL), the label is displayed. This is true; however, if you

> assign true to the Border property, the Border is NOT displayed. In my

> limited testing, the only way I can get both the label and border

displayed

> is to set the border on each individual series (chart.series(n).border =

> true).

>

> Chris

>

> "Chris Taylor" <ctaylor@belltechlogix.com> wrote in message

> news:bhCk1WjuBHA.1412@webserver1.softwarefx.com...

> > I believe that I have found a bug somehow relating to the PointLabels

and

> > Border properties of a series. When I use the following code:

> >

> > <!-- #include virtual="/Include/CfxIE.inc" -->

> > <%

> > Set ChartFX1 = Server.CreateObject("ChartFX.WebServer")

> >

> > ChartFX1.OpenDataEX COD_VALUES,1,1

> > ChartFX1.ValueEX(0,0) = 10

> > ChartFX1.CloseData COD_VALUES

> > chartFX1.Series(0).PointLabels = True 'LINE 1

> > ChartFX1.Series(CS_ALL).Border = True 'LINE 2

> >

> > Response.Write ChartFX1.GetHtmlTag(300,300,"Image")

> > %>

> >

> > The point label for Series(0) is NOT displayed. However, if I reverse

the

> > order of LINE 1 and LINE 2, the point label for Series(0) IS displayed.

> > Also, if I keep the lines in the same original order and change LINE 2

to

> > use the value "0" instead of "CS_ALL," the label IS displayed. I can

> assign

> > the Border property of the whole chart instead of the Series(CS_ALL) and

> the

> > label IS displayed.

> >

> > This code is SEVERLY reduced from the original but is the minimal code

> with

> > which I've been able to reproduce the problem. This behavior exhibits

> > itself with multiple data points per series and multiple series.

> >

> > I'm am running ChartFX IE 5.5.3.0 on a Windows 2000 Server 5.00.2195

> Service

> > Pack 1. The browser is IE 5 but should be irrelevant as an image is

being

> > generated and no client side activity is being performed.

> >

> > Obviously, with the aforementioned workarounds, this is not a critical

> bug.

> >

> > If you need more information, please let me know.

> >

> > Chris

> >

> >

> >

>

>

Link to comment
Share on other sites

Thanks for the suggestions.  One question, though, is this feature/bug

documented anywhere? I could see many other people running into this,

particularly in the second situation (setting a chart-wide value AFTER

setting a series value). A suggestion - always use a different

bitmask/typemask per series. Then, when a chart-wide attribute is set,

apply the attribute to each bitmask. This would/should remove the pickiness

on the order of attribute settings. Yes, it is a little bit more work on

the back end, but it makes, IMHO, the API much more intuitive. Really,

unless it is the same attribute, the order of attribute assignment should

not matter (as long as it is before the chart generation, that is). Thanks

again.

Chris

"Software FX Support" <support@softwarefx.com> wrote in message

news:UTT29U$uBHA.1412@webserver1.softwarefx.com...

> When you execute the following code

>

> ChartFX1.Series(CS_ALL).Border = True

>

> It means that you want all your series to have border but it also means to

> us that you want us to "ignore" the same attribute if it was set on a

> per-series basis. The problem lies in the fact that keep many related

> properties like Border and PointLabels internally as 1 number where every

> bit is a flag so that line of code is actually clearing the PointLabels

> flag.

>

> The problem in your second posting is that even though you are turning on

> the flag for the whole chart, you are also setting the PointLabels true

for

> a particular series and again we now use a different typemask per series.

>

> Note that this should work

> ChartFX1.Border = True

> ChartFX1.Series(0).PointLabels = True

>

> I would recommend you set first all the global flags, you can safely use

the

> chart property instead of Series(CS_ALL), and then customize the series as

> desired.

>

> --

> Regards

>

> JC

> Software FX Support

>

> "Chris Taylor" <ctaylor@belltechlogix.com> wrote in message

> news:cKrmm7juBHA.1412@webserver1.softwarefx.com...

> > I have noticed that I was not entirely right on one of the workarounds.

I

> > said that if you assign the Border property of the whole chart instead

of

> > the Series(CS_ALL), the label is displayed. This is true; however, if

you

> > assign true to the Border property, the Border is NOT displayed. In my

> > limited testing, the only way I can get both the label and border

> displayed

> > is to set the border on each individual series (chart.series(n).border =

> > true).

> >

> > Chris

> >

> > "Chris Taylor" <ctaylor@belltechlogix.com> wrote in message

> > news:bhCk1WjuBHA.1412@webserver1.softwarefx.com...

> > > I believe that I have found a bug somehow relating to the PointLabels

> and

> > > Border properties of a series. When I use the following code:

> > >

> > > <!-- #include virtual="/Include/CfxIE.inc" -->

> > > <%

> > > Set ChartFX1 = Server.CreateObject("ChartFX.WebServer")

> > >

> > > ChartFX1.OpenDataEX COD_VALUES,1,1

> > > ChartFX1.ValueEX(0,0) = 10

> > > ChartFX1.CloseData COD_VALUES

> > > chartFX1.Series(0).PointLabels = True 'LINE 1

> > > ChartFX1.Series(CS_ALL).Border = True 'LINE 2

> > >

> > > Response.Write ChartFX1.GetHtmlTag(300,300,"Image")

> > > %>

> > >

> > > The point label for Series(0) is NOT displayed. However, if I reverse

> the

> > > order of LINE 1 and LINE 2, the point label for Series(0) IS

displayed.

> > > Also, if I keep the lines in the same original order and change LINE 2

> to

> > > use the value "0" instead of "CS_ALL," the label IS displayed. I can

> > assign

> > > the Border property of the whole chart instead of the Series(CS_ALL)

and

> > the

> > > label IS displayed.

> > >

> > > This code is SEVERLY reduced from the original but is the minimal code

> > with

> > > which I've been able to reproduce the problem. This behavior exhibits

> > > itself with multiple data points per series and multiple series.

> > >

> > > I'm am running ChartFX IE 5.5.3.0 on a Windows 2000 Server 5.00.2195

> > Service

> > > Pack 1. The browser is IE 5 but should be irrelevant as an image is

> being

> > > generated and no client side activity is being performed.

> > >

> > > Obviously, with the aforementioned workarounds, this is not a critical

> > bug.

> > >

> > > If you need more information, please let me know.

> > >

> > > Chris

> > >

> > >

> > >

> >

> >

>

>

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...