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 <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
(cherry picked from commit 51375b48378915b6e95c1ac26b2ccf8e39880f7e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122288
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
diff --git a/sc/qa/uitest/autofilter/autofilter.py b/sc/qa/uitest/autofilter/autofilter.py
index 7c8078c..44758cd2 100644
--- a/sc/qa/uitest/autofilter/autofilter.py
+++ b/sc/qa/uitest/autofilter/autofilter.py
@@ -545,4 +545,29 @@

        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 0000000..d258190
--- /dev/null
+++ b/sc/qa/uitest/data/autofilter/tdf144253.ods
Binary files differ
diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx
index 1958a704..5caea55 100644
--- a/sc/source/core/data/table3.cxx
+++ b/sc/source/core/data/table3.cxx
@@ -2463,7 +2463,7 @@
                    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 c61207d..a3aac8f1 100644
--- a/sc/source/core/tool/cellform.cxx
+++ b/sc/source/core/tool/cellform.cxx
@@ -133,7 +133,7 @@
            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();