private void RefreshData() { var myiDao = GlobalData.getIDao <kaede2nd.Dao.IItemDao>(); var myGrp = (from i in myiDao.GetAll() //where i.item_sellprice.HasValue == true group i by this.makeCompareSellerString(i.item__Receipt.getSellerString())); var youriDao = this.yourData.getIDao <kaede2nd.Dao.IItemDao>(); var yourGrp = (from i in youriDao.GetAll() //where i.item_sellprice.HasValue == true group i by this.makeCompareSellerString(i.item__Receipt.getSellerString())); IEqualityComparer <IGrouping <string, Item> > comp = new grpComparer <string, Item>(); //(long?)(myg.Sum(item => (long)item.item_sellprice.Value)) var dest = (from myg in myGrp join yog in yourGrp on myg.Key equals yog.Key select new HenkinJoined { Key = myg.Key, ExampleItem = myg.First(), Items1 = myg.ToList(), Items2 = yog.ToList() } ).Union( myGrp.Except(yourGrp, comp).Select( ggg => new HenkinJoined { Key = ggg.Key, ExampleItem = ggg.First(), Items1 = ggg.ToList(), Items2 = null } ) ).Union( yourGrp.Except(myGrp, comp).Select( ggg => new HenkinJoined { Key = ggg.Key, ExampleItem = ggg.First(), Items1 = null, Items2 = ggg.ToList() } ) ); this.joinedlist = dest.ToList(); this.dataGridView1.Rows.Clear(); foreach (var j in this.joinedlist) { DataGridViewRow row = this.dataGridView1.Rows[this.dataGridView1.Rows.Add()]; this.setRowValue(row, j); } this.dataGridView1.VirtualMode = true; this.dataGridView1.VirtualMode = false; this.dataGridView1.Enabled = true; this.dataGridView1.Focus(); }
private void RefreshData() { var context = new DBClassDataContext(Globals.ConnectionString); var data = from i in context.item select i; List <ItemSellInfo> list = new List <ItemSellInfo>(); foreach (var q in data) { var rt_data = context.receipt.Single(n => n.receipt_id == q.item_receipt_id); list.Add( new ItemSellInfo { item_id = q.item_id, item_receipt_id = q.item_receipt_id, item_receipt_seller = rt_data.receipt_seller, item_receipt_seller_exname = rt_data.receipt_seller_exname, item_return = q.item_return, item_sellprice = q.item_sellprice }); } var myGrp = (from i in list //where i.item_sellprice.HasValue == true group i by this.makeCompareSellerString(Globals.getSellerString(i.item_receipt_seller, i.item_receipt_seller_exname))); var yourcontext = new DBClassDataContext(yourData); var _data = from i in yourcontext.item select i; List <ItemSellInfo> _list = new List <ItemSellInfo>(); foreach (var q in _data) { var rt_data = yourcontext.receipt.Single(n => n.receipt_id == q.item_receipt_id); _list.Add( new ItemSellInfo { item_id = q.item_id, item_receipt_id = q.item_receipt_id, item_receipt_seller = rt_data.receipt_seller, item_receipt_seller_exname = rt_data.receipt_seller_exname, item_return = q.item_return, item_sellprice = q.item_sellprice }); } var yourGrp = (from i in _list //where i.item_sellprice.HasValue == true group i by this.makeCompareSellerString(Globals.getSellerString(i.item_receipt_seller, i.item_receipt_seller_exname))); IEqualityComparer <IGrouping <string, ItemSellInfo> > comp = new grpComparer <string, ItemSellInfo>(); //(long?)(myg.Sum(item => (long)item.item_sellprice.Value)) var dest = (from myg in myGrp join yog in yourGrp on myg.Key equals yog.Key select new HenkinJoined { Key = myg.Key, ExampleItem = myg.First(), Items1 = myg.ToList(), Items2 = yog.ToList() } ).Union( myGrp.Except(yourGrp, comp).Select( ggg => new HenkinJoined { Key = ggg.Key, ExampleItem = ggg.First(), Items1 = ggg.ToList(), Items2 = null } ) ).Union( yourGrp.Except(myGrp, comp).Select( ggg => new HenkinJoined { Key = ggg.Key, ExampleItem = ggg.First(), Items1 = null, Items2 = ggg.ToList() } ) ); this.joinedlist = dest.ToList(); this.dataGridView1.Rows.Clear(); foreach (var j in this.joinedlist) { DataGridViewRow row = this.dataGridView1.Rows[this.dataGridView1.Rows.Add()]; //出品者 var g = j.ExampleItem; string receipt_seller = g.item_receipt_seller; string receipt_seller_exname = g.item_receipt_seller_exname; string sellerstring = Globals.getSellerString(receipt_seller, receipt_seller_exname); row.Cells["ColumnReceipt"].Value = sellerstring; row.Cells["ColumnReceipt"].Tag = Globals.getSellerSortKey(receipt_seller, receipt_seller_exname); //売上額 row.Cells["ColumnSellPrice"].Value = this.getSellSum(j.Items1) + this.getSellSum(j.Items2); //Sum1 this.setCellSellSumString(row.Cells["ColumnSum1"], j.Items1); //返品個数1 this.setCellReturnCount(row.Cells["ColumnReturn1"], j.Items1); //Sum2 this.setCellSellSumString(row.Cells["ColumnSum2"], j.Items2); //返品個数2 this.setCellReturnCount(row.Cells["ColumnReturn2"], j.Items2); } this.dataGridView1.VirtualMode = true; this.dataGridView1.VirtualMode = false; this.dataGridView1.Enabled = true; this.dataGridView1.Focus(); }