Issue 71584

Summary: mutiple selections of table fields to add to query in design view not working
Product: Base Reporter: bwcook0 <brian>
Component: codeAssignee: AOO issues mailing list <issues>
Status: CONFIRMED --- QA Contact:
Severity: Trivial    
Priority: P3 CC: issues
Version: OOo 2.0.4   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Issue Type: ENHANCEMENT Latest Confirmation in: ---
Developer Difficulty: ---

Description bwcook0 2006-11-15 20:22:57 UTC
this is one of several issues holding me back from coaxing our people from 
access to ooo base.

I connect to an existing database via ODBC
click create query in design view.
add a few tables

Now when I select fields from a table:  I can multiple select with shit-click, 
ctrl-click.  However, if i try to drag the mutiple selection to the query it 
deselects all but the one the mouse pointer is over.  If i hit the enter key it 
adds the topmost selected item.  I cannot add a selected group at once, only 
one at a time.  Thanks for a great product!
Comment 1 christoph.lukasiak 2006-11-20 14:11:10 UTC
i can acknowledge that - this is a general missing feature (has nothing to do
with access or odbc)

-> send further to the feature enhancement team
Comment 2 bwcook0 2007-08-27 13:47:43 UTC
Coming up fast on a year since this was opened and no activity.  This is a basic
UI problem, any chance this will get implemented?  Thanks
Comment 3 bwcook0 2007-09-18 20:11:26 UTC
can anyone point me to where this is in the code so I might have a hack at it
Comment 4 Frank Schönheit 2007-09-18 20:30:59 UTC
dbaccess/source/ui/querydesign/TableWindowListBox.cxx implements the list box
class which displays the fields.
AcceptDrop is probably the method to change. It is called when a DnD operation
hovers the mouse over the window. It currently de-selects all entries but the
one which the mouse points to.
I'd say this should not be done if the draw source (the list box which initiate
the drag) is the same as the one which is being asked for accepting the drop
(AcceptDrop). Checking m_bDragSource should be sufficient.

Also, OJoinExchangeData (dbaccess/source/ui/inc/TableWindowListBox.hxx) needs to
be extended to include more than one entry (::std::vector< SvLBoxEntry* >
instead of SvLBoxEntry*).

SelectionBrowseBox::ExecuteDrop
(dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx) needs to be changed to
take into account more than one entry in the OJoinExchangeData.


That should be the first steps. There's more than this, especially, we need to
define and implement a new behavior for the TableWindowListBox class itself,
when multiple fields are dropped onto it. This should either be forbidden, or
open the dialog which allows creating a join/relation including multiple fields.

I'm not sure at the moment which would be better, nor how much effort this would
be, but the above should get you going. I'd be glad to discuss any problems you
encounter in dev@dba.openoffice.org.