openoffice-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Clarence GUO <>
Subject Re: review requested: [Bug 122822] Correct viewing of XY-, Column- and Line-Charts limited to 10000 records + 1 Heading row : [Attachment 81359] Fix patch
Date Wed, 21 Aug 2013 03:09:12 GMT
Hi~ Regina,
I understand your suggestion. But I think it has a limitation. We can
implement drawing shapes in each individual chart type. But drawing data
lables on X axis is common, not belongs to drawing shapes in chart type. So
when drawing axis, it doesn't know how did the implementation of draw data
points in one chart type, it can only draw from begining point in order.
About your question about Excel import, you mentioned delete the original
chart in Excel, then create a new one in AOO, it works. Did you use AOO4.0?
Then fix code of 121058 is already there, so it works.
About another question, my fix is only for spreadsheet. Yes, I only fixed
for spreadsheet because charts with too many data are mainly in
spreadsheet. It's hard to create chart with so many points in presentation
and word processor because they are using internal provider. Maybe we can
fix internal provider in a separate defect.


2013/8/20 Regina Henschel <>

> Hi Clarence,
> Clarence GUO schrieb:
>  Hi~ Regina,
>> Do you mean the change should at view side?
> Yes.
>  But each chart type has it's
>> own implementation of view.
> And each chart has its own performance problems. Drawing an XY-chart with
> only points might work, but showing data point labels will fail. Drawing a
> line in 2D might be fine, but drawing the same line in 3D will fail.
> Drawing only points might work, but drawing a regression line or smoothed
> curve in addition might fail.
>  So if we want to change at view side, we have
>> to change code in each implementation. That code looks not very effective.
>> My change doesn't change model because the data source range can be kept.
> But is solves only Calc as data provider.
> Changing the view would also not change data source range but only the
> amount of generated shapes.
> Another problem is, that there must be something additional in Excel
> import, because using ods works with the same amount of data. Delete the
> chart in Excel, open the file in AOO and then make a new chart. It is slow,
> but works.
> Solving it inside chart has the opportunity to bring the threshold to UI,
> as suggested in comment 23.
>  It only picked some points from model to prepare viewing for drawing
>> performance consideration.
> But I'm not an expert here and you should wait, what our experienced
> developers think.
> A nitpick: the step should not be fix but depend on the amount of data
> relative to a threshold.
> Kind regards
> Regina
>  2013/8/20 Regina Henschel <>
>>  Hi,
>>> I think, that it is the wrong place for a correction. A chart is a
>>> document and the chart itself should take care, that it draws its data
>>> series in a reasonable time.
>>> Kind regards
>>> Regina
>>> schrieb:
>>>   Clarence GUO <> has asked  for review:
>>>> Bug 122822: Correct viewing of XY-, Column- and Line-Charts limited to
>>>> 10000
>>>> records + 1 Heading row
>>>> <https**://**bug.cgi?id=122822<>
>>>> >
>>>> Attachment 81359: Fix patch
>>>> action=edit<**attachment.cgi?id=81359&**action=edit>
>>>> <https://issues.****id=81359&action=edit<>
>>>> >
>>>> ------- Additional Comments from Clarence GUO <
>>>> The root cause of this defect is in fix of 121058, only some points were
>>>> picked
>>>> up in order to save loading time and memory for tens of thousands of
>>>> data
>>>> points. All data points were divided into many small groups and only
>>>> picked min
>>>> and max points from one group. The reason why only picked min and max
>>>> points
>>>> instead of using a regular distance is, for example, if there is a
>>>> column
>>>> or a
>>>> line chart, most of data points are around max value 100 and min value
>>>> 10, only
>>>> if we pick max and min values from one group, the chart can keep it's
>>>> original
>>>> outline. But if we use a regular distance, we might only get some
>>>> mid-value(for
>>>> example 50) of the chart and will miss the chart outline.
>>>> But the mechanism never consider scatter chart or bubble chart which
>>>> have
>>>> multiple data sequence in one series. For example, for scatter chart,
>>>> one
>>>> series has two sequence, x values and y values. A x value and a y value
>>>> must be
>>>> a pair. Then when pick x values, a min and a max values were picked.
>>>> When
>>>> pick
>>>> y values, another min and max values were picked. However, the picked
>>>> min
>>>> and
>>>> max x values probably are not in one pair of min and max y values. For
>>>> example,
>>>> index of min and max x values are 10 and 40. It should get No. 10 and
>>>> No.
>>>> 40
>>>> values from y values, but it might get No. 30 and No. 35. So in this
>>>> case, the
>>>> chart data are totally corrupt. That is the root cause.
>>>> My fix will roll back code of 121058 in ScChart2DataSequence::**
>>>> getNumericalData
>>>> and add new fix code in ScChart2DataSequence::****BuildDataCache(),
>>>> then
>>>> wrong axes
>>>> data label issue mentioned by Regina Henschel can be fixed. And new code
>>>> will
>>>> use regular distance to pick up points then problem for scatter chart
>>>> and
>>>> other
>>>> charts which have multiple sequences in one series can be fixed. If the
>>>> distance is small enough, fore-mentioned chart outline issue is no
>>>> problem. So
>>>> I use 5 as regular distance.
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: dev-unsubscribe@openoffice.**<>
> For additional commands, e-mail:

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message