示例#1
0
        private void Btn_chart_Click(object sender, EventArgs e)
        {
            List <MQCDataItems> listMQC     = new List <MQCDataItems>();
            LoadDataMQC         loadDataMQC = new LoadDataMQC();

            listMQC = loadDataMQC.listMQCDataItems(DateTime.Now.Date, DateTime.Now.Date.AddDays(1), mQCItem1.product, mQCItem1.PO, mQCItem1.process);
            List <chartdatabyDate> chartdata       = new List <chartdatabyDate>();
            List <chartdatabyDate> chartdataDefect = new List <chartdatabyDate>();

            foreach (var item in listMQC)
            {
                if (item.item == "OUTPUT")
                {
                    chartdata.Add(new chartdatabyDate {
                        date = item.inspectdate, time = item.inspecttime, value = item.data
                    });
                }
                else if (item.remark == "NG")
                {
                    chartdataDefect.Add(new chartdatabyDate {
                        date = item.inspectdate, time = item.inspecttime, value = item.data
                    });
                }
            }
            if (chartdata != null)
            {
                MQCChart mQCChart = new MQCChart(mQCItem1, chartdata, chartdataDefect);
                mQCChart.ShowDialog();
            }
        }
        void bg_DoWork(object sender, DoWorkEventArgs e)
        {
            var worker = sender as BackgroundWorker;
            List <MQCDataItems> listMQC     = new List <MQCDataItems>();
            LoadDataMQC         loadDataMQC = new LoadDataMQC();

            listMQC          = loadDataMQC.listMQCDataItems(dateTimeFrom, dateTimeTo, MQC.product, MQC.PO, MQC.process);
            chartdatabyDates = new List <chartdatabyDate>();
            chartdatadefect  = new List <chartdatabyDate>();
            foreach (var item in listMQC)
            {
                if (item.item == "OUTPUT")
                {
                    chartdatabyDates.Add(new chartdatabyDate {
                        date = item.inspectdate, time = item.inspecttime, value = item.data
                    });
                }
                else if (item.remark == "NG")
                {
                    chartdatadefect.Add(new chartdatabyDate {
                        date = item.inspectdate, time = item.inspecttime, value = item.data
                    });
                }
            }
            LoadDataERPMQCToShow();



            System.Threading.Thread.Sleep(100);
        }
示例#3
0
        private void LoadDataERPMQCToShow()
        {
            //Load data from m_ERPMQC
            LoadDataMQC dataMQC = new LoadDataMQC();

            MQC = dataMQC.GetQCCItemOK(dateTimeFrom, dateTimeTo, MQC.product, MQC.PO, MQC.department, MQC.process);
        }
示例#4
0
        private void LoadDataERPMQCToShow()
        {
            //Load data from m_ERPMQC

            LoadDataMQC dataMQC = new LoadDataMQC();

            dateTimeFrom = DateTime.Now.Date;
            dateTimeTo   = DateTime.Now.Date.AddDays(1);
            mQCItem      = dataMQC.GetQCCItemOK(dateTimeFrom, dateTimeTo, product, mQCItem.PO, dept, process);
        }
示例#5
0
        public MQCItemSummary GetMQCItemSummary(DateTime from, DateTime to, string site, string process)
        {
            MQCItemSummary itemSummary = new MQCItemSummary();

            try
            {
                LoadDataMQC         dataMQC      = new LoadDataMQC();
                List <MQCDataItems> mQCDataItems = dataMQC.listMQCDataItemsbySite(from, to, site, process);
                //Nhom theo san pham
                var ListItemsData = mQCDataItems
                                    .GroupBy(u => u.item)
                                    .Select(grp => grp.ToList())
                                    .ToList();

                var ListItemsTime = mQCDataItems
                                    .GroupBy(u => u.inspecttime)
                                    .ToList();



                itemSummary.product     = "";
                itemSummary.defectItems = new List <DefectItem>();

                //Khi thay doi ngay can phai chinh lai thoi gian
                itemSummary.Time_from = mQCDataItems.Min(d => d.inspecttime).ToString();
                itemSummary.Time_To   = mQCDataItems.Max(d => d.inspecttime).ToString();

                foreach (var itemData in ListItemsData)
                {
                    if (itemData[0].remark == "OP")
                    {
                        itemSummary.OutputQty = itemData.Select(d => d.data).Sum();
                    }
                    else if (itemData[0].remark == "NG")
                    {
                        DefectItem item = new DefectItem();
                        item.DefectCode = itemData[0].item;
                        item.Quantity   = itemData.Select(d => d.data).Sum();
                        LoadDefectMapping defectMapping  = new LoadDefectMapping();
                        NGItemsMapping    nGItemsMapping = defectMapping.GetNGMapping(site, process, item.DefectCode);
                        item.DefectSFT     = nGItemsMapping.NGCode_SFT;
                        item.DefectSFTName = nGItemsMapping.NGCodeName_SFT;
                        itemSummary.defectItems.Add(item);
                        itemSummary.NGQty += item.Quantity;
                    }
                }
                itemSummary.QuantityTotal = itemSummary.OutputQty + itemSummary.NGQty;
                itemSummary.DefectRate    = (itemSummary.QuantityTotal != 0) ? (itemSummary.NGQty / itemSummary.QuantityTotal) : 0;
            }
            catch (Exception ex)
            {
                Log.Logfile.Output(Log.StatusLog.Error, "GetMQCItemSummaries(DateTime from, DateTime to, string site, string process)", ex.Message);
            }
            return(itemSummary);
        }
        private void LoadDataERPMQCToShow()
        {
            //Load data from m_ERPMQC

            LoadDataMQC dataMQC = new LoadDataMQC();

            //    DataTable dataLot = new DataTable();

            mQCItem = dataMQC.GetQCCItemLineLot(dateTimeFrom, dateTimeTo, Line, Model, Lot, process);
            //    }
        }
        private void LoadDataERPMQCToShow()
        {
            //Load data from m_ERPMQC

            LoadDataMQC dataMQC = new LoadDataMQC();
            DataTable   dataLot = new DataTable();

            dataLot = dataMQC.GetMQCDataFromLine(mQCItem.line);
            if (dataLot != null && dataLot.Rows.Count == 1)
            {
                mQCItem = dataMQC.GetQCCItemOK(dateTimeFrom, dateTimeTo, dataLot.Rows[0][1].ToString(), dataLot.Rows[0][0].ToString(), dept, process);
            }
        }
示例#8
0
        private void LoadDataERPMQCToShow()
        {
            //Load data from m_ERPMQC
            LoadDataMQC dataMQC = new LoadDataMQC();

            dept        = "B01";
            process     = "MQC";
            ListMQCshow = dataMQC.listMQCItemsOfDept(dateTimeFrom, dateTimeTo, dept, process);
            int topCount = CountColumn * CountRow;

            ListMQCTake = ListMQCshow.Take(topCount).ToList();
            layoutMain.Controls.Clear();

            if (ListMQCTake.Count <= topCount)
            {
                int countList = 0;
                for (int i = 0; i < CountRow; i++)
                {
                    for (int j = 0; j < CountColumn; j++)
                    {
                        if (countList < ListMQCTake.Count)
                        {
                            //   line.Dispose();
                            if (this.WindowState == FormWindowState.Normal)
                            {
                                line = new LineUI(ListMQCTake[countList], cb_Department.Text, 20);
                            }
                            else if (this.WindowState == FormWindowState.Maximized)
                            {
                                line = new LineUI(ListMQCTake[countList], cb_Department.Text, 25);
                            }
                            line.Name = ListMQCTake[countList].product;

                            line.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                                                                                 | System.Windows.Forms.AnchorStyles.Left)
                                                                                | System.Windows.Forms.AnchorStyles.Right)));

                            layoutMain.Controls.Add(line, j, i);
                            countList++;
                        }
                    }
                }
            }


            lb_Clock.Text = DateTime.Now.ToString("dd-MM-yyyy HH:mm:ss");
        }
        //private void ScaleFont(Label lab)
        //{
        //    SizeF extent = TextRenderer.MeasureText(lab.Text, lab.Font);

        //    float hRatio = lab.Height / extent.Height;
        //    float wRatio = lab.Width / extent.Width;
        //    float ratio = (hRatio < wRatio) ? hRatio : wRatio;

        //    float newSize = lab.Font.Size * ratio;

        //    lab.Font = new Font(lab.Font.FontFamily, newSize, lab.Font.Style);
        //}
        private void LoadDataERPMQCToShow()
        {
            //Load data from m_ERPMQC
            LoadDataMQC dataMQC = new LoadDataMQC();

            dept        = "B01";
            process     = "MQC";
            ListMQCshow = dataMQC.listMQCItemsOfDept(dateTimeFrom, dateTimeTo, dept, process);
            var listshowline = ListMQCshow
                               .OrderBy(u => u.line)
                               .GroupBy(u => u.line)
                               .Select(grp => grp.ToList())
                               .ToList();
            List <MQCItem1> ListShowbyLine = new List <MQCItem1>();

            foreach (var LineData in listshowline)
            {
                MQCItem1 mQC     = new MQCItem1();
                DateTime maxDate = LineData.Select(d => d.DateRun).Max();
                mQC = LineData.Where(d => d.DateRun == maxDate).ToList()[0];

                ListShowbyLine.Add(mQC);
            }

            int topCount = CountColumn * CountRow;

            //ListMQCTake = ListMQCshow.Take(topCount).ToList();
            layoutMain.Controls.Clear();

            if (ListShowbyLine.Count <= topCount)
            {
                int countList = 0;
                for (int i = 0; i < CountRow; i++)
                {
                    for (int j = 0; j < CountColumn; j++)
                    {
                        if (countList < ListShowbyLine.Count)
                        {
                            //   line.Dispose();
                            if (this.WindowState == FormWindowState.Normal)
                            {
                                line = new LineUI(ListShowbyLine[countList], cb_Department.Text, 20);
                            }
                            else if (this.WindowState == FormWindowState.Maximized)
                            {
                                line = new LineUI(ListShowbyLine[countList], cb_Department.Text, 25);
                            }
                            line.Name = ListShowbyLine[countList].line;

                            line.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                                                                                 | System.Windows.Forms.AnchorStyles.Left)
                                                                                | System.Windows.Forms.AnchorStyles.Right)));

                            layoutMain.Controls.Add(line, j, i);
                            countList++;
                        }
                    }
                }
            }


            lb_Clock.Text = DateTime.Now.ToString("dd-MM-yyyy HH:mm:ss");
        }
        public List <MQCItemSummary> GetMQCItemSummariesFromTo(DateTime from, DateTime to, string site, string process)
        {
            List <MQCItemSummary> qCItemSummaries = new List <MQCItemSummary>();

            try
            {
                LoadDataMQC         dataMQC      = new LoadDataMQC();
                List <MQCDataItems> mQCDataItems = dataMQC.listMQCDataItemsbySite(from, to, site, process);
                //Nhom theo san pham
                var ListMQCbyProduct = mQCDataItems
                                       .OrderBy(d => d.line)
                                       .GroupBy(u => u.lot)
                                       .Select(grp => grp.ToList())
                                       .ToList();
                foreach (var qCDataItems in ListMQCbyProduct)
                {
                    MQCItemSummary itemSummary = new MQCItemSummary();
                    itemSummary.product     = qCDataItems[0].model;
                    itemSummary.defectItems = new List <DefectItem>();
                    itemSummary.ReworkItems = new List <DefectItem>();
                    var ListItemsData = qCDataItems
                                        .GroupBy(u => u.item)
                                        .Select(grp => grp.ToList())
                                        .ToList();


                    itemSummary.Time_from = dataMQC.GetMinTimeProductionOfProduct(itemSummary.product, from, to);
                    itemSummary.Time_To   = dataMQC.GetMaxTimeProductionOfProduct(itemSummary.product, from, to);
                    //Khi thay doi ngay can phai chinh lai thoi gian

                    foreach (var itemData in ListItemsData)
                    {
                        itemSummary.product = itemData[0].model;
                        itemSummary.Line    = itemData[0].line;
                        itemSummary.Lot     = itemData[0].lot;

                        if (itemData[0].remark == "OP")
                        {
                            itemSummary.OutputQty = itemData.Select(d => d.data).Sum();
                        }
                        else if (itemData[0].remark == "NG")
                        {
                            DefectItem item = new DefectItem();
                            item.DefectCode = itemData[0].item;
                            item.Quantity   = itemData.Select(d => d.data).Sum();
                            LoadDefectMapping defectMapping  = new LoadDefectMapping();
                            NGItemsMapping    nGItemsMapping = defectMapping.GetNGMapping(site, process, item.DefectCode);
                            item.DefectSFT     = nGItemsMapping.NGCode_SFT;
                            item.DefectSFTName = nGItemsMapping.NGCodeName_SFT;
                            itemSummary.defectItems.Add(item);
                            itemSummary.NGQty += item.Quantity;
                        }
                        else if (itemData[0].remark == "RW")
                        {
                            DefectItem item = new DefectItem();
                            item.DefectCode = itemData[0].item;
                            item.Quantity   = itemData.Select(d => d.data).Sum();
                            LoadDefectMapping defectMapping  = new LoadDefectMapping();
                            NGItemsMapping    nGItemsMapping = defectMapping.GetNGMapping(site, process, item.DefectCode.Replace("RW", "NG"));
                            item.DefectSFT     = nGItemsMapping.NGCode_SFT;
                            item.DefectSFTName = nGItemsMapping.NGCodeName_SFT;
                            itemSummary.ReworkItems.Add(item);
                            itemSummary.ReworkQty += item.Quantity;
                        }
                    }

                    itemSummary.QuantityTotal = itemSummary.OutputQty + itemSummary.NGQty /*+ itemSummary.ReworkQty*/;
                    itemSummary.DefectRate    = (itemSummary.QuantityTotal != 0) ? (itemSummary.NGQty / itemSummary.QuantityTotal) : 0;
                    itemSummary.ReworkRate    = (itemSummary.QuantityTotal != 0) ? (itemSummary.ReworkQty / itemSummary.QuantityTotal) : 0;
                    qCItemSummaries.Add(itemSummary);
                }
            }
            catch (Exception ex)
            {
                SystemLog.Output(SystemLog.MSG_TYPE.Err, "GetMQCItemSummaries(DateTime from, DateTime to, string site, string process)", ex.Message);
            }
            return(qCItemSummaries);
        }
        public MQCItemSummary GetMQCItemSummarybyLot(DateTime from, TimeSpan time_from, DateTime to, TimeSpan time_to, string site, string process, string lot)
        {
            MQCItemSummary itemSummary = new MQCItemSummary();

            try
            {
                LoadDataMQC         dataMQC      = new LoadDataMQC();
                List <MQCDataItems> mQCDataItems = dataMQC.listMQCDataItemsbylot(from, time_from, to, time_to, site, process, lot);
                //Nhom theo san pham
                var ListItemsData = mQCDataItems
                                    .GroupBy(u => u.remark)
                                    .Select(grp => grp.ToList())
                                    .ToList();

                var ListItemsTime = mQCDataItems
                                    .GroupBy(u => u.inspecttime)
                                    .ToList();

                itemSummary.defectItems = new List <DefectItem>();

                //Khi thay doi ngay can phai chinh lai thoi gian
                itemSummary.Time_from = (from + time_from).ToString("dd-MM-yyyy HH:mm:ss");
                itemSummary.Time_To   = (to + time_to).ToString("dd-MM-yyyy HH:mm:ss");

                foreach (var itemData in ListItemsData)
                {
                    itemSummary.product = itemData[0].model;
                    itemSummary.Line    = itemData[0].line;
                    if (itemData[0].remark == "OP")
                    {
                        itemSummary.OutputQty = itemData.Select(d => d.data).Sum();
                    }
                    else if (itemData[0].remark == "NG")
                    {
                        DefectItem item = new DefectItem();
                        item.DefectCode = itemData[0].item;
                        item.Quantity   = itemData.Select(d => d.data).Sum();
                        LoadDefectMapping defectMapping  = new LoadDefectMapping();
                        NGItemsMapping    nGItemsMapping = defectMapping.GetNGMapping(site, process, item.DefectCode);
                        item.DefectSFT     = nGItemsMapping.NGCode_SFT;
                        item.DefectSFTName = nGItemsMapping.NGCodeName_SFT;
                        itemSummary.defectItems.Add(item);
                        itemSummary.NGQty += item.Quantity;
                    }
                    else if (itemData[0].remark == "RW")
                    {
                        DefectItem item = new DefectItem();
                        item.DefectCode = itemData[0].item;
                        item.Quantity   = itemData.Select(d => d.data).Sum();

                        itemSummary.ReworkQty += item.Quantity;
                    }
                }
                itemSummary.QuantityTotal = itemSummary.OutputQty + itemSummary.NGQty + itemSummary.ReworkQty;
                itemSummary.DefectRate    = (itemSummary.QuantityTotal != 0) ? (itemSummary.NGQty / itemSummary.QuantityTotal) : 0;
                itemSummary.ReworkRate    = (itemSummary.QuantityTotal != 0) ? (itemSummary.ReworkQty / itemSummary.QuantityTotal) : 0;
            }
            catch (Exception ex)
            {
                SystemLog.Output(SystemLog.MSG_TYPE.Err, "GetMQCItemSummaries(DateTime from, DateTime to, string site, string process)", ex.Message);
            }
            return(itemSummary);
        }
        public List <MQCItemSummary> GetMQCSummarybyYear(DateTime from, DateTime to, string site, string process)
        {
            //    DateTime from = new DateTime(); DateTime to = new DateTime();
            //    DateTimeControl.ReturnDateTimePeriodProduction(period, ref from, ref to);
            string date = from.ToString("yyyy-MM-dd");
            string time = from.ToString("HH:mm:ss");
            List <MQCItemSummary> qCItemSummaries = new List <MQCItemSummary>();

            try
            {
                LoadDataMQC         dataMQC      = new LoadDataMQC();
                List <MQCDataItems> mQCDataItems = dataMQC.listMQCDataItemsbySite(from, to, site, process);
                //Nhom theo san pham
                var ListMQCbyProduct = mQCDataItems
                                       .OrderBy(d => d.inspectdate)
                                       .GroupBy(u => u.inspectdate)
                                       .Select(grp => grp.ToList())
                                       .ToList();
                foreach (var qCDataItems in ListMQCbyProduct)
                {
                    MQCItemSummary itemSummary = new MQCItemSummary();
                    //DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo;
                    //Calendar cal = dfi.Calendar;
                    //int WeekNo = cal.GetWeekOfYear(qCDataItems[0].inspectdate, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
                    itemSummary.Time_from   = qCDataItems[0].inspectdate.ToString("yyyy");
                    itemSummary.defectItems = new List <DefectItem>();
                    var ListItemsData = qCDataItems
                                        .GroupBy(u => u.item)
                                        .Select(grp => grp.ToList())
                                        .ToList();


                    //Khi thay doi ngay can phai chinh lai thoi gian

                    foreach (var itemData in ListItemsData)
                    {
                        itemSummary.product = itemData[0].model;
                        itemSummary.Line    = itemData[0].line;
                        itemSummary.Lot     = itemData[0].lot;

                        if (itemData[0].remark == "OP")
                        {
                            itemSummary.OutputQty = itemData.Select(d => d.data).Sum();
                        }
                        else if (itemData[0].remark == "NG")
                        {
                            DefectItem item = new DefectItem();
                            item.DefectCode = itemData[0].item;
                            item.Quantity   = itemData.Select(d => d.data).Sum();
                            LoadDefectMapping defectMapping  = new LoadDefectMapping();
                            NGItemsMapping    nGItemsMapping = defectMapping.GetNGMapping(site, process, item.DefectCode);
                            if (nGItemsMapping != null)
                            {
                                item.DefectSFT     = nGItemsMapping.NGCode_SFT;
                                item.DefectSFTName = nGItemsMapping.NGCodeName_SFT;
                                itemSummary.defectItems.Add(item);
                                itemSummary.NGQty += item.Quantity;
                            }
                        }
                        else if (itemData[0].remark == "RW")
                        {
                            DefectItem item = new DefectItem();
                            item.DefectCode = itemData[0].item;
                            item.Quantity   = itemData.Select(d => d.data).Sum();

                            itemSummary.ReworkQty += item.Quantity;
                        }
                    }
                    itemSummary.QuantityTotal = itemSummary.OutputQty + itemSummary.NGQty /*+ itemSummary.ReworkQty*/;
                    itemSummary.OutputRate    = (itemSummary.QuantityTotal != 0) ? (itemSummary.OutputQty / itemSummary.QuantityTotal) : 0;
                    itemSummary.DefectRate    = (itemSummary.QuantityTotal != 0) ? (itemSummary.NGQty / itemSummary.QuantityTotal) : 0;
                    itemSummary.ReworkRate    = (itemSummary.QuantityTotal != 0) ? (itemSummary.ReworkQty / itemSummary.QuantityTotal) : 0;
                    qCItemSummaries.Add(itemSummary);
                }
            }
            catch (Exception ex)
            {
                SystemLog.Output(SystemLog.MSG_TYPE.Err, "GetMQCItemSummaries(DateTime from, DateTime to, string site, string process)", ex.Message);
            }
            return(qCItemSummaries);
        }
        private void LoadDataERPMQCToShow()
        {
            //Load data from m_ERPMQC
            LoadDataMQC dataMQC = new LoadDataMQC();

            dept        = "B01";
            process     = "MQC";
            ListMQCshow = dataMQC.listMQCItemsOfLine(dateTimeFrom, dateTimeTo, Line, process);

            var MQCCurrent = ListMQCshow.Where(d => d.DateRun == ListMQCshow.Select(a => a.DateRun).Max()).ToList();
            int topCount   = CountColumn * CountRow;

            //ListMQCTake = ListMQCshow.Take(topCount).ToList();
            layoutMain.Controls.Clear();

            if (ListMQCshow != null)
            {
                int countList = 0;
                for (int i = 0; i < CountRow; i++)
                {
                    for (int j = 0; j < CountColumn; j++)
                    {
                        if (countList < ListMQCshow.Count)
                        {
                            if (ListMQCshow[countList].PO == MQCCurrent[0].PO)
                            {
                                if (this.WindowState == FormWindowState.Normal)
                                {
                                    line = new LineUI(ListMQCshow[countList], cb_Department.Text, 20, "Now");
                                }
                                else if (this.WindowState == FormWindowState.Maximized)
                                {
                                    line = new LineUI(ListMQCshow[countList], cb_Department.Text, 25, "Now");
                                }
                            }
                            else
                            {
                                //   line.Dispose();
                                if (this.WindowState == FormWindowState.Normal)
                                {
                                    line = new LineUI(ListMQCshow[countList], cb_Department.Text, 20);
                                }
                                else if (this.WindowState == FormWindowState.Maximized)
                                {
                                    line = new LineUI(ListMQCshow[countList], cb_Department.Text, 25);
                                }
                            }
                            line.Name = ListMQCshow[countList].line;

                            line.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                                                                                 | System.Windows.Forms.AnchorStyles.Left)
                                                                                | System.Windows.Forms.AnchorStyles.Right)));

                            layoutMain.Controls.Add(line, j, i);
                            countList++;
                        }
                    }
                }
            }


            lb_Clock.Text = DateTime.Now.ToString("dd-MM-yyyy HH:mm:ss");
        }