循环赋值
开发工具与关键技术:
作者:熊琪
撰写时间:2019.7.26
在完成某些功能时会牵扯到多条数据的某个字段的求和,一般在表格的统计中运用的比较广,在对这种数据的统计时,首先要明白数据库中数据有个一对多的过程,正如图一中第二数据,显示到页面的数据是由13条数据组成的一条数据,而后面的字段实收金额是根据13条数据的实收金额累加得到的,同理后两个字段也是根据多条数据的字段累加而得到的。
(图一)
代码明细如下:
//给数量一个初始值
data[i].sellAmount = 0;
data[i].Countyuanjia = 0;
data[i].CountPrice = 0;
#region 把明细循环赋值给主体并储存到listdaySellDetail变量中
for (int a = 0; a < datail.Count; a++)
{
data[i].sellAmount += datail[a].sellAmount;
var unitPrice = datail[a].sellAmount * datail[a].TagPrice;
data[i].Countyuanjia += unitPrice;
var unitPrice2 = datail[a].CountPrice * datail[a].sellAmount;
data[i].CountPrice += unitPrice2;
data[i].PaymenTypeName = data[i].SellNumber + "(" + datail[a].PaymenTypeName + ":" + data[i].CountPrice + ")" + data[i].Remark;
data[i].CommodityTypeName = datail[a].CommodityTypeName;
}
data[i].CountPrice = Convert.ToDecimal(Convert.ToDecimal(data[i].CountPrice).ToString("f2"));
data[i].discountsPrice = data[i].Countyuanjia - data[i].CountPrice;
data[i].BrandName = data[i].BrandName;
data[i].BrandID = data[i].BrandID;
在这串代码之外还包裹着另外一个循环,简单来说就是查询数据的总条数然后通过条数来循环查询的次数,最后再在正如以上代码所示开始循环赋值,
其中一条件代码:
var paymentMethod = (from tb in myModels.S_PaymentType
select new Salesstatistics
{
PaymentTypeID = tb.PaymentTypeID,
PaymenTypeName = tb.PaymentTypeName
}).ToList();
if (condition == "10") { count = paymentMethod.Count(); }
页面有传输condition的值过来,这只是其中的一个查询,符合哪个条件就进行哪个查询
然后就进行for循环,条件为查出数据的条数,来判断循环的次数,条件代码:
int i = 0; i < count; i++
data[i]中的i是由查询的数据循环第几次来决定的,data中查出的数据正如图一中共有的六条数据,而这六条数据包含的信息量是更多条的,比如方法中查出第二条数据时,data[i]中的i等于1的索引,而对应条件为int a = 0; a < datail.Count; a++,的for循环的总条数为13条,在把需要累加的字段,就如页面现实的字段:销售数,实收金额,成本金额,吊牌金额和需要计算的值:折扣金额等都先声明为零,然后在每一次循环中给它赋值,最后得出的值也可进行其他操作比如得到的金额保留最后两位小数。