summaryrefslogtreecommitdiff
path: root/sc/source/ui/view/gridwin.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/ui/view/gridwin.cxx')
-rw-r--r--sc/source/ui/view/gridwin.cxx13
1 files changed, 10 insertions, 3 deletions
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index b8eeb868809e..87740a88e4df 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -165,6 +165,7 @@ private:
BOOL bInit;
BOOL bCancelled;
BOOL bInSelect;
+ bool mbListHasDates;
ULONG nSel;
ScFilterBoxMode eMode;
@@ -188,6 +189,8 @@ public:
BOOL IsInInit() const { return bInit; }
void SetCancelled() { bCancelled = TRUE; }
BOOL IsInSelect() const { return bInSelect; }
+ void SetListHasDates(bool b) { mbListHasDates = b; }
+ bool HasDates() const { return mbListHasDates; }
};
//-------------------------------------------------------------------
@@ -203,6 +206,7 @@ ScFilterListBox::ScFilterListBox( Window* pParent, ScGridWindow* pGrid,
bInit( TRUE ),
bCancelled( FALSE ),
bInSelect( FALSE ),
+ mbListHasDates(false),
nSel( 0 ),
eMode( eNewMode )
{
@@ -907,7 +911,9 @@ void ScGridWindow::DoAutoFilterMenue( SCCOL nCol, SCROW nRow, BOOL bDataSelect )
pFilterBox->SetSeparatorPos( nDefCount - 1 );
// get list entries
- pDoc->GetFilterEntries( nCol, nRow, nTab, aStrings, true );
+ bool bHasDates = false;
+ pDoc->GetFilterEntries( nCol, nRow, nTab, true, aStrings, bHasDates);
+ pFilterBox->SetListHasDates(bHasDates);
// check widths of numerical entries (string entries are not included)
// so all numbers are completely visible
@@ -1117,7 +1123,7 @@ void ScGridWindow::FilterSelect( ULONG nSel )
ExecDataSelect( nCol, nRow, aString );
break;
case SC_FILTERBOX_FILTER:
- ExecFilter( nSel, nCol, nRow, aString );
+ ExecFilter( nSel, nCol, nRow, aString, pFilterBox->HasDates() );
break;
case SC_FILTERBOX_SCENARIO:
pViewData->GetView()->UseScenario( aString );
@@ -1150,7 +1156,7 @@ void ScGridWindow::ExecDataSelect( SCCOL nCol, SCROW nRow, const String& rStr )
void ScGridWindow::ExecFilter( ULONG nSel,
SCCOL nCol, SCROW nRow,
- const String& aValue )
+ const String& aValue, bool bCheckForDates )
{
SCTAB nTab = pViewData->GetTabNo();
ScDocument* pDoc = pViewData->GetDocument();
@@ -1222,6 +1228,7 @@ void ScGridWindow::ExecFilter( ULONG nSel,
rNewEntry.bDoQuery = TRUE;
rNewEntry.bQueryByString = TRUE;
rNewEntry.nField = nCol;
+ rNewEntry.bQueryByDate = bCheckForDates;
if ( nSel == SC_AUTOFILTER_TOP10 )
{
rNewEntry.eOp = SC_TOPVAL;