[api-dev] setData on a chart

2009-07-29 Thread Andrew Douglas Pitonyak
I received a request on how to set the data on a chart. Calling setData 
causes OOo to crash, and it used to work.


This appears to be a regression problem, because the macro used to work. 
First, the original question as posed to me:


On 07/28/2009 11:11 AM, BD RJ wrote:
In OpenOffice.org Basic for Calc documents there was the method 
*setData()* for charts, that made us able to assign chart's data from 
an array.
We can find an example of code with this istruction in OpenOffice wiki 
at the link:

http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Charts/Data_Access
Code lines in question are after the explanation of the 
XChartDataArray interface.

We can analize this interface at the link:
http://api.openoffice.org/docs/common/ref/com/sun/star/chart/XChartDataArray.html
**
The method *setData() *belong to this inteface and his parameter and 
description are in the last link.

The problem is:
In the last version of OpenOffice (OpenOffice 3.x) this istruction 
make OpenOffice crash.

**
I have also explained my problem in
http://www.oooforum.org/forum/viewtopic.phtml?p=334655
but noone answered me.
Can you please help me?
Thanks in advance



The original macro that used to work is as follows:

Sub GR
   oDoc = ThisComponent
   oCurSheet = oDoc.CurrentController.ActiveSheet
   oCharts = oCurSheet.Charts
   Dim aRect as new com.sun.star.awt.Rectangle
   oCharts.addNewByName("chart1", aRect, Array(), False, True)
   oChart = oCharts.getByName("chart1").EmbeddedObject

   Dim oData as Object
   Dim oDataArray(0 To 1) as Object
   Dim oX(0 To 2)   As Double
   Dim oY(0 To 2)   As Double
   oX(0) = 4.5
   oX(1) = 2.6
   oX(2) = 17.0
   oY(0) = 45.0
   oY(1) = 23.0
   oY(2) = 11.0
   oDataArray(0) = oX()
   oDataArray(1) = oY()
   oChart.Diagram.DataRowSource = 
com.sun.star.chart.ChartDataRowSource.ROWS

   oData = oChart.Data
   oData.setData(oDataArray())
End sub

This fails when the data is set. I even tried a close approximation:

Sub GR
  Dim oDoc, oCurSheet, oCharts, oChart
  Dim oDiagram, oChartDoc
   oDoc = ThisComponent
   oCurSheet = oDoc.CurrentController.ActiveSheet
   oCharts = oCurSheet.Charts
   Dim oRect
'   If (oCharts.hasByName("chart1")) Then
' Inspect oCharts
' Exit Sub
'   End If

  oRect   = createObject("com.sun.star.awt.Rectangle")
  oRect.X = 1
  oRect.Y = 1000
  oRect.width = 1
  oRect.Height= 1


   oCharts.addNewByName("chart1", oRect, Array(), False, True)
   oChart = oCharts.getByName("chart1")

   Dim oData as Object
   Dim oDataArray(0 To 1) as Object
   Dim oX(0 To 2)   As Double
   Dim oY(0 To 2)   As Double
   oX(0) = 4.5
   oX(1) = 2.6
   oX(2) = 17.0
   oY(0) = 45.0
   oY(1) = 23.0
   oY(2) = 11.0
   oDataArray(0) = oX()
   oDataArray(1) = oY()
  oChartDoc = oChart.getEmbeddedObject()
  oDiagram = oChartDoc.createInstance( "com.sun.star.chart.LineDiagram" )
  oChartDoc.setDiagram( oDiagram )
  oDiagram = oChartDoc.getDiagram()
  oDiagram.DataRowSource = com.sun.star.chart.ChartDataRowSource.ROWS
  oData = oChartDoc.Data
'  Inspect oData
  oData.setData(oDataArray())
End sub


--
Andrew Pitonyak
My Macro Document: http://www.pitonyak.org/AndrewMacro.odt
My Book: http://www.hentzenwerke.com/catalog/oome.htm
Info:  http://www.pitonyak.org/oo.php
See Also: http://documentation.openoffice.org/HOW_TO/index.html



Re: [api-dev] setData on a chart

2009-08-11 Thread Cor Nouws

Andrew Douglas Pitonyak wrote (29-7-2009 1:35)
I received a request on how to set the data on a chart. Calling setData 
causes OOo to crash, and it used to work.


This appears to be a regression problem, because the macro used to work. 
[...]


No idea (didn't really take the time to dive into this).
But I see issue http://www.openoffice.org/issues/show_bug.cgi?id=103984 
is the one to keep an eye on.


Ciao - Cor


--
Cor Nouws - nl.OpenOffice.org marketing contact
Ontwikkelaar? Join! http://council.openoffice.org/developers.html
Gevoel niet vrij te zijn? Zie www.nieuwsteversie.nl

-
To unsubscribe, e-mail: dev-unsubscr...@api.openoffice.org
For additional commands, e-mail: dev-h...@api.openoffice.org



Re: [api-dev] setData on a chart

2009-09-02 Thread Ingrid Halama

Hi,

On 08/11/09 21:11, Cor Nouws wrote:

Andrew Douglas Pitonyak wrote (29-7-2009 1:35)
I received a request on how to set the data on a chart. Calling 
setData causes OOo to crash, and it used to work.


This appears to be a regression problem, because the macro used to 
work. [...]



Yes it is a regression.


No idea (didn't really take the time to dive into this).
But I see issue http://www.openoffice.org/issues/show_bug.cgi?id=103984 
is the one to keep an eye on.



The bug is fixed in CWS chart41 now.

Kind regards,
Ingrid


-
To unsubscribe, e-mail: dev-unsubscr...@api.openoffice.org
For additional commands, e-mail: dev-h...@api.openoffice.org