数组返回过去五年的年终余额- (c#)
本文关键字:余额 五年 返回 数组 过去 | 更新日期: 2023-09-27 17:54:34
我试图只返回过去五年的年终信息(12月31日),并在DataGrid中显示该信息。这并不包括当年。
我的程序当前显示的是前一年到本年度最近一个月的最后一天的月末信息(例如:当前月份是2011年5月,我的DataGrid中显示的信息显示的是2010年1月31日存储的数据;2010年2月28日;2010年3月31日....31日,2010;2011年1月31日;2011年2月28日;2011年3月31日;2011年4月30日)。
它还添加了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";
}
您是否尝试将数据集查询限制为您想要的年份?