private bool orderNumberDesc(int first, int last, int orderBy)
{
int i = 0;
int j = 0;
int t = 0;
int q = 0;
bool bChanged = false;
t = pEstimateLoops(last - first);
for (i = first + 1; i <= last; i++)
{
bChanged = false;
for (j = last; j >= i; j--)
{
q = q + 1;
double number1 = cUtil.val(m_rows.Rows[m_vRowsIndex[j]][orderBy]);
double number2 = cUtil.val(m_rows.Rows[m_vRowsIndex[j - 1]][orderBy]);
if (number1 > number2)
{
if (!OnProgress("", 0, q, t))
{
return false;
}
changeRow(j, j - 1);
bChanged = true;
}
}
if (!OnProgress("", 0, q, t))
{
return false;
}
if (!bChanged)
{
break;
}
}
return true;
}