Exemplo n.º 1
0
 private static void pRedim(ref t_SerieValue[] vSeries, int size)
 {
     if (size == 0)
     {
         vSeries = null;
     }
     else
     {
         vSeries = new t_SerieValue[size];
     }
 }
Exemplo n.º 2
0
 private static void pRedimPreserve(ref t_SerieValue[] vSeries, int size)
 {
     if (size == 0)
     {
         vSeries = null;
     }
     else
     {
         if (vSeries == null)
         {
             vSeries = new t_SerieValue[size];
         }
         else if (vSeries.Length == 0)
         {
             vSeries = new t_SerieValue[size];
         }
         else
         {
             t_SerieValue[] newArray = new t_SerieValue[size];
             Array.Copy(vSeries, newArray, vSeries.Length);
             vSeries = newArray;
         }
     }
 }
Exemplo n.º 3
0
 private static void pRedim(ref t_SerieValue[] vSeries, int size)
 {
     if (size == 0)
     {
         vSeries = null;
     }
     else
     {
         vSeries = new t_SerieValue[size];
     }
 }
Exemplo n.º 4
0
 private static void pRedimPreserve(ref t_SerieValue[] vSeries, int size)
 {
     if (size == 0)
     {
         vSeries = null;
     }
     else
     {
         if (vSeries == null)
         {
             vSeries = new t_SerieValue[size];
         }
         else if (vSeries.Length == 0)
         {
             vSeries = new t_SerieValue[size];
         }
         else
         {
             t_SerieValue[] newArray = new t_SerieValue[size];
             Array.Copy(vSeries, newArray, vSeries.Length);
             vSeries = newArray;
         }
     }
 }
Exemplo n.º 5
0
 private bool pGetSerieValuesAux(
     DataRowCollection rows,
     t_SerieValue[] v,
     int valueIndex,
     int labelIndex,
     int i,
     int j,
     bool bAdd)
 {
     if (bAdd)
     {
         v[i].value = v[i].value + (double)cReportGlobals.valVariant(rows[j][valueIndex]);
     }
     else
     {
         v[i].value = (double)cReportGlobals.valVariant(rows[j][valueIndex]);
     }
     v[i].label = (String)cReportGlobals.valVariant(rows[j][labelIndex]);
     v[i].idx = j;
     i = i + 1;
     return i > v.Length;
 }
Exemplo n.º 6
0
        private void pGetSerieValues(
            DataRowCollection rows,
            t_SerieValue[] v,
            int valueIndex,
            int labelIndex,
            bool bOthers)
        {
            int i = 0;
            int j = 0;
            int q = 0;
            double value = 0;
            bool bFound = false;
            bool bCompare = false;
            int newTop = 0;

            if (m_groupFieldIndex >= 0)
            {
                // TODO: we need the rows dimension. remeber rows is a matrix (cols by rows)
                for (j = 0; j < rows.Count; j++)
                {
                    if (cReportGlobals.valVariant(rows[j][m_groupFieldIndex]) == m_groupValue)
                    {
                        newTop++;
                    }
                }

                if (newTop > 0) { newTop--; }

                if (v.Length > newTop)
                {
                    pRedimPreserve(ref v, newTop);
                }
            }

            if (m_sort)
            {

                if (m_groupFieldIndex >= 0)
                {
                    // TODO: we need the rows dimension. remeber rows is a matrix (cols by rows)
                    for (j = 0; j < rows.Count; j++)
                    {

                        if ((String)cReportGlobals.valVariant(rows[j][m_groupFieldIndex]) == m_groupValue)
                        {
                            v[0].value = (double)cReportGlobals.valVariant(rows[j][valueIndex]);
                            v[0].label = (String)cReportGlobals.valVariant(rows[j][labelIndex]);
                            v[0].idx = j;
                            break;
                        }
                    }

                }
                else
                {
                    v[0].value = (double)cReportGlobals.valVariant(rows[0][valueIndex]);
                    v[0].label = (String)cReportGlobals.valVariant(rows[0][labelIndex]);
                    v[0].idx = 0;
                }
                // TODO: we need the rows dimension. remeber rows is a matrix (cols by rows)
                for (j = 0; j < rows.Count; j++)
                {

                    if (m_groupFieldIndex >= 0)
                    {
                        bCompare = (String)cReportGlobals.valVariant(rows[j][m_groupFieldIndex]) == m_groupValue;
                    }
                    else
                    {
                        bCompare = true;
                    }

                    if (bCompare)
                    {
                        value = cUtil.val(cReportGlobals.valVariant(rows[j][valueIndex]));

                        if (value > v[0].value)
                        {
                            v[0].value = value;
                            v[0].label = (String)cReportGlobals.valVariant(rows[j][labelIndex]);
                            v[0].idx = j;
                        }
                    }
                }

                for (i = 0; i < v.Length; i++)
                {

                    v[i].idx = -1;
                    // TODO: we need the rows dimension. remeber rows is a matrix (cols by rows)
                    for (j = 0; j < rows.Count; j++)
                    {

                        if (m_groupFieldIndex >= 0)
                        {
                            bCompare = (String)cReportGlobals.valVariant(rows[j][m_groupFieldIndex]) == m_groupValue;
                        }
                        else
                        {
                            bCompare = true;
                        }

                        if (bCompare)
                        {
                            value = cUtil.val(cReportGlobals.valVariant(rows[j][valueIndex]));

                            if ((value > v[i].value || v[i].idx == -1)
                                && value <= v[i - 1].value && j != v[i - 1].idx)
                            {

                                bFound = false;
                                for (q = 0; q <= i; q++)
                                {
                                    if (j == v[q].idx)
                                    {
                                        bFound = true;
                                        break;
                                    }
                                }

                                if (!bFound)
                                {
                                    v[i].value = value;
                                    v[i].label = cReportGlobals.valVariant(rows[j][labelIndex]).ToString();
                                    v[i].idx = j;
                                }
                            }
                        }
                    }
                }

            }
            else
            {
                i = 0;
                // TODO: we need the rows dimension. remeber rows is a matrix (cols by rows)
                for (j = 0; j < rows.Count; j++)
                {
                    if (m_groupFieldIndex >= 0)
                    {
                        if ((String)cReportGlobals.valVariant(rows[j][m_groupFieldIndex]) == m_groupValue)
                        {
                            if (pGetSerieValuesAux(rows, v, valueIndex, labelIndex, i, j, false)) { break; }
                        }
                    }
                    else
                    {
                        if (pGetSerieValuesAux(rows, v, valueIndex, labelIndex, i, j, false)) { break; }
                    }
                }

                if (bOthers)
                {
                    // TODO: we need the rows dimension. remeber rows is a matrix (cols by rows)
                    if (rows.Count > v.Length)
                    {
                        int n = 0;
                        int k = 0;
                        bool bHaveToRedim = false;
                        bHaveToRedim = true;
                        n = v.Length + 1;
                        // TODO: we need the rows dimension. remeber rows is a matrix (cols by rows)
                        for (j = 0; j < rows.Count; j++)
                        {
                            if (m_groupFieldIndex >= 0)
                            {
                                if ((String)cReportGlobals.valVariant(rows[j][m_groupFieldIndex]) == m_groupValue)
                                {
                                    if (k >= n)
                                    {
                                        if (bHaveToRedim)
                                        {
                                            pRedimPreserve(ref v, n);
                                            bHaveToRedim = false;
                                        }
                                        pGetSerieValuesAux(rows, v, valueIndex, labelIndex, v.Length, j, true);
                                    }
                                    else
                                    {
                                        k = k + 1;
                                    }
                                }
                            }
                            else
                            {
                                if (bHaveToRedim)
                                {
                                    pRedimPreserve(ref v, n);
                                    bHaveToRedim = false;
                                }
                                pGetSerieValuesAux(rows, v, valueIndex, labelIndex, v.Length, j, true);
                            }
                        }
                    }
                }
            }
        }