循环赋值

在数据统计中,特别是在表格的统计中,经常需要对多条数据的某个字段进行求和。例如,实收金额是根据多条数据的实收金额字段累加得到的。代码实现中,首先对数量初始化,然后在外层循环中根据数据总条数查询并进行循环赋值。在每次循环中,依据条件查询相关数据,并对需要累加的字段如销售数、实收金额等进行累加操作,最终得到的结果可以进行进一步处理,如保留两位小数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

循环赋值

开发工具与关键技术:
作者:熊琪
撰写时间: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条,在把需要累加的字段,就如页面现实的字段:销售数,实收金额,成本金额,吊牌金额和需要计算的值:折扣金额等都先声明为零,然后在每一次循环中给它赋值,最后得出的值也可进行其他操作比如得到的金额保留最后两位小数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值