JS根据一个列表填写的数据 汇总第二个列表的数据

     dest = [];
        var count = bodys0.getCount();
        for(var i=0;i<count;i++){
             var item = bodys0.getAt(i);
             dest.push({
                        vendercname: item.get("manufacturercname"),
                        productname:item.get("productcategoriescname"),
                        salescount: item.get("salescountofyear"),
                        salesmoney:item.get("salesmoneyofyear")
                    });            
        }
        dest.sort(function (a, b) {
                return SortByProps(a, b);
            });    

            //判断该厂家该产品是否已经存在,如果存在就累计销量
            var map = {},
            destbodys2 = [];
            for(var i = 0; i < dest.length; i++){
                var ai = dest[i];
                if(i==0){
                    map = ai;
                    destbodys2.push({
                        vendercname: ai.vendercname,
                        productname:ai.productname,
                        salescount: ai.salescount,
                        salesmoney:ai.salesmoney
                    });
                    continue;
                }
                if(map.vendercname ==  ai.vendercname && map.productname == ai.productname){
                    for(var j = 0; j < destbodys2.length; j++){
                        var dj = destbodys2[j];
                        if(dj.vendercname == ai.vendercname && dj.productname == ai.productname){
                            dj.salescount = Number(dj.salescount) + Number(ai.salescount);
                            dj.salesmoney = Number(dj.salesmoney) + Number(ai.salesmoney);
                            break;
                        }
                    }
                }else{
                    destbodys2.push({
                        vendercname: ai.vendercname,
                        productname:ai.productname,
                        salescount: ai.salescount,
                        salesmoney:ai.salesmoney
                    });
                     map = ai;
                }
            }
       var bodys1jduge = bodys1.getCount();
       if(bodys1jduge == 0){
           for(var i=0;i<destbodys2.length;i++){
             var item = destbodys2[i];
              if(item.vendercname != "" && item.productname != ""){
                     var arr1 = new Array();
                     var row1 = voucher.newRow(1)
                     row1.set("vendercname",item.vendercname);//生产厂家
                     row1.set("productname",item.productname);//合作产品
                     row1.set("salescount",item.salescount);//销售量
                     row1.set("salesmoney",item.salesmoney);//销售额
                     row1.set("flag","1");
                     arr1[0] = row1;
                     bodys1.add(arr1);       
              }                             
            }
       }else{
           for(var i=0;i<destbodys2.length;i++){
             var item = destbodys2[i];
             var indexget = isExists(item.vendercname,item.productname);
             if(indexget == -1){
             if(item.vendercname != "" && item.productname != ""){
             var arr1 = new Array();
             var row1 = voucher.newRow(1)
             row1.set("vendercname",item.vendercname);//生产厂家
             row1.set("productname",item.productname);//合作产品
             row1.set("salescount",item.salescount);//销售量
             row1.set("salesmoney",item.salesmoney);//销售额
               row1.set("flag","1");
             arr1[0] = row1;
             bodys1.add(arr1);   
             }               
             }else{
                 bodys1.remove(bodys1.getAt(indexget));//如果存在先移除 再添加
                 var arr1 = new Array();
                 var row1 = voucher.newRow(1)
                 row1.set("vendercname",item.vendercname);//生产厂家
                 row1.set("productname",item.productname);//合作产品
                 row1.set("salescount",item.salescount);//销售量
                 row1.set("salesmoney",item.salesmoney);//销售额
                 row1.set("flag","1");
                 arr1[0] = row1;
                 bodys1.add(arr1);
             }
                               
            }
       }

 

------------------------------值变更前 删除第二个列表里的对应数据

     dest = [];
        var count = bodys0.getCount();
        for(var i=0;i<count;i++){
             var item = bodys0.getAt(i);
             dest.push({
                        vendercname: item.get("manufacturercname"),
                        productname:item.get("productcategoriescname"),
                        salescount: item.get("salescountofyear"),
                        salesmoney:item.get("salesmoneyofyear")
                    });            
        }
        dest.sort(function (a, b) {
                return SortByProps(a, b);
            });    

            //判断该厂家该产品是否已经存在,如果存在就累计销量
            var map = {},
            destbodys2 = [];
            for(var i = 0; i < dest.length; i++){
                var ai = dest[i];
                if(i==0){
                    map = ai;
                    destbodys2.push({
                        vendercname: ai.vendercname,
                        productname:ai.productname,
                        salescount: ai.salescount,
                        salesmoney:ai.salesmoney
                    });
                    continue;
                }
                if(map.vendercname ==  ai.vendercname && map.productname == ai.productname){
                    for(var j = 0; j < destbodys2.length; j++){
                        var dj = destbodys2[j];
                        if(dj.vendercname == ai.vendercname && dj.productname == ai.productname){
                            dj.salescount = Number(dj.salescount) + Number(ai.salescount);
                            dj.salesmoney = Number(dj.salesmoney) + Number(ai.salesmoney);
                            break;
                        }
                    }
                }else{
                    destbodys2.push({
                        vendercname: ai.vendercname,
                        productname:ai.productname,
                        salescount: ai.salescount,
                        salesmoney:ai.salesmoney
                    });
                     map = ai;
                }
            }
       var bodys1jduge = bodys1.getCount();
       if(bodys1jduge == 0){
           for(var i=0;i<destbodys2.length;i++){
             var item = destbodys2[i];
              if(item.vendercname != "" && item.productname != ""){
                     var arr1 = new Array();
                     var row1 = voucher.newRow(1)
                     row1.set("vendercname",item.vendercname);//生产厂家
                     row1.set("productname",item.productname);//合作产品
                     row1.set("salescount",item.salescount);//销售量
                     row1.set("salesmoney",item.salesmoney);//销售额
                     row1.set("flag","1");
                     arr1[0] = row1;
                     bodys1.add(arr1);       
              }                             
            }
       }else{
           for(var i=0;i<destbodys2.length;i++){
             var item = destbodys2[i];
             var indexget = isExists(item.vendercname,item.productname);
             if(indexget == -1){
             if(item.vendercname != "" && item.productname != ""){
             var arr1 = new Array();
             var row1 = voucher.newRow(1)
             row1.set("vendercname",item.vendercname);//生产厂家
             row1.set("productname",item.productname);//合作产品
             row1.set("salescount",item.salescount);//销售量
             row1.set("salesmoney",item.salesmoney);//销售额
               row1.set("flag","1");
             arr1[0] = row1;
             bodys1.add(arr1);   
             }               
             }else{
                 bodys1.remove(bodys1.getAt(indexget));//如果存在先移除 再添加
                 var arr1 = new Array();
                 var row1 = voucher.newRow(1)
                 row1.set("vendercname",item.vendercname);//生产厂家
                 row1.set("productname",item.productname);//合作产品
                 row1.set("salescount",item.salescount);//销售量
                 row1.set("salesmoney",item.salesmoney);//销售额
                 row1.set("flag","1");
                 arr1[0] = row1;
                 bodys1.add(arr1);
             }
                               
            }
       }

 

function isExists(vendercname,productname){
    var indexget = -1;
    var bodys1countjduge = bodys1.getCount();
    for(var i=0;i<bodys1countjduge;i++){
        var item = bodys1.getAt(i);
        if(item.get("vendercname") == vendercname &&  item.get("productname")== productname){
            indexget = i;
        }
    }
    return indexget;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值