过去五年返回年末余额的数组 - (C#)

时间:2011-05-04 14:56:01

标签: c# arrays

我试图仅返回过去五年的年终信息(12月31日),并在DataGrid中显示该信息。这不包括当年。

我的程序当前显示的是上一年的月末信息,直到当年最近一个月的最后一天(例如:当前月份是2011年5月,我的DataGrid中显示的信息显示了存储的数据2010年1月31日; 2010年2月28日; 2010年3月31日... 2010年12月31日; 2011年1月31日; 2011年2月28日; 2011年3月31日; 4月30日, 2011)。

它还会在2010年12月31日之后添加总计行,在2011年4月30日之后添加另一行。在新的DataGrid中将不需要这两个总计行。

以下是返回月末信息的当前代码的片段。

如果我遗漏了任何信息或者我的问题不明确,请告诉我。

我提前为这样一个菜鸟问题道歉,过去几天让我疯狂的是我无法弄明白这一点。

protected DataSet DS;
protected DataRow dr, dNew;

private void GetInfo()
{

}

private double getDbl(string columnName)
{
    if (dr[columnName] != DBNull.Value)
        return Double.Parse(dr[columnName].ToString());
    return 0;
}

private void Calculate()
{
    double cg, na, n, ka, nka, kaa, tca;
    double tmr, to, gpo;
    int year, rowcnt, rowindx, months;

    months = -1;
    rowindx = 0;
    cg = 0;
    na = 0;
    n = 0;
    ka = 0;
    nka = 0;
    kaa = 0;
    tca = 0;
    tmr = 0;
    tor = 0;
    gpo = 0;

    rowcnt = DS.Tables[0].Rows.Count;

    if (rowcnt > 0) year = Int32.Parse(DS.Tables[0].Rows[0]["cy"].ToString());
    else year = 0;

    for (int i = 0; i < rowcnt; i++)
    {
        months++;
        dr = DS.Tables[0].Rows[i]

        if (year != Int32.Parse(dr["cy"].ToString())
        {
            dNew = DS.Tables[0].NewRow();
            dNew["ind"] = rowindx;
            dNew["cg"] = cg;
            dNew["na"] = na;
            dNew["n"] = n;
            dNew["ka"] = ka / months;
            dNew["nka"] = nka / months;
            dNew["kaa"] = kaa / months;
            dNew["tca"] = tca / months;
            dNew["tmr"] = tmr / months;
            dNew["tor"] = tor;
            dNew["gpo"] = gpo / months;

            cg = 0;
            na = 0;
            n = 0;
            ka = 0;
            nka = 0;
            kaa = 0;
            tca = 0;
            tmr = 0;
            tor = 0;
            gpo = 0;
            months = 1;
            year = Int32.Parse(dr["cy"].ToString());
            rowindx++;

            DS.Tables[0].Rows.Add(dNew);

            dNew = DS.Tables[0].NewRow();
            dNew["ind"] = rowindx;
            rowindx++;
            DS.Tables[0].Rows.Add(dNew);
        }

        cg += getDbl("cg");
        na += getDbl("na");
        n += getDbl("n");
        ka += getDbl("ka");
        nka += getDbl("nka");
        kaa += getDbl("kaa");
        tca += getDbl("tca");
        tmr += getDbl("tmr");
        tor += getDbl("tor");
        gpo += getDbl("gpo");
        dr["ind"] = rowindx;
        rowindx++;
    }

    dNew = DS.Tables[0].NewRow();
    dNew["ind"] = rowindx;
    dNew["cg"] = cg;
    dNew["na"] = na;
         dNew["n"] = naum;
         dNew["ka"] = ka / months;
         dNew["nka"] = nka / months;
         dNew["kaa"] = kaa / months;
         dNew["tca"] = tca / months;
         dNew["tmr"] = tmr / months;
         dNew["tor"] = tor;
         dNew["gpo"] = gpo / months;
         DS.Tables[0].Rows.Add(dNew);

      DS.Tables[0].DefaultView.Sort = "ind";
}

1 个答案:

答案 0 :(得分:2)

您是否尝试将数据集查询限制为您想要的年份?