counter 적용

git-svn-id: svn://192.168.0.12/source@112 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
admin
2015-05-13 06:07:58 +00:00
parent f964a4c2e3
commit 08cfdd9083
2 changed files with 68 additions and 0 deletions

View File

@@ -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();

View File

@@ -256,6 +256,8 @@ private:
void FilterSerach(QString strJson);
void FilterLength(QString strJson);
void FilterReplace(QString strJson);
void FilterCounter(QString _strJson);
bool ReloadColumn();
void ReloadData();
QString SeqDelString(QString _strData,QChar _chChar,int _nMax);