sc/qa/uitest/autofilter/autofilter.py      |   25 +++++++++++++++++++++++++
 sc/qa/uitest/data/autofilter/tdf144253.ods |binary
 sc/source/core/data/table3.cxx             |    2 +-
 sc/source/core/tool/cellform.cxx           |    2 +-
 4 files changed, 27 insertions(+), 2 deletions(-)

New commits:
commit 73a0deeda1bc63e78de6aa3df9c3324b4ebe0d3b
Author:     Balazs Varga <balazs.varga...@gmail.com>
AuthorDate: Mon Sep 6 12:02:54 2021 +0200
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Tue Sep 21 14:26:27 2021 +0200

    tdf#144253 tdf#144324 sc filter: use formatted values in filters
    
    if the results of formulas are values.
    
    Followed up of 40acda4e78127fa9f513646ef210b074d40cf307
    (Related: tdf#140968 avoid duplicated filter values)
    
    Change-Id: Ib396d2b7cc08ba41b5936a53a28b5e38bf678b3e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121715
    Tested-by: László Németh <nem...@numbertext.org>
    Reviewed-by: László Németh <nem...@numbertext.org>
    (cherry picked from commit 51375b48378915b6e95c1ac26b2ccf8e39880f7e)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122288
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/sc/qa/uitest/autofilter/autofilter.py 
b/sc/qa/uitest/autofilter/autofilter.py
index 7c8078c702c5..44758cd2de13 100644
--- a/sc/qa/uitest/autofilter/autofilter.py
+++ b/sc/qa/uitest/autofilter/autofilter.py
@@ -545,4 +545,29 @@ class AutofilterTest(UITestCase):
 
         self.ui_test.close_doc()
 
+    def test_tdf144253(self):
+        doc = self.ui_test.load_file(get_url_for_data_file("tdf144253.ods"))
+
+        xGridWin = self.xUITest.getTopFocusWindow().getChild("grid_window")
+
+        xGridWin.executeAction("LAUNCH", mkPropertyValues({"AUTOFILTER": "", 
"COL": "4", "ROW": "0"}))
+        xFloatWindow = self.xUITest.getFloatWindow()
+        xCheckListMenu = xFloatWindow.getChild("check_list_menu")
+        xTreeList = xCheckListMenu.getChild("check_list_box")
+        self.assertEqual(2, len(xTreeList.getChildren()))
+        self.assertEqual("65.43", 
get_state_as_dict(xTreeList.getChild('0'))['Text'])
+        self.assertEqual("83.33", 
get_state_as_dict(xTreeList.getChild('1'))['Text'])
+
+        xFirstEntry = xTreeList.getChild("1")
+        xFirstEntry.executeAction("CLICK", tuple())
+
+        xOkBtn = xFloatWindow.getChild("ok")
+        xOkBtn.executeAction("CLICK", tuple())
+
+        self.assertFalse(is_row_hidden(doc, 0))
+        self.assertTrue(is_row_hidden(doc, 1))
+        self.assertFalse(is_row_hidden(doc, 2))
+
+        self.ui_test.close_doc()
+
 # vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/sc/qa/uitest/data/autofilter/tdf144253.ods 
b/sc/qa/uitest/data/autofilter/tdf144253.ods
new file mode 100644
index 000000000000..d2581904d0ac
Binary files /dev/null and b/sc/qa/uitest/data/autofilter/tdf144253.ods differ
diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx
index 1958a7044d05..5caea5500fda 100644
--- a/sc/source/core/data/table3.cxx
+++ b/sc/source/core/data/table3.cxx
@@ -2463,7 +2463,7 @@ public:
                     nCellVal = mrDoc.RoundValueAsShown(rCell.mfValue, nNumFmt, 
pContext);
                 break;
                 case CELLTYPE_FORMULA :
-                    nCellVal = rCell.mpFormula->GetValue();
+                    nCellVal = 
mrDoc.RoundValueAsShown(rCell.mpFormula->GetValue(), nNumFmt, pContext);
                 break;
                 default:
                     nCellVal = 0.0;
diff --git a/sc/source/core/tool/cellform.cxx b/sc/source/core/tool/cellform.cxx
index c61207d60678..a3aac8f1a16c 100644
--- a/sc/source/core/tool/cellform.cxx
+++ b/sc/source/core/tool/cellform.cxx
@@ -133,7 +133,7 @@ void ScCellFormat::GetInputString(
             if (pFC->IsEmptyDisplayedAsString())
                 rString = EMPTY_OUSTRING;
             else if (pFC->IsValue())
-                rFormatter.GetInputLineString(pFC->GetValue(), nFormat, 
rString);
+                rFormatter.GetInputLineString(pFC->GetValue(), nFormat, 
rString, bFiltering);
             else
                 rString = pFC->GetString().getString();
 

Reply via email to