counter 적용
git-svn-id: svn://192.168.0.12/source@112 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
@@ -302,6 +302,69 @@ void SFilterProcess::FilterLength(QString _strJson)
|
||||
m_data[nSelect] = copyData;
|
||||
}
|
||||
|
||||
|
||||
void SFilterProcess::FilterCounter(QString _strJson)
|
||||
{
|
||||
SJson json;
|
||||
int nSelect = json.Get(_strJson,"Article").toInt() - 1;
|
||||
if (nSelect < 0) return;
|
||||
m_bDataFlag[nSelect] = true;
|
||||
|
||||
int nCatalog = json.GetNumber(_strJson,"Category");
|
||||
int nComp = json.GetNumber(_strJson,"Comp");
|
||||
int nFlag = json.GetNumber(_strJson,"InsDel");
|
||||
int nCounter = json.Get(_strJson,"String").toInt();
|
||||
|
||||
QMap <QString, int> mapData, mapDataresult;
|
||||
foreach(QStringList strList , m_data[nSelect])
|
||||
{
|
||||
QString str = strList.at(nCatalog).trimmed();
|
||||
if(mapData.contains(str))
|
||||
{
|
||||
mapData[str] += 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
mapData.insert(str, 1);
|
||||
}
|
||||
}
|
||||
|
||||
for(QMap <QString, int>::iterator iterPos = mapData.begin(); iterPos != mapData.end(); iterPos++)
|
||||
{
|
||||
bool bFlag = false;
|
||||
switch(nComp)
|
||||
{
|
||||
case E_LENGTH_COMP_GREATER:
|
||||
if (iterPos.value() > nCounter)
|
||||
bFlag = true;
|
||||
break;
|
||||
case E_LENGTH_COMP_LESS:
|
||||
if (iterPos.value() < nCounter)
|
||||
bFlag = true;
|
||||
break;
|
||||
case E_LENGTH_COMP_EQUAL:
|
||||
if (iterPos.value() == nCounter)
|
||||
bFlag = true;
|
||||
break;
|
||||
}
|
||||
if (nFlag == 1) bFlag = !bFlag;
|
||||
if (bFlag)
|
||||
mapDataresult.insert(iterPos.key(), iterPos.value());
|
||||
}
|
||||
|
||||
mapData.clear();
|
||||
|
||||
QVector <QStringList> copyData;
|
||||
foreach(QStringList strList , m_data[nSelect])
|
||||
{
|
||||
QString str = strList.at(nCatalog).trimmed();
|
||||
if(mapDataresult.contains(str))
|
||||
copyData.push_back(strList);
|
||||
}
|
||||
m_data[nSelect].clear();
|
||||
m_data[nSelect] = copyData;
|
||||
}
|
||||
|
||||
void SFilterProcess::FilterReplace(QString _strJson)
|
||||
{
|
||||
SJson json;
|
||||
@@ -444,6 +507,9 @@ void SFilterProcess::DataFilter(QString _strFilterGroupID)
|
||||
case E_FILTER_TYPE_REPLACE:
|
||||
FilterReplace(query.value(1).toString());
|
||||
break;
|
||||
case E_FILTER_TYPE_COUNTER:
|
||||
FilterCounter(query.value(1).toString());
|
||||
break;
|
||||
}
|
||||
}
|
||||
m_db.close();
|
||||
|
||||
Reference in New Issue
Block a user