Kaydet (Commit) 42e472b5 authored tarafından Kohei Yoshida's avatar Kohei Yoshida Kaydeden (comit) Kohei Yoshida

tdf#105629: Let's move the advanced-filter specific stuff ...

to the place where we actually parse the filtering rules for advanced
filter queries.

Change-Id: I87650227e15fa54303efd720530d31ecf9827226
Reviewed-on: https://gerrit.libreoffice.org/33816Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarKohei Yoshida <libreoffice@kohei.us>
üst 5f33745c
......@@ -2888,26 +2888,15 @@ public:
void operator() (ScQueryEntry::Item& rItem)
{
if (rItem.meType != ScQueryEntry::ByString && rItem.meType != ScQueryEntry::ByDate)
// Double-check if the query by date is really appropriate.
if (rItem.meType != ScQueryEntry::ByDate)
return;
sal_uInt32 nIndex = 0;
bool bNumber = mrDoc.GetFormatTable()->
IsNumberFormat(rItem.maString.getString(), nIndex, rItem.mfVal);
// Advanced Filter creates only ByString queries that need to be
// converted to ByValue if appropriate. rItem.mfVal now holds the value
// if bNumber==true.
if (rItem.meType == ScQueryEntry::ByString)
{
if (bNumber)
rItem.meType = ScQueryEntry::ByValue;
return;
}
// Double-check if the query by date is really appropriate.
if (bNumber && ((nIndex % SV_COUNTRY_LANGUAGE_OFFSET) != 0))
{
const SvNumberformat* pEntry = mrDoc.GetFormatTable()->GetEntry(nIndex);
......@@ -3272,12 +3261,22 @@ bool ScTable::CreateQueryParam(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow
if (!bValid)
bValid = CreateExcelQuery(nCol1, nRow1, nCol2, nRow2, rQueryParam);
SvNumberFormatter* pFormatter = pDocument->GetFormatTable();
nCount = rQueryParam.GetEntryCount();
if (bValid)
{
// bQueryByString must be set
for (i=0; i < nCount; i++)
rQueryParam.GetEntry(i).GetQueryItem().meType = ScQueryEntry::ByString;
{
ScQueryEntry::Item& rItem = rQueryParam.GetEntry(i).GetQueryItem();
sal_uInt32 nIndex = 0;
bool bNumber = pFormatter->IsNumberFormat(
rItem.maString.getString(), nIndex, rItem.mfVal);
rItem.meType = bNumber ? ScQueryEntry::ByValue : ScQueryEntry::ByString;
}
}
else
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment