sc/source/core/data/dociter.cxx | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-)
New commits: commit 1d1301de3248b1e08a66a259457f59b5406a5034 Author: Eike Rathke <er...@redhat.com> Date: Thu Jan 2 20:52:28 2014 +0100 resolved fdo#73113 not string cell does not mean no string at cell Introduced with c008dc483f8c6840803983e7e351cec6fdd32070 the ScQueryCellIterator::BinarySearch() evaluated all non-string cells as not being string, ignoring edit cells and formula cell string results. Change-Id: I43be46dc8db35d6d0677086c345379ed4627b355 (cherry picked from commit 6046207ea2ef67de1388b30a7e8e0da5dcf5e6bf) diff --git a/sc/source/core/data/dociter.cxx b/sc/source/core/data/dociter.cxx index 565565f..dab4a10 100644 --- a/sc/source/core/data/dociter.cxx +++ b/sc/source/core/data/dociter.cxx @@ -1547,8 +1547,24 @@ bool ScQueryCellIterator::BinarySearch() continue; // while } + bool bHaveRefCell = false; PositionType aPos = pCol->maCells.position(i); - bool bStr = aPos.first->type == sc::element_type_string; + bool bStr; + switch (aPos.first->type) + { + case sc::element_type_formula: + aCell = sc::toRefCell(aPos.first, aPos.second); + bHaveRefCell = true; + bStr = aCell.hasString(); + break; + case sc::element_type_string: + case sc::element_type_edittext: + bStr = true; + break; + default: + bStr = false; + break; + } nRes = 0; // compares are content<query:-1, content>query:1 @@ -1556,7 +1572,8 @@ bool ScQueryCellIterator::BinarySearch() if (!bStr && !bByString) { double nCellVal; - aCell = sc::toRefCell(aPos.first, aPos.second); + if (!bHaveRefCell) + aCell = sc::toRefCell(aPos.first, aPos.second); switch (aCell.meType) { case CELLTYPE_VALUE : @@ -1611,7 +1628,8 @@ bool ScQueryCellIterator::BinarySearch() { OUString aCellStr; sal_uLong nFormat = pCol->GetNumberFormat(i); - aCell = sc::toRefCell(aPos.first, aPos.second); + if (!bHaveRefCell) + aCell = sc::toRefCell(aPos.first, aPos.second); ScCellFormat::GetInputString(aCell, nFormat, aCellStr, rFormatter, pDoc); nRes = pCollator->compareString(aCellStr, rEntry.GetQueryItem().maString.getString()); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits