예제 #1
0
        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);
        }
예제 #2
0
        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;
        }