Issue 57030 - Double-click in Datapilot cell should provide calculation data of that cell
Summary: Double-click in Datapilot cell should provide calculation data of that cell
Alias: None
Product: Calc
Classification: Application
Component: code (show other issues)
Version: OOo 2.0
Hardware: All All
: P3 Trivial with 1 vote (vote)
Target Milestone: ---
Assignee: frank
QA Contact: issues@sc
Keywords: usability
: 81531 (view as issue list)
Depends on:
Reported: 2005-10-31 12:46 UTC by tboerkel
Modified: 2013-08-07 15:14 UTC (History)
6 users (show)

See Also:
Latest Confirmation in: ---
Developer Difficulty: ---

Excel-Screenshot #1: Data source for pivot table (30.59 KB, image/png)
2007-08-19 19:45 UTC, niederbayern
no flags Details
Excel-Screenshot #2: New sheet contains result of pivot table. (27.06 KB, image/png)
2007-08-19 19:45 UTC, niederbayern
no flags Details
Excel-Screenshot #3: New sheet shows result of double-click drilldown. (19.14 KB, image/png)
2007-08-19 19:47 UTC, niederbayern
no flags Details
testcasespecification (23.55 KB, text/html)
2007-11-06 15:28 UTC, frank
no flags Details
Testdocument (10.02 KB, application/vnd.oasis.opendocument.spreadsheet)
2007-11-06 15:29 UTC, frank
no flags Details
Testdocument (14.71 KB, application/vnd.oasis.opendocument.spreadsheet)
2007-11-06 15:29 UTC, frank
no flags Details

Note You need to log in before you can comment on or make changes to this issue.
Description tboerkel 2005-10-31 12:46:13 UTC
When I double-click a Pivot table cell in Excel, I get a list of data, out of
which this cell was calculated. This is an extremely useful feature and I would
like to see that in OO Calc as well. Thanks!
Comment 1 frank 2005-11-25 10:02:56 UTC
requirements have to decide
Comment 2 niederbayern 2006-03-12 16:25:01 UTC
The feature requested by tboerkel is named "Drilldown" in Excel.  When selecting
the "More" button after launching Calc´s Datapilot there is an option "Allow
Drilldown". But selecting this option does not enable this feature.
Comment 3 kpalagin 2007-03-12 22:24:06 UTC
Dear developers,
any progress with this RFE?
Comment 4 Regina Henschel 2007-08-19 17:29:43 UTC
Please try the newest OOo version. As far as I have tested, it works now.
(WinXP, OOGm1)
Comment 5 tboerkel 2007-08-19 17:46:11 UTC
What version is "OOGm1"? It does not work in 2.2.1.
Comment 6 Regina Henschel 2007-08-19 19:00:02 UTC
The actual developer snapshot, see

Besides the fact that Excel can show a + button and OOo only nows the
double-click, I see no difference between OOo and Excel. But perhaps I don't
understand you right, when you say "list of data"?
Comment 7 niederbayern 2007-08-19 19:45:05 UTC
Created attachment 47627 [details]
Excel-Screenshot #1: Data source for pivot table
Comment 8 niederbayern 2007-08-19 19:45:55 UTC
Created attachment 47628 [details]
Excel-Screenshot #2: New sheet contains result of pivot table.
Comment 9 niederbayern 2007-08-19 19:47:08 UTC
Created attachment 47629 [details]
Excel-Screenshot #3: New sheet shows result of double-click drilldown.
Comment 10 niederbayern 2007-08-19 19:49:29 UTC
Regina, I am afraid you didn´t get the point. Please have a look at the three
screenshots from Excel.

Step 1 (screenshot1.png): Data source for pivot table

Step 2 (screenshot2.png): New sheet contains result of pivot table.

Step 3 (screenshot2.png): Doubleclick on cell C6 ("Drilldown")

Step 4 (screenshot3.png): New sheet shows result of drilldown.

The result of the double-click shows a copy of those lines from the data source,
that go into the result value in cell C6.
Comment 11 Regina Henschel 2007-08-19 21:45:41 UTC
OK, now I see. So Excels "drill down" is entirely different from what is called
"drill down" in the (German) OOo. Of cause you can get such table by using a
filter. But you are right, getting it with a simple double-click in the
DataPilot table, would be nice.
Comment 12 kyoshida 2007-09-12 18:02:46 UTC
I'm taking this.
Comment 13 kyoshida 2007-09-12 18:03:36 UTC
accepting the issue, since I'm working on this halfway (?) already.
Comment 14 kyoshida 2007-09-12 18:04:37 UTC
*** Issue 81531 has been marked as a duplicate of this issue. ***
Comment 15 kyoshida 2007-09-14 04:41:34 UTC
An experimental patch in ooo-build is available here.

Comment 16 kyoshida 2007-09-14 13:58:03 UTC
adding nn to CC.  This is his area of expertise, so he needs to be in the loop.
Comment 17 kyoshida 2007-09-25 20:05:03 UTC
Here is some progress with screenshots.
Comment 18 kpalagin 2007-09-26 07:33:23 UTC
thank you very much for your effort!

Please attach patch to this issue and change issue type to patch so that it 
shows up when Tracker is queried for patches and developers will easily see it.
Comment 19 niklas.nebel 2007-09-26 14:01:20 UTC
May I mention the dreaded word "specification"? If only to define the conditions
that are considered to select the rows. Manually hidden items should probably be
considered. Auto-hidden items (Top 10) are a different issue - handling them
would require status information from the result implementation, but one might
argue that they can be left included, because their values are used to select
the visible items (a bit of a stretch, I know).

An external implementation of the existing DataPilotSource UNO service doesn't
supply the information to support this feature. We might add an optional
interface to the service, but of course an external implementation doesn't
necessarily have tabular data to start with (think of the DevGuide example).
Comment 20 kyoshida 2007-09-27 16:19:05 UTC

Thanks for your encouragement. :-)

There is no need to attach a patch since it's not really ready yet.  I'll
probably end up creating a CWS for this instead of submitting the code as a
single patch, since the change will likely involve more than just the sc module.

@nn thanks for your comments.

I will start working on writing a specification when the time comes.  Right now,
I'm still investigating the criteria of how to pick rows, based on what the
current code does as well as what Excel does.  But I'll write up a summary in
the spec at some point.

I also agree with introducing a new UNO interface for this functionality.  I'm
already hacking around this by explicitly calling Reference.get() to expose the
implementation class (which is ugly), so in the end a new UNO interface is
really needed.
Comment 21 niklas.nebel 2007-10-22 14:15:30 UTC
What's the current state of this? If we want to include it into 2.4, it has to
be finished soon (see
Comment 22 kyoshida 2007-10-22 14:22:46 UTC
@nn: functionality-wise, it works with the in-sheet data source as well as the
external database source.  And I'm working on the UNO API at the moment.  I'm
also working to refactor the existing code as a result of my code change, to
simplify it a bit & remove redundant data access.

November 15 deadline seems like a tight schedule but I might be able to make it
if everything goes smoothly.

PS I'm just back from a 4-day vacation so there was no progress last week.
Comment 23 frank 2007-10-22 14:27:57 UTC
Hi Kohei,

please keep in mind that you have just 1 week less time because the cws has to
pass the QA before the Feature freeze occurs. So November 15 is the latest day a
feature cws can be approved by QA for integration into 2.4.

Comment 24 kyoshida 2007-10-22 14:36:42 UTC
Ah, that makes it even tighter!  Well, I'll do my best.
Comment 25 kyoshida 2007-10-22 18:31:08 UTC

one question.  Under what circumstances does the ScDPGroupTableData class get
used?  I'm trying to make a test case for the ScDPGroupTableData code, but can't
figure out how to get the code executed.

Comment 26 kyoshida 2007-10-22 20:55:30 UTC
The location of the latest patch has been changed.
Comment 27 niklas.nebel 2007-10-23 13:14:05 UTC
ScDPGroupTableData is used for grouping (select some items from a column or row
field in the table, and do "Data/Group and Outline/Group", or see for an example).

With all the recent trouble around contributing or not contributing, I'd prefer
the patch attached to the issue.
Comment 28 kyoshida 2007-10-23 14:19:46 UTC

Thanks for your explanation.  Now it's clear how the grouping works.

As for the patch, the reason I posted the URL was so that I don't have to repost
URLs everytime I make changes, and the fact that the patch is not yet ready &
still has lots of printf statements in it.  That URL shows the up-to-date patch
at all times.

Once I get the grouping to work properly I'll create a CWS and put my code
there, hopefully soon.
Comment 29 kyoshida 2007-10-26 12:47:39 UTC
The feature specification for this functionality is here:

The spec is still on-going, so it will likely go through revisions.

Comment 30 niklas.nebel 2007-10-26 13:08:19 UTC
In the API, the use of return values is generally preferred over "out"
parameters. In the C++ implementation, sequences are ref-counted, so there's no
big performance overhead.
Comment 31 kyoshida 2007-10-29 14:35:12 UTC
I've updated the UNO API (spec as well as the actual implementation) to avoid
use of [out] parameter to return the data array.  I've also added another
(unpublished) interface XDataPilotTable2, which extends the existing (published)
XDataPilotTable interface, to provide a means for the client code to retrieve
constituent rows from the position of a cell within the data field.
Comment 32 kyoshida 2007-10-29 18:50:50 UTC
A CWS created for this task:
Comment 33 niklas.nebel 2007-11-01 18:32:51 UTC
Wow, these are quite radical changes on the CWS, more with each revision.
Integrating all of that now, late in the 2.4 cycle, would be likely to break
other DataPilot functionality, with no time left to fix it before the release.

My suggestion for 2.4: We take your implementation of
ScDPOutput::GetDataFieldPositionData, and I make a quick implementation of
outputting the rows directly in ScDPSource, using the unmodified ScDPTableData.
That wouldn't change (and thus, not break) other areas of DataPilot.

Then we'd have time to make sure the cache table really works, and could
integrate it (replacing my row output code) early in the 3.0 cycle.

Any objections?
Comment 34 kyoshida 2007-11-01 18:52:57 UTC

No objections to your suggestion.  In fact, I was gonna suggest the same thing
since we are so close to releasing 2.4, and I don't feel comfortable rushing
this change in.  This is indeed a big change (as you rightly pointed out).

I've just started writing test code for this change, so I'll probably need more
time to make sure nothing breaks.  That will also give me more time to work on
other DataPilot related issues.
Comment 35 niklas.nebel 2007-11-02 14:53:24 UTC
So let's use this issue for the feature in 2.4.
For the cache table, you should create a new issue.
Comment 36 niklas.nebel 2007-11-02 14:59:41 UTC
Implemented on CWS "datapilotdetails".
Comment 37 niklas.nebel 2007-11-02 15:00:21 UTC
Reassigning to QA for verification.
Comment 38 kyoshida 2007-11-02 15:12:39 UTC
Issue 83250 filed for the cache table implementation.
Comment 39 frank 2007-11-06 15:28:28 UTC
Created attachment 49470 [details]
Comment 40 frank 2007-11-06 15:29:01 UTC
Created attachment 49471 [details]
Comment 41 frank 2007-11-06 15:29:35 UTC
Created attachment 49472 [details]
Comment 42 frank 2007-11-07 10:50:29 UTC
found fixed on cws datapilotdetails using Solaris, Linux and Windows build
Comment 43 frank 2007-12-14 10:50:06 UTC
found integrated on master m239 using Linux, Solaris and Windows build