void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e) { if (e.RowIndex < 0 || e.ColumnIndex < 0 || e.Button != MouseButtons.Right) { return; } this.dataGridView1.CurrentCell = this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex]; cms.Items["Paste"].Enabled = !this.dataGridView1.CurrentCell.ReadOnly; cms.Items["FrozeColumn"].Enabled = !this.dataGridView1.Columns[e.ColumnIndex].Frozen; cms.Items["DefrozeColumn"].Enabled = this.dataGridView1.Columns[e.ColumnIndex].Frozen; if (this.PurchaseHistoryMenuItems != null)//历史采购信息右键加入多采购单菜单 { Business.Models.SupplyUnitHistoryDrugList c = this.dataGridView1.CurrentRow.DataBoundItem as Business.Models.SupplyUnitHistoryDrugList; this.PurchaseHistoryMenuItems.DropDownItems.Clear(); this.PurchaseCheckingMenuItems.DropDownItems.Clear(); var u = c.PurchaseID2DocumentNumber; if (u != null) { foreach (var i in u) { ToolStripItem tsi = new ToolStripButton(); tsi.Text = i.DocumentNumber; tsi.Tag = i.Id; tsi.Click += new EventHandler(delegate(object o, EventArgs ex) { this.tsi_Click(tsi, 0); }); this.PurchaseHistoryMenuItems.DropDownItems.Add(tsi); tsi = new ToolStripButton(); tsi.Text = i.DocumentNumber; tsi.Tag = i.Id; tsi.Click += new EventHandler(delegate(object o, EventArgs ex) { this.tsi_Click(tsi, 1); }); this.PurchaseCheckingMenuItems.DropDownItems.Add(tsi); } } else { this.PurchaseHistoryMenuItems.DropDownItems.Add(c.PurchaseOrderDocumentNumber, null, delegate(object o, EventArgs ex) { DropDownTarget(c.purchaseOrderID); }); this.PurchaseCheckingMenuItems.DropDownItems.Add(c.PurchaseOrderDocumentNumber, null, delegate(object o, EventArgs ex) { DropDownTarget_Checking(c.purchaseOrderID); }); } } cms.Show(System.Windows.Forms.Control.MousePosition.X, System.Windows.Forms.Control.MousePosition.Y); }
private void DrugStatic() { if (this.ListS.Count <= 1) { return; } var gr = from i in this.ListS group i by new { i.drugName, i.SupplyUnitName } into g let OrderId2Number = from j in g select new Business.Models.PurchaseID2DocumentNumber { Id = j.purchaseOrderID, DocumentNumber = j.PurchaseOrderDocumentNumber } select new Business.Models.SupplyUnitHistoryDrugList { batchNumber = g.FirstOrDefault().batchNumber, drugName = g.FirstOrDefault().drugName, cansaleNum = g.Sum(r => r.cansaleNum), Checker = g.FirstOrDefault().Checker, CheckTime = g.FirstOrDefault().CheckTime, CreateTime = g.FirstOrDefault().CreateTime, Creator = g.FirstOrDefault().Creator, dosage = g.FirstOrDefault().dosage, DrugInfoId = g.FirstOrDefault().DrugInfoId, factoryName = g.FirstOrDefault().factoryName, InInventoryMan = g.FirstOrDefault().InInventoryMan, InventoryNum = decimal.Round(g.Sum(r => r.InventoryNum), 2), InventorySum = decimal.Round(g.Sum(r => r.InventorySum), 2), InventoryTime = g.FirstOrDefault().InventoryTime, Origin = g.FirstOrDefault().Origin, outValidDate = g.FirstOrDefault().outValidDate, permitNumber = g.FirstOrDefault().permitNumber, PurchaseNum = g.Sum(r => r.PurchaseNum), PurchaseOrderDocumentNumber = "共计" + OrderId2Number.Count() + "单", PurchaseID2DocumentNumber = OrderId2Number, purchaseOrderID = Guid.Empty, PurchasePrice = g.Max(r => r.PurchasePrice), Receiver = g.FirstOrDefault().Receiver, ReceiveTime = g.FirstOrDefault().ReceiveTime, specific = g.FirstOrDefault().specific, SupplyUnitName = g.FirstOrDefault().SupplyUnitName, SupplyUnitId = g.FirstOrDefault().SupplyUnitId, WareHouseZone = g.FirstOrDefault().WareHouseZone }; var ListR = gr.OrderBy(r => r.SupplyUnitName).ToList(); //最后加一个汇总 Business.Models.SupplyUnitHistoryDrugList s = new Business.Models.SupplyUnitHistoryDrugList(); s.SupplyUnitName = "汇总结果"; s.InventoryNum = decimal.Round(ListR.Sum(r => r.InventoryNum), 2); s.InventorySum = decimal.Round(ListR.Sum(r => r.InventorySum), 2); s.cansaleNum = decimal.Round(ListR.Sum(r => r.cansaleNum), 2); var Summary = from i in gr group i by i.SupplyUnitName into g select new Business.Models.SupplyUnitHistoryDrugList { SupplyUnitName = "合计", InventoryNum = decimal.Round(g.Sum(r => r.InventoryNum), 2), InventorySum = decimal.Round(g.Sum(r => r.InventorySum), 2), cansaleNum = decimal.Round(g.Sum(r => r.cansaleNum), 2), SupplyUnitId = g.FirstOrDefault().SupplyUnitId }; List <int> ListIndex = new List <int>(); foreach (var i in Summary) { var et = ListR.LastOrDefault(r => r.SupplyUnitId == i.SupplyUnitId); int index = ListR.LastIndexOf(et); ListR.Insert(index + 1, i); ListIndex.Add(index + 1); } ListR.Insert(ListR.Count, s); this.dataGridView1.DataSource = ListR; }