ASE Home Page Products Download Purchase Support About ASE
ChartDirector Support
Forum HomeForum Home   SearchSearch

Message ListMessage List     Post MessagePost Message

  Sample dbdemo3 problem
Posted by Leon Lai on Oct-04-2002 14:47
Hi all, I've downloaded the demo and tried the sample program. I like the look of dbdemo3 clickable chart (i.e. every bar have different colors and when mouse over it, the value is shown), but I don't want my bar to be clickable. How can I make I bar chart look like the clickable chart with different color on each bar but not allow to be clicked?

Thanks.
Leon

  Re: Sample dbdemo3 problem
Posted by Peter Kwan on Oct-04-2002 15:48
Hi Leon,

There are many methods. If you want to code to be based on dbdemo3.asp, the simpliest method is to simply remove the image map from the code, that is, to remove the following lines from the code:


'Create an image map for the chart
imageMap = c.getHTMLImageMap("dbdemo3a.asp", "", _
    "onclick='appendURL(this); return true;' alt='{xLabel}: USD {value|0}K'")

<map name="map1">
<%=imageMap%>
</map>


Regards
Peter Kwan

  Re: Sample dbdemo3 problem
Posted by Leon Lai on Oct-04-2002 16:00
Yeah, it's really not clickable, however, I like to keep the feature of mouse over (show the value ). How to do so then? Thanks once again.

Leon
Peter Kwan wrote:
> Hi Leon,
>
> There are many methods. If you want to code to be based on dbdemo3.asp, the simpliest method is to simply remove the image map from the code, that is, to remove the following lines from the code:
>
>
> 'Create an image map for the chart
> imageMap = c.getHTMLImageMap("dbdemo3a.asp", "", _
>     "onclick='appendURL(this); return true;' alt='{xLabel}: USD {value|0}K'")
>
> <map name="map1">
> <%=imageMap%>
> </map>
>
>
> Regards
> Peter Kwan

  Re: Sample dbdemo3 problem
Posted by Peter Kwan on Oct-04-2002 16:24
Hi Leon,

I see what you mean now. In this case, I think you can simply leave the URL argument empty in the getHTMLImageMap call, that is, to replace the "imageMap" line with the following line:

imageMap = c.getHTMLImageMap("", "", "alt='{xLabel}: USD {value|0}K'")

Since there is no URL, the bar chart will be non-clickable, but still contains the tool tips.

Regards
Peter Kwan

  Re: Sample dbdemo3 problem
Posted by Leon Lai on Oct-04-2002 16:27
Thanks Peter
Thanks Thanks Peter
Peter Kwan wrote:
> Hi Leon,
>
> I see what you mean now. In this case, I think you can simply leave the URL argument empty in the getHTMLImageMap call, that is, to replace the "imageMap" line with the following line:
>
> imageMap = c.getHTMLImageMap("", "", "alt='{xLabel}: USD {value|0}K'")
>
> Since there is no URL, the bar chart will be non-clickable, but still contains the tool tips.
>
> Regards
> Peter Kwan

  x and y value on click
Posted by chethan H S on Dec-14-2007 17:14
Hi,

I am chethan. I need your help.

I need x and y value of the line chart when the mouse is clicked.

In java i have written the code as below .


String imageMap1 = chart.getHTMLImageMap("", "",
"onClick=javascript:showChartEditor('"+url+"'); ");

On click i am calling javascript function. In javascript function i need x and y value.

  Re: x and y value on click
Posted by Peter Kwan on Dec-14-2007 19:41
Hi Chethan,

I am not which (x, y) you want. I assume the chart is an XYChart, and you are referring to the (x, y) data values of the data point (as opposed to the pixel coordinates of the mouse).

The x value is represented as {x} in ChartDirector, and the y value is {value}. Note that the above assumes your data points have explicity x-coordinates. If you are using a label based x-axis, the x-axis label is {xLabel}.

For example:

//assume numeric x-axis
String imageMap1 = chart.getHTMLImageMap("", "",
   "onClick=\"myJsFunction('"+url+"', {x}, {value});\"");

or

//assume label based x-axis
String imageMap1 = chart.getHTMLImageMap("", "",
   "onClick=\"myJsFunction('"+url+"', '{xLabel}', {value});\"");

Hope this can help.

Regards
Peter Kwan

  Re: x and y value on click
Posted by chethan H S on Dec-17-2007 11:04
Hi Peter Kwan,

Thanks...

I am getting x and y value of the chart. One more help I need.

I am drawing two lines by considering x-axis as common and  by considering Y and
y1-axis. I want to know on which particular line I have clicked.

regard's

chethan H S

  Re: x and y value on click
Posted by Peter Kwan on Dec-17-2007 12:32
Hi chethan,

When you create the lines, you can give them names (the name parameter in the addLineLayer or addDataSet method call), which are the same names in the legend box. In your script, the name is represented as {dataSetName}. For example:

//assume numeric x-axis
String imageMap1 = chart.getHTMLImageMap("", "",
   "onClick=\"myJsFunction('"+url+"', {x}, {value}, '{dataSetName}');\"");

Hope this can help.

Regards
Peter Kwan

  Re: x and y value on click
Posted by chethan H S on Dec-17-2007 12:53
Hi Peter Kwan,

I got it and working fine.
thanks a lot...

How to put a .gif image on the top-left corner of the chart.

regards
chethan H S

  Adding clickable image to chart
Posted by chethan H S on Dec-17-2007 17:42
Attachments:
Hi,

how to add clickable image to chart and onclick it has to call javascript function.

Please have a look into the uploaded image.

regard's
chethan
chart.doc
chart.doc

23.50 Kb

  Re: Adding clickable image to chart
Posted by Peter Kwan on Dec-17-2007 22:38
Hi chethan,

I think in HTML, you can use an <IMG> tag to add an image in anywhere you want. For example:

<img src='/urlpath/to/myimage.gif' onclick='doSomething();' style='position:absolute;cursor:pointer'>
.... normal chart <img> here ....

Is there any reason why you do not want to use HTML?

Regards
Peter Kwan

  Re: Adding clickable image to chart
Posted by chethan H S on Dec-18-2007 12:43
Hi,

In our project we are not writing any HTML files. We are gererating all the files from
java itself.

I have written the below code to add Image to chart. But i am not able to add
onclick attribute.

chart.addText(0, 0, "<*img=/images/x.png*>");

Please let me know how to add onclick attribute.

Regard's
chethan H S

  Re: Adding clickable image to chart
Posted by Peter Kwan on Dec-19-2007 01:15
Hi Chethan,

You do not need to use an "HTML file". You just need to use HTML. (HTML means Hypertext Markup Language - it is a programming language, not a file format.)

You are certainly using HTML. For example, the onclick attribute is a standard HTML attribute, which you are using. The image map itself is also in HTML (as <area> tags). You can use your Java code to output HTML, such as the <IMG> tag mentioned in my last email.

Anyway, if you like the chart.addText method you are using, the HTML tags for the onclick attribute is the <AREA> tag. It is like:

ChartDirector.TextBox ttt = chart.addText(0, 0, "<*img=/images/x.png*>");

.......... draw chart as usual .............


String imageMap1 = chart.getHTMLImageMap("", "",
   "onClick=\"myJsFunction('"+url+"', {x}, {value}, '{dataSetName}');\"");
imageMap1 += "<AREA " + ttt.getImageCoor() + " onclick='doSomething();'>";

Hope this can help.

Regards
Peter Kwan

  Re: Adding clickable image to chart
Posted by chethan H S on Dec-19-2007 11:48
Hi Peter Kwan,

Thanks a lot.

It is working fine.

regard's
chethan H S

  dataSetName value is not comming
Posted by chethan H S on Jun-05-2008 16:06
Hi Peter Kwan,

when I click on the chart I am calling the javascript function, to which i am passing
x value , y value and the dataSetName.

I am getting x and y value correctly but i am getting dataSetName null.

what may be the problem? Please let me know what i should have to do.

the code i have written is as written below.

String chartImageMap = chart.getHTMLImageMap("", "",
      "onClick=javascript:showChartEditor ('{x}' , '{value}','{dataSetName}'); return false;");

waiting for your reply.

regard's

chethan H S

  Re: dataSetName value is not comming
Posted by Peter Kwan on Jun-05-2008 23:22
Hi Chethan,

The data set name will be empty if you have no data set name. (Have you pass the data set name to ChartDirector when you create the chart?) However, it should not be null.

If the above still does not solve the problem, is it possible to inform me the charting part of your code, and also the output of the script? For the output, please use IE to view the web page, then select "File/Save As", and save the output as a "web archive".

If you cannot post these information in a public forum, you may email to me at pkwan@advsofteng.net

Regards
Peter Kwan

  Re: dataSetName value is not comming
Posted by chethan H S on Jun-06-2008 14:04
Hi Peter Kwan,

The problem was dataSetName was not adding at the time of creating chart.

Now I am getting.

thanks a lot.

regard's
chethan H S

  Handling DST(Day light saving time) in chart
Posted by Chethan H S on Dec-17-2008 16:42
Attachments:
Dear Peter Kwan,

I need help from you.

Please have a look at attached snapshot.

In the table, some data are indicated by "*" which indicates DST(day light saving time) time.

example :
           2*:00 AM -2*:15Am  indicates dst is applied.

           Actual Data is 3:00 AM -3:15Am, Since Dst is applied 1 hour decreased and
indicated by (2*:00 AM -2*:15Am).

           while building chart it is taking 2:00 AM -2:15Am data only.

           Since 2:00 AM -2:15Am is already exist it is plotting  two y values in the same x-axis value.

                x                         y

           2:00 AM -2:15Am                537.45
           2*:00 AM -2*:15Am            543.18

           because of this getting wrong chart as shown in the snapshot.


          please let me  Is there any way to handle Dst in the chart?

          or what ever the chart  displaied is correct?


regard's

chethan H S
dst.doc
dst.doc

44.50 Kb

  Re: Handling DST(Day light saving time) in chart
Posted by Peter Kwan on Dec-17-2008 17:41
Hi Chethan,

From the chart, it seems your data are not ordered chronologically when passed to ChartDirector.

The ordering of the data should be like:

2:00am - 2:15am
2:15am - 2:30am
2:30am - 2:45am
2:45am - 2*:00am
2*:00am - 2*:15am
2*:15am - 2*:30am
2*:30am - 2*:45am
2*:45am - 3:00am

However, from the chart, it looks like the ordering is:

2:00am - 2:15am
2*:00am - 2*:15am
2:15am - 2:30am
2*:15am - 2*:30am
2:30am - 2:45am
2*:30am - 2*:45am
2:45am - 2*:00am
2*:45am - 3:00am

Would you mind to verify that your code is in fact passing the data to ChartDirector in the correct order?

If the data are in the correct order, you should see a line from 2:00 to 2:45, then flows back to 2:00 again, and then flows forward normally. This should accurately reflects the time as read from a correct clock (which does flow backwards when the DST occurs).

Hope this can help.

Regards
Peter Kwan

  Re: Handling DST(Day light saving time) in chart
Posted by Chethan H S on Dec-18-2008 14:33
Thanks a lot Peter Kwan.

I suggestion given by you helped me to identify the error.


regard's
chethan

  Re: Handling DST(Day light saving time) in chart
Posted by chethan H S on Feb-12-2009 21:21
Hi Peter Kwan,

When i asign List of Dates to x-axis

Can you please let me know how the chartDirector will handle DST time ,when list of date is set  to x-axis values.

Regard's
Chethan H S

  Re: Handling DST(Day light saving time) in chart
Posted by Peter Kwan on Feb-13-2009 04:40
Hi Chethan,

It depends on what you mean by "list of date is set to x-axis values".

If you are using an array of dates (java.util.Date[]) as the x-coordinates of your data points (using Layer.setXData), it is handled the same way as it is mentioned in my earlier message in this thread.

Hope this can help.

Regards
Peter Kwan

  Re: Handling DST(Day light saving time) in chart
Posted by chethan on Feb-15-2009 19:47
Attachments:
Hi peter Kwan,

Please have a look at the attached snapshot.

I am plotting line chart StartTime v/s valueNumeric.

Start time conatins DST values which are indicated by * (10/25/2009 2*:00:00)in the table.

But while drawing chart we are  converting  StartTime date values  into double values

and then assigning StartTime double values to x-axis value using

layer.setXData(startTime). But while converting we are removing * will not be there in

the date. just (10/25/2009 2:00:00) will be there. because of this we will get

(10/25/2009 2:00:00) twice in the  StartTime values. So we are getting wrong chart

as attached in the snapshot(First chart).

But we require the chart as shown in the second chart. We need x-axis label

(10/25/2009 2*:00:00) after (10/25/2009 2:45:00).


I tried this by commenting layer.setXData(startTime) and  assiging StartTime values as

labels using  xAxis().setLabels(startTime) . Here * will be there in the labels.

I am getting the correct lables with * and chart is also comming fine(please see the 3rd

chart with different values). But  the problem is we are displaying x-axis and y-axis

values in the tooltip. So if i comment layer.setXData(startTime)  i will not get x-axis

values in the tooltip.


I tried by setting both

  layer.setXData(startTime)
  xAxis().setLabels(startTime)

chart is  showing labels in the same position by overlapping at start point(4th chart) and chart line is drawn at the end(5th chart).

Please let me know is there any solution to get the correct chart.
(chart with label (10/25/2009 2*:00:00) after (10/25/2009 2:45:00) and line as shown in the second chart)

regard's
chethan
DstChart.doc
DstChart.doc

206.50 Kb
DstChart1.doc
DstChart1.doc

138.00 Kb

  Re: Handling DST(Day light saving time) in chart
Posted by Peter Kwan on Feb-15-2009 23:02
Hi Chethan,

The chart created by ChartDirector is not necessarily "wrong". It depends on how you want to represent date/time. In ChartDirector, a true date/time aixs represents date/time as "clock time" (the time you see in "clocks", which has 24 hours a day). In "clock time", the time can flow backwards due to DST adjustment. This is consistent with the behaviour of the "clock", which does flow backward (usually adjusted manually) to adjust for DST.

Some applications may prefer to represent them based on the theory of physics (sometimes known as elasped time, in which a day has an unpredictable number of hours due to unpredictable DST rules). Other applications may prefer to represent time using a custom clock or calendar (such as finance charts, using the financial clock and calendar).

In any case, if you would not like to use "clock time", you may set up the x-axis as a "label based" axis (not true date/time axis). In your case, if you want the DST hour to be present as 2*:00:00, it is considered as a custom clock. The code should be like:

c.xAxis().setLabels(xAxisLabels);

The setXData method should not be used any more.

If you have too much x-axis labels and they overlap, you may use Axis.setLabelStep to step the labels.

For the tooltips, you should use {xLabel} for the x-axis labels, and {value} for the data value. (Do not use {x|hh:nn:ss}.)

Hope this can help.

Regards
Peter Kwan

  Re: Handling DST(Day light saving time) in chart
Posted by chethan on Feb-16-2009 14:17
Thanks a lot Peter Kwan.

I am changing the code. After that i will let you know the result.

Regard's
chethan

  Problem while drawing line
Posted by Chethan H S on Jul-25-2009 18:52
Attachments:
Hi Peter Kwan,

Please have a look at the attachement.

While drawing line i have the following x-axis and y-axis values.


x-axis        2           6          14      17        20

y-axis       1500      2000               2500


In chart it is drawing the line from 1500 to 2000 only. But at x-axis value 17 corresponding y value 2500 is there. In this case i have to draw dot at that point.
Please let me know how can i handle it.

Please consider there may be more number of null values.


x-axis        2           6          14      17        20      25          30        35

y-axis       1500      2000               2500               200                   300


in this case i have to draw dot at  2500, 200 and 300.

waiting for your reply.

regard's

Chethan H S
chart.doc
chart.doc

32.00 Kb

  Re: Problem while drawing line
Posted by Peter Kwan on Jul-27-2009 19:13
Hi Chethan,

In your case, there are two methods to get the chart you want:

(a) If your data are from a database, you have get only the records that have data values. (You can use a SELECT statement to get only the records that have data values.)

(b) If you want to get all records, even if they have no data values, and if you are using DBTable to read the data, it will use Chart.NoValue to represent missing values.

In a line chart, by default, a missing value will result in broken line (discontinuous line). If you want to ignore the missing value (just join through the points), you may use LineLayer.setGapColor. For example (in Java/C#):

myLineLayer.setGapColor(Chart.SameAsMainColor);

Hope this can help.

Regards
Peter Kwan

  Re: Problem while drawing line
Posted by Chethan H S on Jul-27-2009 20:38
Attachments:
Hi Peter Kwan,

Please have a look at the attached file.

I just want to put dot at that particular point.

And to test with LineLayer.setGapColor i am not getting this method. may be version problem.


please suggest me how to put dot only at that point.


regard's

chethan H S
chart.doc
chart.doc

31.50 Kb

  Re: Problem while drawing line
Posted by Peter Kwan on Jul-27-2009 22:38
Hi Chethan,

The LineLayer.setGapColor exists for a long time already (may be over 6 years). If it does not exist, would you mind to check if your are calling it using a LineLayer object? The "myLineLayer.setGapColor(Chart.SameAsMainColor);" only works if myLineLayer is actually declared as a LineLayer object. If it is declared as a Layer object, the C#/Java compiler will not allow you to compile the code.

Anyway, if you just add a dot at the isolated point, you do not need to use LineLayer.setGapColor. You can just add a scatter layer using the same data as your line layer (then all data points would have symbols), or using only the data for the isolated dots. For example:

c.addScatterLayer(myDataX, myDataY, "", Chart.CircleSymbol, 3, 0xffcc99, 0xffcc99);

Hope this can help.

Regards
Peter Kwan

  Re: Problem while drawing line
Posted by Chethan H S on Jul-28-2009 19:34
Hi Peter Kwan,

It is working fine.

thanks.

regard's

Chethan

  Chart resize problem
Posted by Chethan H S on Jul-30-2009 18:56
Attachments:
Hi Peter Kwan,

Please have a look at the attached snapshot.

I have chart with fixed height and width.

At Run time i will add some legends,so i need to resize the chart will adding new legend.


I am using

1. chart.getDrawArea().resize(getChartWidth(),getChartHeight()+getLegendSize()*20);

  getLegendSize() returns no of Legends.


2. chart.setSize(getChartWidth(),getChartHeight()+getLegendSize()*20);
    in both the case chart is not displaying properly. chart is compressing.


I need the chart as shown in the required chart in the attachement.


Please let me know what may be the problem while resizeing the chart.


Regard's
Chethan H S
chartSeries.doc
chartSeries.doc

85.00 Kb

  Re: Chart resize problem
Posted by Peter Kwan on Jul-31-2009 01:17
Hi Chethan,

As your MS Word document does not have an accurate image of what you get, so it is hard for me to diagnose the problem with the MS Word document. (The MS Word document may itself stretch or compress the image to fit the page size, and it is hard to know what is the original image.) Would you mind to attach the exact original image without manipulation (excepting zipping it)? If the original images are screen shots, please save it as PNG format or zip it first.

Anyway, it is normal that "chart.getDrawArea().resize(getChartWidth(),getChartHeight()+getLegendSize()*20)" will resize the chart (either stretch it or compress it), because it is what "resize" normally means to an image. So this method is not suitable for your case.

If you call chart.setSize before you draw or layout the chart (before calling makeChart, makeImage, makeSession or layout), it should work.

Hope this can help.

Regards
Peter Kwan

  Re: Chart resize problem
Posted by Chethan H S on Jul-31-2009 11:54
Attachments:
Hi Peter Kwan,

I have attached the an excel sheet with charts.

Following detail shows the parameters for chart. These parameters are fixed.

<xChartWidth>750</xChartWidth>
<xChartHeight>400</xChartHeight>
<xPlotAreaPosX>80</xPlotAreaPosX>
<xPlotAreaPosY>60</xPlotAreaPosY>
<xPlotAreaWidth>510</xPlotAreaWidth>
<xPlotAreaHeight>190</xPlotAreaHeight>

First i will construct chart using the above parameters.

Then i will add layer , legend and  then resize ,again add layer,legend and resize the chart and repeat the same thing.

i am using chart.getDrawArea().resize(chart1.getChartWidth(), chart1.getChartHeight()+getSeriesSize()*20) method.


when i keep on adding the layer, ploatarea and labels on the chart are compressing. But actually i want to increase the chart height so that all the legends should be displayed.


Since i am getting these datapoints dynamically i cannot calculate the chart height in the beging itself.

Please let me know how can i increase the only chart height after adding the layer by layer.

waiting for reply.

regard's
Chethan
chart.xls
chart.xls

124.00 Kb

  Re: Chart resize problem
Posted by Peter Kwan on Aug-01-2009 00:59
Hi Chethan,

As explained in my previous email, "resizing" in ChartDirector is similar to how you resize a photograph. The contents will be stretched or compressed as you resize it. If you want to change the size of canvas (drawing surface), please use setSize, not resize.

Please replace the following code:

chart.getDrawArea().resize(chart1.getChartWidth(), chart1.getChartHeight()+getSeriesSize()*20)

with:

chart.setSize(chart1.getChartWidth(), chart1.getChartHeight()+getSeriesSize()*20)

or

chart.getDrawArea().setSize(chart1.getChartWidth(), chart1.getChartHeight()+getSeriesSize()*20, 0xcccccc);


If I were you, I would modify the code structure so that you do not need to resize the chart. I guess you are doing something like:

while has_more_dataset
{
    read_the_dataset
    add_the_dataset_to_the_chart
    resize the chart
}

If I were you, I would use the following code structure, which separates business logic (the database code) from the presentation (the charting code).

while has_more_dataset
{
    read_the_dataset
    add_the_data_array_in_a_Vector
}

//at this point, your code should know the total number of datasets
create_the_chart_large_enough_for_all_datasets
add_the_datesets_in_the_Vector_to_the_chart

While you cannot calculate the chart height in the beginning, you do not need to create the chart in the beginning either. You should be able to create the chart after you can calculate the chart height.

Hope this can help.

Regards
Peter Kwan

  Re: Chart resize problem
Posted by Chethan H S on Aug-04-2009 09:56
Hi Peter Kwan,

chart.getDrawArea().setSize() is working fine.

Thanks  a lot.

regard's
Chethan

  How to calculate chart height dynamical depending upon number of legends
Posted by chethan H S on Sep-17-2009 14:49
Dear Peter Kwan,

Project have sevaral display. for each display we have configaration(XML file).
Each display will have chart means we will configure in the XML file.

In XML file we will specify the chart hight , width and all the necessarray data.

Each Display will have a chart of different width and height.


for each chart data will come dynamicall from the database.

Depending upon the data we will identify the number of legends to be displayed.


Suppose assume i have to display 10 legends for one chart and 15 legends for another chart.

so i have to increase the chart height so that all the legends should be displayed.


so how can i calculate the how much chart  height i have to increase depending on the

number of legends.


Assume

i have one chart of height 500  and width 700  in one display and need to display 10 legend. Assume  each legend string length is 10. so totally  i have to display 100 characters.

i have another chart of height 500  and width 1000  in another display and need to display 15 legends. And string length of each legend is 10. Then i have to display 150 characters.


I have to write common code for all display to increase the chart height depending upon
number of legends to be displayed by considering chart width.(Means how many characters can be displayed per row in the legendBox)

Regard's
Chethan

  Re: How to calculate chart height dynamical depending upon number of legends
Posted by Peter Kwan on Sep-18-2009 00:29
Hi chethan H S,

After you have created the chart object and enter all your data to the chart, you can use:

Call c.layoutLegend()
height = c.getLegend().getHeight()

Now you know the legend height, and can adjust the chart size accordingly (eg. using c.getDrawArea().setSize(...), etc).

Hope this can help.

Regards
Peter Kwan

  Tooltip problem.
Posted by CHETHAN on Nov-27-2009 12:06
Attachments:
Hi Peter kwan,

I have problem with displaying tooltip. Please have a look at the attached snapshots.

I have data table with only two data points, as attched in the snapshot.

And the line is drawn between those two points. When i move the mouse over the line

from the first point to second point, till the center of the line, first data point value ,after that second point value will be displayed in the tooltip.

Please look at the chart, i have marked the on the line in red colour where the mouse is positioned.

In the first chart it is displaying the first data point value. Actualy at that point x-axis and y-axis will be different.
  axis-value is : 11/02/2009 00:00:00
  y value is     : around 5.25

at this point tool tip should not show the first point value.
  i.e  x-axis   : 10/28/2009 00:00:00
       y-value : 4

my requirement is

1. Either it should show the tool tip where exactly the points are there. or

2. it shoult automatcally calculate and display the selected poisition value.


i have configured tool tip format as shown below.
In our project we will configure every thing in xml file and after that we wil read.
<xTooltipFormatString>Y axis: {value} and X axis: {x|mm/dd/yyyy hh:nn:ss}</xTooltipFormatString>

please let me know is there any why to do this.



Regard's

Chethan
tooltip.doc
tooltip.doc

39.00 Kb

  Re: Tooltip problem.
Posted by Peter Kwan on Nov-27-2009 20:48
Hi CHETHAN,

The behaviour you see is the expected behaviour for a line chart.

In all ChartDirector XY charts, the tooltips refer to the data points (the values from the original data). In many chart types, a data point may be represented as "a region" (eg. as a bar in a bar chart, as a box in a box-whisker chart, as a bubble in a bubble chart, as a symbol in a scatter chart, as a line segment in a line chart, as an area region in an area chart, etc). In this case, the tooltip of that data point will cover the whole region.

In your case, if you want to just have the exact "data point" showing the tooltip, and not the extended region (the line segment), you may disable the tooltip for the line layer, and add another transparent scatter layer for the tooltips. The code is like (in VB/VBScript):

Set layer = c.addLineLayer(myYData, ....) 'your original line layer
Call layer.setHTMLImageMap("{disable}") 'no image map

'The image map is added to the scatter layer. The scatter layer is transparent so it
'will not affect your chart. The size of the scatter symbol (10 x 10 pixels below)
'determines the size of the "hot spot" of the image map.
Call c.addScatterLayer(myXData, myYData, "", cd.SquareSymbol, 10, cd.Transparent, cd.Transparent)

Hope this can help.

Regards
Peter Kwan

  Re: Tooltip problem.
Posted by CHETHAN on Dec-01-2009 19:26
Attachments:
Thanks Peter Kwan.

Your suggestion is working fine. But one more problem i am facing.

When ever DST occures, we are using setLabels() function to mark the x-axis values and we are not using setXData() function. because when ever DST occures i need to show *. This is suggested by you only earlier.

for setLabels()  function we are paasing string array values.
when ever i create a scatter layer to display tooltip at desired point, it will take only
double values as parameters for xData and yData. But i have string array data for xData.
Even i am not able to convert to double because it has * values.

please have look at the attached snapshot for dst chart.

please let me know is there any other solution for this.

regard's
chethan
chartTooltip.doc
chartTooltip.doc

36.00 Kb

  Re: Tooltip problem.
Posted by Peter Kwan on Dec-02-2009 00:38
Hi CHETHAN,

If you do not use setXData for the line layer, you do not need to use x-coordinates are the scatter layer as well. Just put Nothing for the x-coordinates:

Call c.addScatterLayer(Nothing, myYData, "", cd.SquareSymbol, 10, cd.Transparent, cd.Transparent)

Hope this can help.

Regards
Peter Kwan

  Re: Tooltip problem.
Posted by CHETHAN on Dec-02-2009 16:22
Attachments:
Thanks  Peter kwan.

It is working fine for line chart. But for stepline chart it is showing in the middle of the line. Please have look at the attached snapshot.

Is there any way to dyanamicaly get the  position value when i move over the chart and display it as tooltip? please let me know if there is any method to do this.
Means  it should take the current position value and display it.


And one more problem , in the stepLine chart end point is not drawing. please have a look at the charts in the second page. what may be the problem? please let me what i should have to do to draw missed line.

regard's
chethan
chartTooltip.doc
chartTooltip.doc

45.00 Kb

  Re: Tooltip problem.
Posted by Peter Kwan on Dec-03-2009 01:13
Hi CHETHAN,

The tooltips are only available on the middle of the line because the code is designed to meet your earlier requirement. (In your earlier message, you mentioned "either it should show the tool tip where exactly the points aree". So the tooltips is now shown in "where exactly the points are".)

If you do not want to meet the above requirement for a step line layer, please remove the addScatterLayer code and the setHTMLImageMap("{disable}") code when you are using a step line layer.

To get the position of the mouse, you may use the "mouse move" evenf of your GUI framework. (If you are writing a web application, it should be called "onmousemove" in the Javascript framework.)

(a) The GUI framework typically will give you the pixel (x, y) coordinates of the mouse.

(b) Your code already knows the position of the axis (they are specified by your code).

(c) Your code may already knows the scale of the axis (they may be provided by your code), or if the scale is determined by ChartDirector auto-scaling, you may use Axis.getMinValue and Axis.getMaxValue to query the axis scale.

Without these information, you can compute the data value under the mouse easily. An example is in:

http://www.chartdir.com/forum/download_thread.php?bn=chartdir_support&thread=1213255394#N1213293151

(Note: If you are using a label based x-coordinate, the x-coordinate computed will be the index to your labels array. You would need to use the index to look up your labels array for the real label.)

Hope this can help.

Regards
Peter Kwan

  Re: Tooltip problem.
Posted by Peter Kwan on Dec-03-2009 01:35
Hi CHETHAN,

Sorry. I read your MS Word document once again and see that why you think it is strange the tooltip is at the center of the line only.

To see where exactly the hot spots are, please use a big and non-transparent scatter symbol when you add the scatter layer. If the scatter symbols are not at the correct positions, there may be some inconsistency in the x-coordinates of the step line layer and the scatter layer. (Are you using any x-coordinates for the step line layer?)

Anyway, I think for the step line layer, you do not need to have the scatter layer for the tooltips at all. Just use the original hot spots for the step line layer.

For why the last vertical segment is now visible, I suspect it is hidden behind the black line at the right side of the plot area. It seems the black line is part of the plot area border. If you do not need the border, please set the border to transparent, like:

c.setPlotArea(leftX, topY, plotAreaWidth, plotAreaHeight, plotAreaBackground, -1, Chart.Transparent, horizontalGridColor, verticalGridColor);

Alternatively, you may leave a 1 pixel margin between the right plot area border and the end of the axis scale, so that the border will not block the last vertical line:

c.xAxis().setMargin(1)

Hope this can help.

Regards
Peter Kwan

  Re: Tooltip problem.
Posted by CHETHAN on Dec-03-2009 16:13
Attachments:
Thanks Peter kwan.

The last vertical segment is visible now in the stepLine chart.

Regarding the tooltip, finally we decided to display in the position where exactly the hot spots are present.

For the stepLine chart if I use the original hot spots(without using scatter layer), tooltip will be displayed only after the middle of the line(marked in red in the chart).

If I use the scatter layer, hot spots are showing properly ,but tooltip will be displayed only in the middle of the line. it is not displaying where exactly hot spots are present.

Please have a look at the attached snapshots.


I will use scatter layer for stepLine also. Please let me know why tooltip is not displaying in the scatter layer hot spots.


regard's
chethan H S
chartTooltip.doc
chartTooltip.doc

38.00 Kb

  Re: Tooltip problem.
Posted by Peter Kwan on Dec-04-2009 01:36
Attachments:
Hi CHETHAN,

I have attached my test code for your reference. It is usually the same data as your chart. In my case, the tooltips appear normally.

If the above still cannot solve the problem, is it possible to send me a sample code to allow me to reproduce the problem (may be you can modify my sample code)? I would need to exact code to know how your chart is configured.

Regards
Peter Kwan
stepline.jsp
<%@page import="ChartDirector.*" %>
<%@page import="java.util.*" %>
<%
// The data for the chart
double[] dataY0 = {10, 20, 30, 40};
double[] dataX0 = {0, 3, 6, 9};

String[] labels = 
{
	"10/25/2009 01:00", "10/25/2009 01:05", "10/25/2009 01:10", "10/25/2009 01:15",
	"10/25/2009 01:20", "10/25/2009 01:25", "10/25/2009 01:30", "10/25/2009 01:35",
	"10/25/2009 01:40", "10/25/2009 01:45"
};

// Create a XYChart object of size 500 x 270 pixels, with a pale blue (e0e0ff)
// background, black border, 1 pixel 3D border effect and rounded corners
XYChart c = new XYChart(600, 300, 0xe0e0ff, 0x000000, 1);
c.setRoundedFrame();

// Set the plotarea at (55, 60) and of size 520 x 200 pixels, with white (ffffff)
// background. Set horizontal and vertical grid lines to grey (cccccc).
c.setPlotArea(50, 60, 525, 200, 0xffffff, -1, -1, 0xcccccc, 0xcccccc);

// Add a legend box at (55, 32) (top of the chart) with horizontal layout. Use 9 pts
// Arial Bold font. Set the background and border color to Transparent.
c.addLegend(55, 32, false, "Arial Bold", 9).setBackground(Chart.Transparent);

// Add a title box to the chart using 15 pts Times Bold Italic font. The text is
// white (ffffff) on a deep blue (000088) background, with soft lighting effect from
// the right side.
c.addTitle("Long Term Interest Rates", "Times New Roman Bold Italic", 15, 0xffffff
    ).setBackground(0x000088, -1, Chart.softLighting(Chart.Right));

c.addScatterLayer(dataX0, dataY0, "", Chart.SquareSymbol, 7, 0x000000);

// Add a red (ff0000) step line layer to the chart and set the line width to 2 pixels
StepLineLayer layer0 = c.addStepLineLayer(dataY0, 0xff0000, "Country AAA");
layer0.setXData(dataX0);
layer0.setLineWidth(2);
layer0.setHTMLImageMap("{disable}");

c.xAxis().setLabels(labels);
c.xAxis().setLabelStep(2);

// Output the chart
String chart1URL = c.makeSession(request, "chart1");

// Include tool tip for the chart
String imageMap1 = c.getHTMLImageMap("", "",
    "title='{value} @ {xLabel}'");
%>
<html>
<body style="margin:5px 0px 0px 5px">
<img src='<%=response.encodeURL("getchart.jsp?"+chart1URL)%>'
    usemap="#map1" border="0">
<map name="map1"><%=imageMap1%></map>
</body>
</html>


  Re: Tooltip problem.
Posted by CHETHAN on Dec-04-2009 20:44
Attachments:
Dear Peter Kwan,

Thanks for your help.

I Have modified your JSP file for with DST and without DST.

Please let me know is there any problem with the code.

Regard's
Chethan H S
stepline.jsp
<%@page import="ChartDirector.*" %>
<%@page import="java.util.*" %>
<%
// The data for the chart without DST
double[] dataY0 = {10.0, 20.0, 30.0, 40.0}; 
// Actual date list is {10/25/2009 01:00 , 10/25/2009 01:15 , 10/25/2009 01:30 , 10/25/2009 01:45}; 
// After converting to double
double[] dataX0 = {6.33920292E10, 6.33920301E10, 6.3392031E10, 6.33920319E10};
 
// Create a XYChart object of size 500 x 270 pixels, with a pale blue (e0e0ff)
// background, black border, 1 pixel 3D border effect and rounded corners
XYChart c = new XYChart(600, 300, 0xe0e0ff, 0x000000, 1);
c.setRoundedFrame();

// Set the plotarea at (55, 60) and of size 520 x 200 pixels, with white (ffffff)
// background. Set horizontal and vertical grid lines to grey (cccccc).
c.setPlotArea(50, 60, 525, 200, 0xffffff, -1, -1, 0xcccccc, 0xcccccc);

// Add a legend box at (55, 32) (top of the chart) with horizontal layout. Use 9 pts
// Arial Bold font. Set the background and border color to Transparent.
c.addLegend(55, 32, false, "Arial Bold", 9).setBackground(Chart.Transparent);

// Add a title box to the chart using 15 pts Times Bold Italic font. The text is
// white (ffffff) on a deep blue (000088) background, with soft lighting effect from
// the right side.
c.addTitle("Long Term Interest Rates", "Times New Roman Bold Italic", 15, 0xffffff
    ).setBackground(0x000088, -1, Chart.softLighting(Chart.Right)); 

// Add a red (ff0000) step line layer to the chart and set the line width to 2 pixels
StepLineLayer layer0 = c.addStepLineLayer(null, 0xff0000, "Country AAA");
layer0.addDataSet(dataY0);
layer0.setXData(dataX0);
layer0.setLineWidth(2);

layer0.setHTMLImageMap("{disable}");
c.addScatterLayer(dataX0, dataY0, "", Chart.SquareSymbol, 7, 0x000000);

// Output the chart
String chart1URL = c.makeSession(request, "chart1");

// Include tool tip for the chart
String imageMap1 = c.getHTMLImageMap("", "",
    "title='{value} @ {x|mm/dd/yyyy hh:nn:ss}'");
%>
<html>
<body style="margin:5px 0px 0px 5px">
<img src='<%=response.encodeURL("getchart.jsp?"+chart1URL)%>'
    usemap="#map1" border="0">
<map name="map1"><%=imageMap1%></map>
</body>
</html>

steplineWithDst.jsp
<%@page import="ChartDirector.*" %>
<%@page import="java.util.*" %>
<%
// The data for the chart with DST
double[] dataY0 = {10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0, 110.0, 120.0};
String[] labels = {

	"10/25/2009 01:00", "10/25/2009 01:15",	"10/25/2009 01:30", "10/25/2009 01:45", 
	"10/25/2009 02:00", "10/25/2009 02:15",	"10/25/2009 02:30", "10/25/2009 02:45",
	"10/25/2009 02*:00", "10/25/2009 02*:15","10/25/2009 02*:30", "10/25/2009 02*:45"
};

// Create a XYChart object of size 500 x 270 pixels, with a pale blue (e0e0ff)
// background, black border, 1 pixel 3D border effect and rounded corners
XYChart c = new XYChart(600, 300, 0xe0e0ff, 0x000000, 1);
c.setRoundedFrame();

// Set the plotarea at (55, 60) and of size 520 x 200 pixels, with white (ffffff)
// background. Set horizontal and vertical grid lines to grey (cccccc).
c.setPlotArea(50, 60, 525, 200, 0xffffff, -1, -1, 0xcccccc, 0xcccccc);

// Add a legend box at (55, 32) (top of the chart) with horizontal layout. Use 9 pts
// Arial Bold font. Set the background and border color to Transparent.
c.addLegend(55, 32, false, "Arial Bold", 9).setBackground(Chart.Transparent);

// Add a title box to the chart using 15 pts Times Bold Italic font. The text is
// white (ffffff) on a deep blue (000088) background, with soft lighting effect from
// the right side.
c.addTitle("Long Term Interest Rates", "Times New Roman Bold Italic", 15, 0xffffff
    ).setBackground(0x000088, -1, Chart.softLighting(Chart.Right));

 

// Add a red (ff0000) step line layer to the chart and set the line width to 2 pixels
StepLineLayer layer0 = c.addStepLineLayer(null, 0xff0000, "Country AAA");
layer0.addDataSet(dataY0);
// Not using setXData when ever DST occurs
//layer0.setXData(dataX0);
c.xAxis().setLabels(labels);
c.xAxis().setLabelStep(4);

layer0.setLineWidth(2);
layer0.setHTMLImageMap("{disable}");
c.addScatterLayer(null, dataY0, "", Chart.SquareSymbol, 7, 0x000000);

 

// Output the chart
String chart1URL = c.makeSession(request, "chart1");

// Include tool tip for the chart
String imageMap1 = c.getHTMLImageMap("", "",
    "title='{value} @ {xLabel}'");
%>
<html>
<body style="margin:5px 0px 0px 5px">
<img src='<%=response.encodeURL("getchart.jsp?"+chart1URL)%>'
    usemap="#map1" border="0">
<map name="map1"><%=imageMap1%></map>
</body>
</html>


  Re: Tooltip problem.
Posted by Peter Kwan on Dec-05-2009 01:22
Hi CHETHAN,

I have tried both of your code. There is no problem encountered in my case.

In both cases, the tooltips appear right on the scatter symbols.

Have you tried them, and do you see the same behaviour?

If in your case, the tooltips are at different positions, would you mind to save the output you see (use IE, and select File/Save As, and save as "Web Archive")? Then attach the web archive so I may analysis what is the output.

Regards
Peter Kwan

  Re: Tooltip problem.
Posted by CHETHAN on Dec-07-2009 19:19
Attachments:
Dear Peter Kwan,

We are handling everthing in java, we dont have any JSP files. In java code itself we are generating the page dynamically. So when I save it in  Web Archive format I am not able to see the chart and data table.

Here with attaching the view source and the page snapshot. In the view source at the end of the file you can find the scatter tooltip layer details. Please search for ExpandableControlchart__HideBody in the view source.

Chart configaration is as below.

<xChart>
     <xChartType>StepLine</xChartType>
     <xChartWidth>750</xChartWidth>
     <xChartHeight>400</xChartHeight>
     <xPlotAreaPosX>80</xPlotAreaPosX>
     <xPlotAreaPosY>60</xPlotAreaPosY>
     <xPlotAreaWidth>510</xPlotAreaWidth>
    <xPlotAreaHeight>190</xPlotAreaHeight>
    <xTooltipFormatString>Y axis: {value} and X axis: {x|mm/dd/yyyy hh:nn:ss}
     </xTooltipFormatString>
</xChart>
dataView[1].txt
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
    <head>
        <title></title><script type='text/javascript' src='include.do?src=/resources/js/copyFunctions.js&jsdk=DEV_2009.12.07.10.21'></script><LINK href='include.do?src=/jsdk/css/calendar.css&jsdk=DEV_2009.12.07.10.21&theme=theme2' type='text/css' rel='stylesheet'>
<LINK href='include.do?src=/jsdk/css/controls.css&jsdk=DEV_2009.12.07.10.21&theme=theme2' type='text/css' rel='stylesheet'>
<LINK href='include.do?src=/jsdk/css/grid.css&jsdk=DEV_2009.12.07.10.21&theme=theme2' type='text/css' rel='stylesheet'>
<LINK href='include.do?src=/jsdk/css/menu.css&jsdk=DEV_2009.12.07.10.21&theme=theme2' type='text/css' rel='stylesheet'>
<LINK href='include.do?src=/jsdk/css/sdk.css&jsdk=DEV_2009.12.07.10.21&theme=theme2' type='text/css' rel='stylesheet'>
<LINK href='include.do?src=/jsdk/css/print.css&jsdk=DEV_2009.12.07.10.21&theme=theme2' type='text/css' rel='stylesheet' media='print'>
<script type="text/javascript" src="include.do?src=/jsdk/js/constants.js&jsdk=DEV_2009.12.07.10.21" ></script>
<script type="text/javascript" src="include.do?src=/jsdk/js/sdk.js&jsdk=DEV_2009.12.07.10.21" ></script>
<script type="text/javascript" src="include.do?src=/jsdk/js/default.js&jsdk=DEV_2009.12.07.10.21" ></script>
<script type="text/javascript" src="include.do?src=/jsdk/js/WireFrame.js&jsdk=DEV_2009.12.07.10.21" ></script>
<script type="text/javascript" src="include.do?src=/jsdk/js/eventing.js&jsdk=DEV_2009.12.07.10.21" ></script>
<script type='text/javascript'>var contextRoot='/COPWebUI';var sdkRoot='/jsdk';var isContextMenuRequired='false';evt_uid ='429933';function Page_Load() { showFilterRow();showDisplayPathRow();var cultureArray = new Array();cultureArray[0] = {NegativeSign:'null' ,GroupSeparator:'null' ,DecimalSeparator:'null'};window.cultureArrayValues = cultureArray;var messageArray = new Array();window.parent.top.setMessages(messageArray);window.parent.top.displayProgressBar(false);executeSPOnInitial(false);setTimeout('window.top.setWFApplicationTitle("Cyclic Schedule Data - Current Operating Plan")',1500);getDisplayStatus(this).setHasChanges(false);editMode=false;setMode(false);highlightRowByNumber(0);}
window.top.clearMessages();isRightBodyFrame=true;function showTrackingMode() { setPageActionAndSubmit('TRACKING'); } 
function showFreezingMode() { setPageActionAndSubmit('FREEZING'); } 
function showEditableMode() { setPageActionAndSubmit('EDIT'); } 
function showDeleteMode() { setPageActionAndSubmit('DELETE'); } 
function popUpChart(){ 
openPopup('/COPWebUI/chartPopUp.do?pageId=2&configFile=CyclicSchedule/xViewCyclicSchedule&uid=429933'); return false; 
 }function addUserDisplay(){ 
openPopup('/COPWebUI/userDisplay.do?connectionName=cop&pageAction=NEW&pageId=2&configFile=CyclicSchedule/xViewCyclicSchedule&uid=429933'); 
 }function doDelete() { setPageActionAndSubmit('DELETEUPDATE'); } 
function doCancel() { setPageActionAndSubmit('EDITCANCEL'); } 
function resetSortOrder() { setPageActionAndSubmit('SORTING'); } 
function doSort(columnName) {document.getElementById('sortColumnName').value=columnName;setPageActionAndSubmit('SORTING'); } 
  function fun_paging(pagingType) { document.getElementById('pageNavigationType').value=pagingType;isDefaultValueRequired=false;setPageActionAndSubmit('PAGING');  return false; } 
function fun_pivotHeaderPaging(pagingType) { document.getElementById('pageNavigationType').value=pagingType;setPageActionAndSubmit('PIVOTHEADERPAGING');  return false; } 
function pivotView(viewType) { document.getElementById('pivotCurrentView').value=viewType;setPageActionAndSubmit('PIVOTVIEW');  return false; } 
function addNewRow() { setPageActionAndSubmit('EDITINSERT'); } 
function doUpdate() { setPageActionAndSubmit('UPDATE'); } 
var windowhandle = null;function showAdvancedFilter(iconName,onImgUrl,offImgUrl) { 
document.getElementById(iconName).src = onImgUrl; 
var url = document.forms[0].action; 
var iconNm = iconName;document.getElementById('pageAction').value='';
var advFilterUrl ="/COPWebUI/advancedFilter.do?callerUrl=" + url +"&pageId=2&advFilterIconID=" + iconNm +"&offImgUrl=" + offImgUrl +"&uid=" + 429933+"&pageAction=ADVANCEDFILTER"; 
if(windowhandle == null) 
windowhandle=openDisplayPopup(advFilterUrl);
else { 
try  { 
 windowhandle.focus();
 }catch(e){
windowhandle=openDisplayPopup(advFilterUrl);
 } 
 } 
} 
var windowhandle = null;function showAdvancedSearch() { var url = document.forms[0].action; 
var queryStr = getFormValues(document.forms[0],"encodeURIComponent"); 
 //alert(queryStr); 
document.getElementById('pageAction').value='';var searchUrl ="/COPWebUI/advancedSearch.do?callerUrl=" + url +"&pageId=2&pageAction=SEARCH&"+queryStr; 
if(windowhandle == null){
windowhandle=advancedSearchOpenpopUp(searchUrl);
}else { 
try  { 
 windowhandle.focus();
 }catch(e){
windowhandle=advancedSearchOpenpopUp(searchUrl);
 } 
 } 
} 
  function getFormValues(fobj,valFunc) 
 { 
     var str = ""; 
    var valueArr = null; 
    var val = ""; 
    var cmd = ""; 
     for(var i = 0;i < fobj.elements.length;i++) 
    { 
 //alert(fobj.elements[i].type); 
        switch(fobj.elements[i].type) 
        { 
             case "text": 
              str += fobj.elements[i].name + "=" + fobj.elements[i].value + "&"; 
                  break; 
            case "select-one": 
               if (fobj.elements[i].selectedIndex>0)                 str += fobj.elements[i].name + "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&"; 
              else 
                  str += fobj.elements[i].name + "=" + '' + "&"; 
                 break; 
            case "hidden": 
              str += fobj.elements[i].name + "=" + fobj.elements[i].value + "&"; 
                 break; 
            case "checkbox": 
              str += fobj.elements[i].name + "=" + fobj.elements[i].value + "&"; 
                 break; 
            case "textarea": 
              str += fobj.elements[i].name + "=" + fobj.elements[i].value + "&"; 
                 break; 
        } 
     } 
    str = str.substr(0,(str.length - 1)); 
    return str; 
 }
function doColumnCollapse(columnName, level) {document.getElementById('collapseColumnName').value=columnName;document.getElementById('collapseLevel').value=level;setPageActionAndSubmit('COLLAPSE'); } 
function showPrintMenu(e) {top.activeFrame = window;showMenu(window.top.PrintMenu);}function exp() {window.top.ExportMenu.alwaysCalcSubPos = true; top.activeFrame = window;showMenu(window.top.ExportMenu);}
  function exportData(inExportType){ try {  var pageId = document.getElementById('pageId').value;
  var exportRows=(arguments.length==2)?arguments[1]:'page';
 var top =  (window.screenTop-200 );	var left = (window.screenLeft  +200); if(inExportType == 'Xml'){ window.open('/COPWebUI/export.do?pageId=' + pageId + '&exportType=' + inExportType + '&exportRows=' + exportRows  + '&uid=429933'+ '&HIDDEN_errMsgInMessageBarForHelp=Online Help is not supported&HIDDEN_indexHelpURL=index.htm&HIDDEN_onLineHelpURL=http://localhost:8081/OnlineHelp/$$COPWebUI/OnlineHelp_RU/$$xViewCyclicSchedule.htm&'+ '','', 'width=500,height=600,location=no,menubar=yes,status=no,toolbar=no,scrollbars=yes,resizable=yes,left='+left+',top='+top+'');
}else{ var exportUrl = ' /COPWebUI/export.do?pageId=' + pageId + '&exportType=' + inExportType + '&exportRows=' + exportRows  + '&uid=429933'+ '&HIDDEN_errMsgInMessageBarForHelp=Online Help is not supported&HIDDEN_indexHelpURL=index.htm&HIDDEN_onLineHelpURL=http://localhost:8081/OnlineHelp/$$COPWebUI/OnlineHelp_RU/$$xViewCyclicSchedule.htm&'+ '' ; exportValue(exportUrl);} } catch(e) {} } 
function cvPrint(inRows, type){ var print = '&pageAction=PRINT';try {  var inConfigFile = document.getElementById('configFile').value; 
  var objCurrentPage = document.getElementById('currentPage');
  var pageId = document.getElementById('pageId').value;
var top =  (window.screenTop - 400);var left = (window.screenLeft + 50);if (inRows == 'page'){
if(parent.msie) var url = 'detail.do?configFile=' + inConfigFile + '&pageAction=PRINT&parentPageId=' +  pageId + '&uid='+'429933'+ '';
else  var url = 'detail.do?configFile=' + inConfigFile + '&pageAction=PRINT&parentPageId=' +  pageId  + '&uid='+'429933'+  '';
if (objCurrentPage != null) 
 url = url + '&currentPage=' + objCurrentPage.value;
} 
if (inRows == 'pdf'){
 url = 'print.do?pageId=' + pageId + '&orientation=' + type + '&uid=429933';
} 
 window.open(url,'','location=no,menubar=no,status=no,resizable=yes,scrollbars=no,left='+left+',top='+top+'height=580,width=880');
 } catch(e) {} } 
function doPostBack() { setPageActionAndSubmit('DEPENDENTPOSTBACK'); } 
function callSPOnRowClick() {setPageActionAndSubmit('ROWCLICK'); } 
function CV1_ExpandContent() { var content = document.getElementById('CV1_HideBody');var button  = document.getElementById('CV1_ExpandContentButton');var state = document.getElementById('CV1_STATE');var displayState = content.style.display;if (displayState == 'none') {		content.style.display = '';		button.title='Hide';   button.src = 'include.do?src=/jsdk/images/sdk/ExpandYes.png';   state.value = 'Show';} else {		content.style.display = 'none';		button.title='Show';   button.src = 'include.do?src=/jsdk/images/sdk/ExpandNo.png';   state.value = 'Collapse';}return false;}
</script>    </head>
<body onload='if(window.Page_Load) Page_Load();' onunload='displayUnload();' class='WFContent' style='overflow:auto;' id='outerTable' >
<FORM name="form1" action="/COPWebUI/dataView.do" method=post><INPUT type=hidden id=uid name=uid value="429933"><INPUT type=hidden id=pageAction name=pageAction value="APPLY"><INPUT type=hidden id=configFile name=configFile value="CyclicSchedule/xViewCyclicSchedule"><INPUT type=hidden id=connectionName name=connectionName value="cop"><INPUT type=hidden id=count name=count value=""><INPUT type=hidden id="pageId" name="pageId" value="2"><INPUT type=hidden id=parentPageId name=parentPageId value=""><INPUT type=hidden id=advFilterWhereCondition name=advFilterWhereCondition value=""><INPUT type=hidden id=persistancyRequired name=persistancyRequired value=""><INPUT type=hidden id=initialtext name=initialtext value=""><INPUT type=hidden id=initialvalue name=initialvalue value=""><INPUT type=hidden id=insertedPointNames name=insertedPointNames value=""><INPUT type=hidden id=rowNumber name=rowNumber value="">
<table cellpadding="0" class="PanelTable" style="null;" border="0" cellspacing="0" >
<tr >
<td class="PanelLabel" valign="top" ></td></tr>
<tr >
<td class="PanelBody" name="" id="" >
<table cellpadding="0" class="PanelTable" style="null;" border="0" cellspacing="0" >
<tr >
<td class="PanelLabel" valign="top" ></td></tr>
<tr >
<td class="PanelBody" name="" id="" >
<table >
<tr >
<td valign="top" >
<table cellpadding="0" class="PanelTable" style="null;" border="0" cellspacing="0" >
<tr >
<td class="PanelLabel" valign="top" ></td></tr>
<tr >
<td class="PanelBody" name="" id="" >
<table >
<tr >
<td valign="top" >
<table style="display:none;margin-top:0px;" >
<tr >
<td >
<table >
<tr >
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td></tr>
<tr >
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td></tr>
<tr id="tableFilter_Row2Column6" >
<td ></td>
<td nowrap="true" class="cssFiltersLabel" >Start Time</td>
<td >
<INPUT value="10/25/2009 01:00:00" type="hidden" name="PFC_SCHED_START_TIME_Filter" id="PFC_SCHED_START_TIME_Filter" ></INPUT></td>
<td nowrap="true" class="cssFiltersLabel" >End Time</td>
<td >
<INPUT value="10/25/2009 02:00:00" type="hidden" name="PFC_SCHED_END_TIME_Filter" id="PFC_SCHED_END_TIME_Filter" ></INPUT></td>
<td nowrap="true" class="cssFiltersLabel" >Schedule List</td>
<td >
<DIV class="cssFilters" style="display:inline;" >
<INPUT value="39854|4281:Aggregation Schedule From CTM | Forecast/Forecast Area - Gas/Area G2" type="hidden" name="PFC_object_seq_Filter_TEXT" id="PFC_object_seq_Filter_TEXT" ></INPUT>
<INPUT value="PFC_object_seq_Filter" type="hidden" name="DATAPOINT_NAME" id="DATAPOINT_NAME" ></INPUT>
<INPUT value="[1]" readonly onclick="OpenMultiSelectPopUp('PFC_object_seq_Filter','429933');" name="QueryText" id="QueryText" ></INPUT>
<INPUT value="39854|4281" type="hidden" name="PFC_object_seq_Filter" id="PFC_object_seq_Filter" ></INPUT>
<INPUT value="NONE" type="hidden" id="PFC_object_seq_FilterdefaultValue" ></INPUT></DIV></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td></tr>
<tr >
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td></tr>
<tr id="tableFilter_Row4Column4" >
<td ></td>
<td nowrap="true" class="cssFiltersLabel" >Cycle</td>
<td >
<INPUT value="15" type="hidden" name="PFC_Cycle" id="PFC_Cycle" ></INPUT></td>
<td nowrap="true" class="cssFiltersLabel" >Cycle Unit</td>
<td >
<INPUT value="2" type="hidden" name="PFC_cycle_unit" id="PFC_cycle_unit" ></INPUT></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td></tr>
<tr >
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td></tr>
<tr >
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td></tr>
<tr >
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td></tr>
<tr >
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td></tr>
<tr >
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td></tr>
<tr >
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td></tr></table></td>
<td ></td></tr></table></td>
<td valign="top" ></td></tr></table></td></tr></table></td></tr>
<tr >
<td valign="top" >
<table cellpadding="0" class="PanelTable" style="null;" border="0" cellspacing="0" >
<tr >
<td class="PanelLabel" valign="top" ></td></tr>
<tr >
<td class="PanelBody" name="" id="" >
<table width="100%" >
<tr >
<td ></td>
<td valign="top" >
<table cellpadding="0" class="PanelTable" style="null;" border="0" cellspacing="0" >
<tr >
<td class="PanelLabel" valign="top" ></td></tr>
<tr >
<td class="PanelBody" name="" id="" >
<table >
<tr >
<td valign="top" >
<table >
<tr >
<td >
<table >
<tr >
<td class="EVBody" colspan="3" >
<table cellpadding="0" style="width:100%;border-collapse:collapse;;" cellspacing="0" >
<tr >
<td class="CVGridTitle" >Cyclic Schedule Data</td></tr>
<tr class="PagingTableRow" valign="top" >
<td width="100%" >
<table width="100%" class="CVPaTable" >
<tr >
<td width="100%" class="CVHeight" >
<table class="CVPaTable" >
<tr >
<td >
<table width="0" cellpadding="0" class="EVTable" style="margin-top:5px;margin-right:0px;margin-bottom:5px;margin-left:5px;null;" cellspacing="0" >
<tr >
<td class="EVHead" valign="middle" >
<table cellpadding="0" style="width:100%;border-collapse:collapse;;" cellspacing="0" >
<tr style="width:100%;" >
<td nowrap align="left" class="EVTable" >
<td class="CVWidth" >
<img title="Hide" style="cursor:pointer;" src="include.do?src=/jsdk/images/sdk/ExpandYes.png" onClick="return CV1_ExpandContent();" name="CV1_ExpandContentButton" id="CV1_ExpandContentButton" ></img></td>
<td >
<table >
<tr >
<td class="CVWidth" >
<a name="editIcon_A" id="editIcon_A" >
<img title="Edit" style="cursor:pointer;" src="include.do?src=/jsdk/images//sdk/Edit.png" onClick="javascript:showEditableMode();return false;" name="editIcon" id="editIcon" ></img></a></td>
<td class="CVWidth" >
<a name="restoreIcon_A" id="restoreIcon_A" >
<img title="Restore Sort" style="cursor:pointer;" src="include.do?src=/jsdk/images/sdk/ResetOfSortOrder.gif" onClick="javascript:resetSortOrder();return false;" name="restoreIcon" id="restoreIcon" ></img></a></td>
<td class="CVWidth" >
<a name="CV1_FILTER_A" id="CV1_FILTER_A" >
<img title="Advance Filter" style="cursor:pointer;" src="include.do?src=/jsdk/images/sdk/FilterSettings.gif" onClick="javascript:showAdvancedFilter('CV1_FILTER','include.do?src=/jsdk/images//sdk/FilterSettingsOn.gif','include.do?src=/jsdk/images//sdk/FilterSettings.gif');return false;" name="CV1_FILTER" id="CV1_FILTER" ></img></a></td>
<td class="CVWidth" >
<a name="divExportMenu_A" id="divExportMenu_A" ><script type="text/javascript" src="include.do?src=/jsdk/js/menu/WebSDK_DDMenu.js&jsdk=DEV_2009.12.07.10.21"/></script><img  src="include.do?src=/jsdk/images/sdk/Export.png " style="cursor:pointer;" title="Export"onclick="WebSDK_DDMenu_OnMouseOver('WF_Level2Menu_Utili1-1','WF_Level2Menu_Utilg2-1','true');"onmouseleave="{WebSDK_DDMenu_OnMouseOut('WF_Level2Menu_Utili1-1','WF_Level2Menu_Utilg2-1');}" id="WF_Level2Menu_Utili1-1"/><table class = "Level2TableCss" cellspacing="0" id="WF_Level2Menu_Utilg2-1" cellpadding="0" border="0" onmouseleave="if (document.readyState == 'complete') WebSDK_DDMenu_OnGroupOut('WF_Level2Menu_Utilg2-1', 'WF_Level2Menu_Utili1-1', 'WF_Level2Menu_Utilg1-1');"><tr><td  class='ExportMenu' onmouseenter="this.className='ExportMenuOver';if (document.readyState == 'complete') {WebSDK_DDMenu_OnMouseOver('WF_Level2Menu_Utili2-1','WF_Level2Menu_Utilg3-1');}" onmouseleave="this.className='ExportMenu';if (document.readyState == 'complete') {WebSDK_DDMenu_OnMouseOut('WF_Level2Menu_Utili2-1','WF_Level2Menu_Utilg3-1');}" onmousemove="return false;" ondblclick="return false;" " id="WF_Level2Menu_Utili2-1"><table style='border-collapse:collapse;border:0px' cellpadding='2' class='LevelNTabFont'><tr><td nowrap width='100%'>Excel</td><td><img  align="right"src='include.do?src=/jsdk/images/rightArrow.gif'/></td></tr></table></td></tr><tr><td  class='ExportMenu' onmouseenter="this.className='ExportMenuOver';if (document.readyState == 'complete') {WebSDK_DDMenu_OnMouseOver('WF_Level2Menu_Utili5-1','WF_Level2Menu_Utilg4-1');}" onmouseleave="this.className='ExportMenu';if (document.readyState == 'complete') {WebSDK_DDMenu_OnMouseOut('WF_Level2Menu_Utili5-1','WF_Level2Menu_Utilg4-1');}" onmousemove="return false;" ondblclick="return false;" " id="WF_Level2Menu_Utili5-1"><table style='border-collapse:collapse;border:0px' cellpadding='2' class='LevelNTabFont'><tr><td nowrap width='100%'>XML</td><td><img  align="right"src='include.do?src=/jsdk/images/rightArrow.gif'/></td></tr></table></td></tr><tr><td  class='ExportMenu' onmouseenter="this.className='ExportMenuOver';if (document.readyState == 'complete') {WebSDK_DDMenu_OnMouseOver('WF_Level2Menu_Utili8-1','WF_Level2Menu_Utilg5-1');}" onmouseleave="this.className='ExportMenu';if (document.readyState == 'complete') {WebSDK_DDMenu_OnMouseOut('WF_Level2Menu_Utili8-1','WF_Level2Menu_Utilg5-1');}" onmousemove="return false;" ondblclick="return false;" " id="WF_Level2Menu_Utili8-1"><table style='border-collapse:collapse;border:0px' cellpadding='2' class='LevelNTabFont'><tr><td nowrap width='100%'>CSV</td><td><img  align="right"src='include.do?src=/jsdk/images/rightArrow.gif'/></td></tr></table></td></tr><tr><td  class='ExportMenu' onmouseenter="this.className='ExportMenuOver';if (document.readyState == 'complete') {WebSDK_DDMenu_OnMouseOver('WF_Level2Menu_Utili11-1','WF_Level2Menu_Utilg6-1');}" onmouseleave="this.className='ExportMenu';if (document.readyState == 'complete') {WebSDK_DDMenu_OnMouseOut('WF_Level2Menu_Utili11-1','WF_Level2Menu_Utilg6-1');}" onmousemove="return false;" ondblclick="return false;" " id="WF_Level2Menu_Utili11-1"><table style='border-collapse:collapse;border:0px' cellpadding='2' class='LevelNTabFont'><tr><td nowrap width='100%'>Word</td><td><img  align="right"src='include.do?src=/jsdk/images/rightArrow.gif'/></td></tr></table></td></tr></table><table class = "Level2TableCss" cellspacing="0" id="WF_Level2Menu_Utilg3-1" cellpadding="0" border="0" onmouseleave="if (document.readyState == 'complete') WebSDK_DDMenu_OnGroupOut('WF_Level2Menu_Utilg3-1', 'WF_Level2Menu_Utili2-1', 'WF_Level2Menu_Utilg2-1');"><tr><td  class='ExportMenu' onmouseenter="this.className='ExportMenuOver';WebSDK_DDMenu_OnMouseOverLeaf('WF_Level2Menu_Utilg3-1');" onmouseleave="this.className='ExportMenu';WebSDK_DDMenu_OnMouseOutOfLeaf();" onmousemove="return false;" ondblclick="return false;" onclick="WebSDK_DDMenu_hideAllGroups();exportData('Excel','all');; " id="WF_Level2Menu_Utili3-1"><table style='border-collapse:collapse;border:0px' cellpadding='2' class='LevelNTabFont'><tr><td nowrap width='100%'>All Rows</td></tr></table></td></tr><tr><td  class='ExportMenu' onmouseenter="this.className='ExportMenuOver';WebSDK_DDMenu_OnMouseOverLeaf('WF_Level2Menu_Utilg3-1');" onmouseleave="this.className='ExportMenu';WebSDK_DDMenu_OnMouseOutOfLeaf();" onmousemove="return false;" ondblclick="return false;" onclick="WebSDK_DDMenu_hideAllGroups();exportData('Excel');; " id="WF_Level2Menu_Utili4-1"><table style='border-collapse:collapse;border:0px' cellpadding='2' class='LevelNTabFont'><tr><td nowrap width='100%'>Displayed Rows</td></tr></table></td></tr></table><table class = "Level2TableCss" cellspacing="0" id="WF_Level2Menu_Utilg4-1" cellpadding="0" border="0" onmouseleave="if (document.readyState == 'complete') WebSDK_DDMenu_OnGroupOut('WF_Level2Menu_Utilg4-1', 'WF_Level2Menu_Utili5-1', 'WF_Level2Menu_Utilg2-1');"><tr><td  class='ExportMenu' onmouseenter="this.className='ExportMenuOver';WebSDK_DDMenu_OnMouseOverLeaf('WF_Level2Menu_Utilg4-1');" onmouseleave="this.className='ExportMenu';WebSDK_DDMenu_OnMouseOutOfLeaf();" onmousemove="return false;" ondblclick="return false;" onclick="WebSDK_DDMenu_hideAllGroups();exportData('Xml','all');; " id="WF_Level2Menu_Utili6-1"><table style='border-collapse:collapse;border:0px' cellpadding='2' class='LevelNTabFont'><tr><td nowrap width='100%'>All Rows</td></tr></table></td></tr><tr><td  class='ExportMenu' onmouseenter="this.className='ExportMenuOver';WebSDK_DDMenu_OnMouseOverLeaf('WF_Level2Menu_Utilg4-1');" onmouseleave="this.className='ExportMenu';WebSDK_DDMenu_OnMouseOutOfLeaf();" onmousemove="return false;" ondblclick="return false;" onclick="WebSDK_DDMenu_hideAllGroups();exportData('Xml');; " id="WF_Level2Menu_Utili7-1"><table style='border-collapse:collapse;border:0px' cellpadding='2' class='LevelNTabFont'><tr><td nowrap width='100%'>Displayed Rows</td></tr></table></td></tr></table><table class = "Level2TableCss" cellspacing="0" id="WF_Level2Menu_Utilg5-1" cellpadding="0" border="0" onmouseleave="if (document.readyState == 'complete') WebSDK_DDMenu_OnGroupOut('WF_Level2Menu_Utilg5-1', 'WF_Level2Menu_Utili8-1', 'WF_Level2Menu_Utilg2-1');"><tr><td  class='ExportMenu' onmouseenter="this.className='ExportMenuOver';WebSDK_DDMenu_OnMouseOverLeaf('WF_Level2Menu_Utilg5-1');" onmouseleave="this.className='ExportMenu';WebSDK_DDMenu_OnMouseOutOfLeaf();" onmousemove="return false;" ondblclick="return false;" onclick="WebSDK_DDMenu_hideAllGroups();exportData('CSV','all');; " id="WF_Level2Menu_Utili9-1"><table style='border-collapse:collapse;border:0px' cellpadding='2' class='LevelNTabFont'><tr><td nowrap width='100%'>All Rows</td></tr></table></td></tr><tr><td  class='ExportMenu' onmouseenter="this.className='ExportMenuOver';WebSDK_DDMenu_OnMouseOverLeaf('WF_Level2Menu_Utilg5-1');" onmouseleave="this.className='ExportMenu';WebSDK_DDMenu_OnMouseOutOfLeaf();" onmousemove="return false;" ondblclick="return false;" onclick="WebSDK_DDMenu_hideAllGroups();exportData('CSV');; " id="WF_Level2Menu_Utili10-1"><table style='border-collapse:collapse;border:0px' cellpadding='2' class='LevelNTabFont'><tr><td nowrap width='100%'>Displayed Rows</td></tr></table></td></tr></table><table class = "Level2TableCss" cellspacing="0" id="WF_Level2Menu_Utilg6-1" cellpadding="0" border="0" onmouseleave="if (document.readyState == 'complete') WebSDK_DDMenu_OnGroupOut('WF_Level2Menu_Utilg6-1', 'WF_Level2Menu_Utili11-1', 'WF_Level2Menu_Utilg2-1');"><tr><td  class='ExportMenu' onmouseenter="this.className='ExportMenuOver';WebSDK_DDMenu_OnMouseOverLeaf('WF_Level2Menu_Utilg6-1');" onmouseleave="this.className='ExportMenu';WebSDK_DDMenu_OnMouseOutOfLeaf();" onmousemove="return false;" ondblclick="return false;" onclick="WebSDK_DDMenu_hideAllGroups();exportData('HtmlWord','all');; " id="WF_Level2Menu_Utili12-1"><table style='border-collapse:collapse;border:0px' cellpadding='2' class='LevelNTabFont'><tr><td nowrap width='100%'>All Rows</td></tr></table></td></tr><tr><td  class='ExportMenu' onmouseenter="this.className='ExportMenuOver';WebSDK_DDMenu_OnMouseOverLeaf('WF_Level2Menu_Utilg6-1');" onmouseleave="this.className='ExportMenu';WebSDK_DDMenu_OnMouseOutOfLeaf();" onmousemove="return false;" ondblclick="return false;" onclick="WebSDK_DDMenu_hideAllGroups();exportData('HtmlWord');; " id="WF_Level2Menu_Utili13-1"><table style='border-collapse:collapse;border:0px' cellpadding='2' class='LevelNTabFont'><tr><td nowrap width='100%'>Displayed Rows</td></tr></table></td></tr></table><script>MarkUpSubMenuInfoList['WF_Level2Menu_Utili1-1']= 'WF_Level2Menu_Utilg1-1'; MarkUpSubMenuInfoList['WF_Level2Menu_Utili2-1']= 'WF_Level2Menu_Utilg2-1'; MarkUpSubMenuInfoList['WF_Level2Menu_Utili3-1']= 'WF_Level2Menu_Utilg3-1'; MarkUpSubMenuInfoList['WF_Level2Menu_Utili4-1']= 'WF_Level2Menu_Utilg3-1'; MarkUpSubMenuInfoList['WF_Level2Menu_Utili5-1']= 'WF_Level2Menu_Utilg2-1'; MarkUpSubMenuInfoList['WF_Level2Menu_Utili6-1']= 'WF_Level2Menu_Utilg4-1'; MarkUpSubMenuInfoList['WF_Level2Menu_Utili7-1']= 'WF_Level2Menu_Utilg4-1'; MarkUpSubMenuInfoList['WF_Level2Menu_Utili8-1']= 'WF_Level2Menu_Utilg2-1'; MarkUpSubMenuInfoList['WF_Level2Menu_Utili9-1']= 'WF_Level2Menu_Utilg5-1'; MarkUpSubMenuInfoList['WF_Level2Menu_Utili10-1']= 'WF_Level2Menu_Utilg5-1'; MarkUpSubMenuInfoList['WF_Level2Menu_Utili11-1']= 'WF_Level2Menu_Utilg2-1'; MarkUpSubMenuInfoList['WF_Level2Menu_Utili12-1']= 'WF_Level2Menu_Utilg6-1'; MarkUpSubMenuInfoList['WF_Level2Menu_Utili13-1']= 'WF_Level2Menu_Utilg6-1'; </script></a></td>
<td class="CVWidth" >
<a name="divContextMenu_A" id="divContextMenu_A" ><script language=javascript></script><script type="text/javascript" src="include.do?src=/jsdk/js/menu/WebSDK_DDMenu.js&jsdk=DEV_2009.12.07.10.21"/></script><table class="TabTableCss" cellspacing="0" id="ContextMenu" cellpadding="0"  style="position:absolute;visibility:hidden;left:0px;top:0px;"><tr><td  class="ExportMenu"" onmouseover="this.className='ExportMenuOver';" onmouseout="this.className='ExportMenu';" onmousemove="return false;" ondblclick="return false;" onclick="cvCopyAndMark();; " id="WF_Level2Menu_Editi2">Copy/Mark</td><tr><td  class="ExportMenu"" onmouseover="this.className='ExportMenuOver';" onmouseout="this.className='ExportMenu';" onmousemove="return false;" ondblclick="return false;" onclick="cvSummation_fromMenu(false);; " id="WF_Level2Menu_Editi3">Sum from Marked Cell</td></table></a></td>
<td class="CVWidth" >
<a name="divPrintMenu_A" id="divPrintMenu_A" >
<img title="Print" style="cursor:pointer;" src="include.do?src=/jsdk/images/sdk/Print.gif" onClick="cvPrint('page')" name="divPrintMenu" id="divPrintMenu" ></img></a></td>
<td class="CVWidth" >
<a name="debugIcon_A" id="debugIcon_A" >
<img title="Debug" style="cursor:pointer;" src="include.do?src=/jsdk/images/sdk/Debug.gif" onClick="openDisplayPopup('/COPWebUI/debug.do?cntrlId=2&uid=429933'); return false;" name="debugIcon" id="debugIcon" ></img></a></td></tr></table></td>
<INPUT value="Show" type="hidden" name="CV1_STATE" id="CV1_STATE" ></INPUT></td></tr></table></td></tr></table></td></tr></table></td>
<td align="right" >
<table class="CVPaTable" >
<tr >
<td >
<INPUT type="radio" checked onClick="javascript:pivotView('Standard'); return false;" ></INPUT></td>
<td >
<span class="radio" >Standard</span></td>
<td width="10" ></td>
<td >
<INPUT type="radio" onClick="javascript:pivotView('MultiTime'); return false;" ></INPUT></td>
<td >
<span class="radio" >MultiTime</span></td>
<td width="10" ></td>
<td >
<INPUT type="radio" onClick="javascript:pivotView('MultiName'); return false;" ></INPUT></td>
<td >
<span class="radio" >MultiName</span></td></tr></table></td></tr></table>
<table onMouseDown="cvSummation_handleClick(event);" cellpadding="0" class="CVTaTable" style="width:100%;;" border="0" id="CV1_HideBody" >
<thead>
<tr >
<th class="CVTitle1" >
<table width="0" cellpadding="0" align="center" style="cursor:pointer;;" border="0" cellspacing="0" >
<tr >
<th title="Sort Object Path" class="CVCellErrTB" style="cursor:pointer;;" onclick="javascript:doSort ( 'OBJECT_PATH' )" >Object Path
<img src="include.do?src=/jsdk/images/sdk/SortingAscending2.gif" ></img></th>
<th nowrap align="right" ></th></tr></table></th>
<th class="CVTitle1" >
<table width="0" cellpadding="0" align="center" style="cursor:pointer;;" border="0" cellspacing="0" >
<tr >
<th title="Sort Schedule Type" class="CVTitle" style="cursor:pointer;;" onclick="javascript:doSort ( 'SCHED_TYPE_LABEL' )" >Schedule Type</th>
<th nowrap align="right" ></th></tr></table></th>
<th class="CVTitle1" >
<table width="0" cellpadding="0" align="center" style="cursor:pointer;;" border="0" cellspacing="0" >
<tr >
<th title="Sort Start Time" class="CVCellErrTB" style="cursor:pointer;;" onclick="javascript:doSort ( 'SCHED_START_TIME' )" >Start Time
<img src="include.do?src=/jsdk/images/sdk/SortingAscending1.gif" ></img></th>
<th nowrap align="right" ></th></tr></table></th>
<th class="CVTitle1" >
<table width="0" cellpadding="0" align="center" style="cursor:pointer;;" border="0" cellspacing="0" >
<tr >
<th title="Sort Value Numeric" class="CVTitle" style="cursor:pointer;;" onclick="javascript:doSort ( 'DATA_VALUE_NUM' )" >Value Numeric</th>
<th nowrap align="right" ></th></tr></table></th>
<th class="CVTitle1" >
<table width="0" cellpadding="0" align="center" style="cursor:pointer;;" border="0" cellspacing="0" >
<tr >
<th title="Sort Value Alphanumeric" class="CVTitle" style="cursor:pointer;;" onclick="javascript:doSort ( 'DATA_VALUE_CHAR' )" >Value Alphanumeric</th>
<th nowrap align="right" ></th></tr></table></th></tr></thead>
<tbody>
<tr class="CVTaSeperator" >
<td class="CVTaSeperator" colspan="5" >
<img width="1" height="1" src="include.do?src=/jsdk/images/clear.gif" ></img></td></tr>
<tr onMouseDown="handleRowClick(null,this)" onkeypress="parent.isViewMode= true;handleRowEnter(null,this);return false" class="CVTaRow" id="TableRow_0" >
<td nowrap class="CVCellTaRXE" ondblclick="handledblclick()" style=";" oncontextmenu="setRowAndColumnValues('0','1')" name="TableCell_Row0Col1" id="TableCell_Row0Col1" >
<span style=";" >Forecast/Forecast Area - Gas/Area G2</span></td>
<td nowrap class="CVCellTaRXE" ondblclick="handledblclick()" style=";" oncontextmenu="setRowAndColumnValues('0','2')" name="TableCell_Row0Col2" id="TableCell_Row0Col2" >
<span style=";" >Aggregation Schedule From CTM</span></td>
<td nowrap class="CVCellTaRXE" ondblclick="handledblclick()" style=";" oncontextmenu="setRowAndColumnValues('0','3')" name="TableCell_Row0Col3" id="TableCell_Row0Col3" >
<span style=";" >10/25/2009 01:00:00</span></td>
<td nowrap class="CVCellTaRXE" ondblclick="handledblclick()" style="text-align:right;" oncontextmenu="setRowAndColumnValues('0','4')" name="TableCell_Row0Col4" id="TableCell_Row0Col4" >
<span style="text-align:right;" >10.00</span></td>
<td nowrap class="CVCellTaRXE" ondblclick="handledblclick()" style=";" oncontextmenu="setRowAndColumnValues('0','5')" name="TableCell_Row0Col5" id="TableCell_Row0Col5" >
<span style=";" ></span></td></tr>
<tr class="CVTaSeperator" >
<td class="CVTaSeperator" colspan="5" >
<img width="1" height="1" src="include.do?src=/jsdk/images/clear.gif" ></img></td></tr>
<tr onMouseDown="handleRowClick(null,this)" onkeypress="parent.isViewMode= true;handleRowEnter(null,this);return false" class="CVTaRow" id="TableRow_1" >
<td nowrap class="CVCellTaRXO" ondblclick="handledblclick()" style=";" oncontextmenu="setRowAndColumnValues('1','1')" name="TableCell_Row1Col1" id="TableCell_Row1Col1" >
<span style=";" >Forecast/Forecast Area - Gas/Area G2</span></td>
<td nowrap class="CVCellTaRXO" ondblclick="handledblclick()" style=";" oncontextmenu="setRowAndColumnValues('1','2')" name="TableCell_Row1Col2" id="TableCell_Row1Col2" >
<span style=";" >Aggregation Schedule From CTM</span></td>
<td nowrap class="CVCellTaRXO" ondblclick="handledblclick()" style=";" oncontextmenu="setRowAndColumnValues('1','3')" name="TableCell_Row1Col3" id="TableCell_Row1Col3" >
<span style=";" >10/25/2009 01:15:00</span></td>
<td nowrap class="CVCellTaRXO" ondblclick="handledblclick()" style="text-align:right;" oncontextmenu="setRowAndColumnValues('1','4')" name="TableCell_Row1Col4" id="TableCell_Row1Col4" >
<span style="text-align:right;" >20.00</span></td>
<td nowrap class="CVCellTaRXO" ondblclick="handledblclick()" style=";" oncontextmenu="setRowAndColumnValues('1','5')" name="TableCell_Row1Col5" id="TableCell_Row1Col5" >
<span style=";" ></span></td></tr>
<tr class="CVTaSeperator" >
<td class="CVTaSeperator" colspan="5" >
<img width="1" height="1" src="include.do?src=/jsdk/images/clear.gif" ></img></td></tr>
<tr onMouseDown="handleRowClick(null,this)" onkeypress="parent.isViewMode= true;handleRowEnter(null,this);return false" class="CVTaRow" id="TableRow_2" >
<td nowrap class="CVCellTaRXE" ondblclick="handledblclick()" style=";" oncontextmenu="setRowAndColumnValues('2','1')" name="TableCell_Row2Col1" id="TableCell_Row2Col1" >
<span style=";" >Forecast/Forecast Area - Gas/Area G2</span></td>
<td nowrap class="CVCellTaRXE" ondblclick="handledblclick()" style=";" oncontextmenu="setRowAndColumnValues('2','2')" name="TableCell_Row2Col2" id="TableCell_Row2Col2" >
<span style=";" >Aggregation Schedule From CTM</span></td>
<td nowrap class="CVCellTaRXE" ondblclick="handledblclick()" style=";" oncontextmenu="setRowAndColumnValues('2','3')" name="TableCell_Row2Col3" id="TableCell_Row2Col3" >
<span style=";" >10/25/2009 01:30:00</span></td>
<td nowrap class="CVCellTaRXE" ondblclick="handledblclick()" style="text-align:right;" oncontextmenu="setRowAndColumnValues('2','4')" name="TableCell_Row2Col4" id="TableCell_Row2Col4" >
<span style="text-align:right;" >30.00</span></td>
<td nowrap class="CVCellTaRXE" ondblclick="handledblclick()" style=";" oncontextmenu="setRowAndColumnValues('2','5')" name="TableCell_Row2Col5" id="TableCell_Row2Col5" >
<span style=";" ></span></td></tr>
<tr class="CVTaSeperator" >
<td class="CVTaSeperator" colspan="5" >
<img width="1" height="1" src="include.do?src=/jsdk/images/clear.gif" ></img></td></tr>
<tr onMouseDown="handleRowClick(null,this)" onkeypress="parent.isViewMode= true;handleRowEnter(null,this);return false" class="CVTaRow" id="TableRow_3" >
<td nowrap class="CVCellTaRXO" ondblclick="handledblclick()" style=";" oncontextmenu="setRowAndColumnValues('3','1')" name="TableCell_Row3Col1" id="TableCell_Row3Col1" >
<span style=";" >Forecast/Forecast Area - Gas/Area G2</span></td>
<td nowrap class="CVCellTaRXO" ondblclick="handledblclick()" style=";" oncontextmenu="setRowAndColumnValues('3','2')" name="TableCell_Row3Col2" id="TableCell_Row3Col2" >
<span style=";" >Aggregation Schedule From CTM</span></td>
<td nowrap class="CVCellTaRXO" ondblclick="handledblclick()" style=";" oncontextmenu="setRowAndColumnValues('3','3')" name="TableCell_Row3Col3" id="TableCell_Row3Col3" >
<span style=";" >10/25/2009 01:45:00</span></td>
<td nowrap class="CVCellTaRXO" ondblclick="handledblclick()" style="text-align:right;" oncontextmenu="setRowAndColumnValues('3','4')" name="TableCell_Row3Col4" id="TableCell_Row3Col4" >
<span style="text-align:right;" >40.00</span></td>
<td nowrap class="CVCellTaRXO" ondblclick="handledblclick()" style=";" oncontextmenu="setRowAndColumnValues('3','5')" name="TableCell_Row3Col5" id="TableCell_Row3Col5" >
<span style=";" ></span></td></tr>
<tr class="CVTaSeperator" >
<td class="CVTaSeperator" colspan="5" >
<img width="1" height="1" src="include.do?src=/jsdk/images/clear.gif" ></img></td></tr></tbody></table></td></tr></table></td>
<td >
<table >
<tr ></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td>
<td valign="top" >
<table cellpadding="0" class="PanelTable" style="null;" border="0" cellspacing="0" >
<tr >
<td class="PanelLabel" valign="top" ></td></tr>
<tr >
<td class="PanelBody" name="" id="" >
<table >
<tr >
<td valign="top" >
<table cellpadding="0" class="PanelTable" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:0px;null;" border="0" cellspacing="0" >
<tr >
<td class="PanelBody" name="" id="" >
<table cellpadding="0" class="PanelTable" style="null;" border="0" cellspacing="0" >
<tr >
<td class="PanelBody" name="" id="" >
<table >
<tr >
<td ></td></tr>
<tr >
<td >
<table cellpadding="0" class="PanelTable" style="null;" border="0" cellspacing="0" >
<tr >
<td class="PanelBody" name="" id="" >
<table width="100%" >
<tr >
<td >
<table cellpadding="0" class="PanelTable" style="null;" border="0" cellspacing="0" >
<tr >
<td class="PanelBody" name="" id="" >
<table >
<tr >
<td align="center" valign="center" >
<img align="center" src="include.do?src=/jsdk/images/md/chartLeftRight.gif" ></img></td></tr></table></td></tr></table></td>
<td >
<table cellpadding="0" class="PanelTable" style="null;" border="0" cellspacing="0" >
<tr >
<td class="PanelBody" name="" id="" >
<table >
<tr >
<td align="center" valign="center" >
<table cellpadding="0" class="PanelTable" style="null;" border="0" cellspacing="0" >
<tr >
<td class="PanelBody" name="ExpandableControlchart__HideBody" id="ExpandableControlchart__HideBody" > <div id="chartInfo"  style='border:1px solid #96A0DC;width:100%;background-color:#ECECF4' ><map name="mapfor2"><area shape="rect" coords="90,313,547,327">
<area shape="rect" coords="163,209,168,214" onmouseover="return escape('Y axis: 10 and X axis: 10/25/2009 01:00:00')" >
<area shape="rect" coords="332,167,337,172" onmouseover="return escape('Y axis: 20 and X axis: 10/25/2009 01:15:00')" >
<area shape="rect" coords="501,124,506,129" onmouseover="return escape('Y axis: 30 and X axis: 10/25/2009 01:30:00')" >
<area shape="rect" coords="670,82,675,87" onmouseover="return escape('Y axis: 40 and X axis: 10/25/2009 01:45:00')" >
</map><img src=chart.do?chartId=chart_2&uid=429933&pageId=2&no_cache=2 usemap="#mapfor2"&stopChartTag =''" border=0 /></div></td></tr></table></td></tr></table></td></tr></table></td>
<td ></td></tr></table></td></tr></table></td></tr>
<tr >
<td ></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr>
<tr >
<td ></td></tr></table></td></tr></table></td></tr></table><INPUT type=hidden id="pivotCurrentView" name="pivotCurrentView" value=""><INPUT type=hidden id="collapseColumnName" name="collapseColumnName" value=""><INPUT type=hidden id="pageNavigationType" name="pageNavigationType" value=""><INPUT type=hidden id="errMsgInMessageBarForHelp" name="errMsgInMessageBarForHelp" value="Online Help is not supported"><INPUT type=hidden id="indexHelpURL" name="indexHelpURL" value="index.htm"><INPUT type=hidden id="onLineHelpURL" name="onLineHelpURL" value="http://localhost:8081/OnlineHelp/$$COPWebUI/OnlineHelp_RU/$$xViewCyclicSchedule.htm"><INPUT type=hidden id="currentPage" name="currentPage" value="1"><INPUT type=hidden id="sortColumnName" name="sortColumnName" value=""><INPUT type=hidden id="collapseLevel" name="collapseLevel" value=""></FORM><script type="text/javascript" src="include.do?src=/resources/js/wz_tooltip.js&jsdk=DEV_2009.12.07.10.21"></script></body>
</html>
snapshots.xls
snapshots.xls

82.50 Kb

  Re: Tooltip problem.
Posted by Peter Kwan on Dec-08-2009 01:16
Hi CHETHAN,

The chart image you attached in the MS Word document in your previous email does not seem to match with your XML chart configuration. For instance, the chart width is not 750. Is it possible to attach the original chart image generated by ChartDirector?

Also, have your code resized the chart after generating the image map, or have your code included an offset parameter when generating the image map?

I am thinking, is it possible the shifting of the image map is caused by the containing HTML elements, CSS or Javascript? I am aware some HTML/CSS/Javascript can cause the image map to shift. For testing, you may use a simple web page that just contains the chart and the image map. This can eliminate this uncertainty.

If possible, could you inform me the "charting part" of your code? I would like to see how the chart is configured, and how the image map is generated, so I can try to reproduce it. If you cannot post the code in this forum, you may email me at pkwan@advsofteng.net.

Regards
Peter Kwan

  Time deference problem
Posted by CHETHAN on Feb-24-2010 20:52
Dear PeterKwan,

I am creating the line chart by setting x and y axis data.

I am creating x-axis by applaying folowing steps.

1. I have array of Date for  xData
2. I am converting arrayof date to array of Calender value by using current time zone(CET).
3. Then converting to array of double values using ChartDirector.Chart.CTime
4. then setting to line.

Now  I want change  x-axis label according to my requirement.

For this
1. I am calling layout() method on chart.
2. I am reading actual ticks created by the chartDirector using getTicks(); which will
   return array of double values.
3. Then i am converting each value to date using ChartDirector.Chart.NTime();

now i am getting the dates with adding one hour extra.

ex:
1.     I have the following dates
    [Sun Feb 21 22:00:00 UTC 2010,
    Sun Feb 21 22:15:00 UTC 2010,
    Sun Feb 21 22:30:00 UTC 2010,
    Sun Feb 21 22:45:00 UTC 2010,
    Sun Feb 21 23:00:00 UTC 2010,
    Sun Feb 21 23:15:00 UTC 2010,
    Sun Feb 21 23:30:00 UTC 2010,
    Sun Feb 21 23:45:00 UTC 2010,
    Mon Feb 22 00:00:00 UTC 2010]

2. after converting to double

  [6.340239E10,
6.34023909E10,
6.34023918E10,
6.34023927E10,
6.34023936E10,
6.34023945E10,
6.34023954E10,
6.34023963E10,
6.34023972E10]
i am assigning these values as x-axis data.

3. when i am reading using getTicks() i am getting the below values(specifying only first one which is same as while assigning)

[6.340239E10,
......,
..... ,
......,
......,
......,
......,
......]

4. After converting this to date I am getting Sun Feb 21 23:00:00 UTC 2010, but actual is Sun Feb 21 22:00:00 UTC 2010.




code to convert to double
private double[] convertToDoubleDate(Object[] data) {
double[] doubleDateData;
Calendar[] calendarData = new Calendar[data.length];
// Get the TimeZone
TimeZone timeZone = getTimeZone();
// This will return CET since set to CET.
java.util.TimeZone tZone = timeZone.getZone();
// Convert all date to Calender
for (int index = 0; index < data.length; index++) {
Calendar calendar =  GregorianCalendar.getInstance(tZone);
Date date = (Date)data[index];
calendar.setTime(date);
calendarData[index] =  calendar;
}
// Convert all calendar data to double data
doubleDateData = ChartDirector.Chart.CTime(calendarData);
return  doubleDateData;
}

please let me know what may be the problem.
Chethan H S

  Re: Time deference problem
Posted by Peter Kwan on Feb-25-2010 01:25
Hi CHETHAN,

The date/time in ChartDirector is timezone neutral. That means the timezone does not matter and is completely ignored.

For example, if you want ChartDirector to plot a chart from Feb 12, 2010 10:00 to Feb 13, 2010 22:00, then ChartDirector will plot the chart in that date/range, and so the labels on the x-axis. It does not matter what is the timezone of your date/time.

In your case, you are passing "Feb 21 23:00:00" to ChartDirector. (If you use calendar.get(java.util.Calendar.HOUR_OF_DAY), it will show the hour to be 23.)

When you ask the date/time back, ChartDirector will return "Feb 21 23:00:00". Because ChartDirector does not know the time zone, it just lets Java choose the time zone. I suppose in your case, the default time zone is set to UTC, so the date/time appears to be in UTC.

For your current code, you may consider to set the default timezone to CET using TimeZone.setDefault. In this way, there is no need for your code to create calendarData at all. You can just use:

java.util.TimeZone.setDefault(getTimeZone().getZone());
doubleDateData = ChartDirector.Chart.CTime(arrayOfDate);

If you do not want to change the default time zone, you can save the current default time zone first (using TimeZone.getDefault), perform the above steps, then set back the time zone to the saved default time zone.

When you get back the date/time, you can perform the same steps (set the default time zone first).

Hope this can help.

Regards
Peter Kwan

  Re: Time deference problem
Posted by CHETHAN on Feb-25-2010 12:54
Hi PeterKwan,

It is working fine.Thanks a lot.

Regards,
Chethan H S

  Re: Time deference problem
Posted by CHETHAN on Feb-25-2010 20:54
Attachments:
Hi Peter Kwan,

One more problem I am facing. please have a look at the attached snapshots.

In the first chart  I have not modified the labels and chart x-axis segment are displaying  properly.

In the second chart, I have modified the labels reading from getTicks() method.
But the chart x-axis segments are missing.

Please let me know how to handle this.


regard's
Chethan H S
chart.doc
chart.doc

39.00 Kb

  Re: Time deference problem
Posted by CHETHAN on Feb-26-2010 15:00
Hi PeterKwan,

  Please let me kwon the is there any way to handle the problem which I specified in the earliar post. This is very urgent, so please let me know how to handle it.

waiting for your reply.

regards,
Chethan H S

  Re: Time deference problem
Posted by Peter Kwan on Feb-27-2010 01:54
Hi CHETHAN,

Is it possible to email the charting part of your code to me? With just the charts, but without seeing the code that generates the chart, it is hard to know what may be the cause of the problem.

If you cannot send your real code to me, may be you can create a sample code with hard coded data, so I may know exactly how your code modifies the labels.

Regards
Peter Kwan

  Re: Time deference problem
Posted by CHETHAN on Feb-28-2010 20:08
Attachments:
Hi PeterKwan,

I have written a brief function how we are preparing line chart and changing labels.
Please have a look at the attached snapshot.


regards,
Chethan H S
chart1.doc
chart1.doc

40.00 Kb

  Re: Time deference problem
Posted by Peter Kwan on Mar-01-2010 20:09
Hi CHETHAN,

Your code uses "cdXAxis.setLabels(labels);" to put the labels on the x-axis. It only provides the labels, but not the positions of the labels. So ChartDirector will just spread the labels evenly on the x-axis, causing the behaviour you see.

The correct method is:

for (int i = 0; i < ticks.length; ++i)
    cdXAxis.addLabel(ticks[i], Formatter.formatValue(ChartDirector.Chart.NTime(tick[i])));

Hope this can help.

Regards
Peter Kwan

  Re: Time deference problem
Posted by CHETHAN on Mar-02-2010 13:18
Hi Peter Kwan,

Working fine.
Thanks a lot.

regards,
Chethan H S