Issue 110641 - Add new API: Range.AdvanceFilter
Summary: Add new API: Range.AdvanceFilter
Status: CONFIRMED
Alias: None
Product: App Dev
Classification: Unclassified
Component: vba (show other issues)
Version: 3.3.0 or older (OOo)
Hardware: All All
: P3 Trivial
Target Milestone: ---
Assignee: AOO issues mailing list
QA Contact: noel.power
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-04-06 07:55 UTC by lihuiibm
Modified: 2017-05-20 11:29 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
Test cases for this issue (68.00 KB, text/plain)
2010-04-06 08:07 UTC, lihuiibm
no flags Details
Patch for this issue (9.89 KB, text/plain)
2010-04-06 08:08 UTC, lihuiibm
no flags Details
Change the patch according to Noel's comments (9.44 KB, patch)
2010-04-20 15:56 UTC, lihuiibm
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this issue.
Description lihuiibm 2010-04-06 07:55:53 UTC
Add new API: Range.AdvanceFilter
Comment 1 lihuiibm 2010-04-06 08:07:11 UTC
Created attachment 68769 [details]
Test cases for this issue
Comment 2 lihuiibm 2010-04-06 08:08:31 UTC
Created attachment 68770 [details]
Patch for this issue
Comment 3 noel.power 2010-04-06 17:09:04 UTC
couple of comments,

I think IsR1C1ReferFormat, we already have the r1c1 parser and it is possible to
use an instance of ScCompiler to try and parse a r1c1 range, if it works/parses
then the range is r1c1, if not then it isn't.

the check 
+	if ( m_Areas->getCount() > 1 || mxRanges.is() || !mxRange.is() )
+	{
+		throw uno::RuntimeException( rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM("Invalid range" ) ), uno::Reference< uno::XInterface
>() );
+	}

should be at the start of the method I think, wouldn't 
"if ( m_Areas->getCount() > 1 )" be a sufficient test or at least the
mxRanges.is() part tests the same thing? 

other than that, this looks good, please commit that and take it over
Comment 4 lihuiibm 2010-04-20 15:56:52 UTC
Created attachment 69011 [details]
Change the patch according to Noel's comments
Comment 5 lihuiibm 2010-04-20 16:03:00 UTC
Noel, I use ScRangeList.Parse(...) to check if the range is r1c1 or not. please
review the new patch. 
As you said: The check for m_Areas->getCount() > 1 should be at start of the
method; Because the check for parameter "Action" has higher priority than the
check for m_Areas in Excel, so I put the check for m_Areas->getCount() > 1 after
these lines:
if ( Action != excel::XlFilterAction::xlFilterInPlace && Action !=
excel::XlFilterAction::xlFilterCopy )
{
    ......
}
Comment 6 noel.power 2010-04-26 12:12:28 UTC
looks good to me :-) thanks for the update
Comment 7 Pedro Giffuni 2013-01-23 18:49:47 UTC
Perhaps also a [From Symphony] issue?
Comment 8 Marcus 2017-05-20 11:29:45 UTC
Reset assigne to the default "issues@openoffice.apache.org".