コード例 #1
0
 private void WebApp_Load(object sender, EventArgs e)
 {
     LoadingInfo.InfoText = "Waiting for response from http://loknitting.olimpias.it/Sinotico.aspx";
     LoadingInfo.ShowLoading();
     webBrowser1.ScriptErrorsSuppressed = true;
     webBrowser1.Navigate("http://loknitting.olimpias.it/Sinotico.aspx");
 }
コード例 #2
0
ファイル: RepCharts.cs プロジェクト: AerreRomania/Sinotico
 private void button1_Click(object sender, EventArgs e)
 {
     LoadingInfo.InfoText = "Loading report...";
     LoadingInfo.ShowLoading();
     LoadOeeChart();
     LoadOeeSecondaryChart();
     LoadingInfo.CloseLoading();
 }
コード例 #3
0
ファイル: RepArticles.cs プロジェクト: AerreRomania/Sinotico
        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                LoadingInfo.InfoText = "Loading report...";
                LoadingInfo.ShowLoading();

                LoadData();

                LoadingInfo.CloseLoading();
            }
            catch
            {
                LoadingInfo.CloseLoading();
            }
        }
コード例 #4
0
ファイル: RepArticles.cs プロジェクト: AerreRomania/Sinotico
        protected override void OnLoad(EventArgs e)
        {
            dgvReport.DoubleBufferedDataGridView(true);

            dgvReport.ShowCellToolTips = true;

            _fileName = string.Empty;

            try
            {
                LoadingInfo.InfoText = "Loading report...";
                LoadingInfo.ShowLoading();

                LoadData();

                LoadingInfo.CloseLoading();
            }
            catch
            {
                LoadingInfo.CloseLoading();
            }

            base.OnLoad(e);
        }
コード例 #5
0
        private void LoadReport()
        {
            //try
            //{
            LoadingInfo.InfoText = "Loading report...";
            LoadingInfo.ShowLoading();

            CreateDataTable();

            dgvReport.DataSource = null;

            _dt1 = new DataTable();
            LoadProcedure("NIGHT", _dt1);
            _dt2 = new DataTable();
            LoadProcedure("MORNING", _dt2);
            _dt3 = new DataTable();
            LoadProcedure("AFTERNOON", _dt3);

            _list_of_dates = new List <DateTime>();

            for (var dt = GetDateFrom; dt <= GetDateTo; dt = dt.AddDays(+1))
            {
                _list_of_dates.Add(dt);
            }

            _table_report.Rows.Add("TOTALI PERIODO");

            foreach (var date in _list_of_dates)
            {
                var newRow = _table_report.NewRow();
                newRow[0] = date.ToString("yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);

                foreach (DataRow row in _dt1.Rows)
                {
                    var rowDate = Convert.ToDateTime(row[0]);

                    if (rowDate.ToString("yyyy-MM-dd") == date.ToString("yyyy-MM-dd"))
                    {
                        newRow[1] = row[2].ToString();
                        newRow[2] = row[3].ToString();
                        newRow[3] = row[4].ToString();
                    }
                }

                foreach (DataRow row in _dt2.Rows)
                {
                    var rowDate = Convert.ToDateTime(row[0]);

                    if (rowDate.ToString("yyyy-MM-dd") == date.ToString("yyyy-MM-dd"))
                    {
                        newRow[4] = row[2].ToString();
                        newRow[5] = row[3].ToString();
                        newRow[6] = row[4].ToString();
                    }
                }

                foreach (DataRow row in _dt3.Rows)
                {
                    var rowDate = Convert.ToDateTime(row[0]);

                    if (rowDate.ToString("yyyy-MM-dd") == date.ToString("yyyy-MM-dd"))
                    {
                        newRow[7] = row[2].ToString();
                        newRow[8] = row[3].ToString();
                        newRow[9] = row[4].ToString();
                    }
                }

                _table_report.Rows.Add(newRow);
            }

            dgvReport.DataSource = _table_report;

            foreach (DataGridViewColumn column in dgvReport.Columns)
            {
                if (column.Index == 2 || column.Index == 5 || column.Index == 8 || column.Index == 11)     // 1, 4, 7, 10
                {
                    column.HeaderText = "macch. che lav.";
                }
                else if (column.Index == 1 || column.Index == 4 || column.Index == 7 || column.Index == 10)     //2, 5, 8, 11
                {
                    column.HeaderText = "Comp. Macch. Ferme";
                }
                else if (column.Index == 3 || column.Index == 6 || column.Index == 9 || column.Index == 12)
                {
                    column.HeaderText = "nr macch.ferme";
                }
            }

            CalculateTotalsVertical();
            CalculateTotalsHorizontal();

            if (cboLines.Text != string.Empty)
            {
                lblSelFilter.Text = cboLines.Text;
            }
            else if (cboBlocks.Text != string.Empty)
            {
                lblSelFilter.Text = cboBlocks.Text;
            }
            else
            {
                lblSelFilter.Text = "All";
            }
            //    }
            //catch
            //    {
            //    LoadingInfo.CloseLoading();
            //    MessageBox.Show("Server error or timeout expiration has occured.");
            //    }
            //finally
            //    {
            //    MainWnd._sql_con.Close();
            //    }
        }
コード例 #6
0
        private void ProcessData()
        {
            if (Get_Date_From() > Get_Date_To())
            {
                MessageBox.Show("Invalid date selection!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            LoadingInfo.InfoText = "Loading report...";
            LoadingInfo.ShowLoading();
            var dsDays = new DataSet();

            LoadProcedure(dsDays);
            _components = new List <Component>();
            if (dsDays.Tables[0].Rows.Count <= 0)
            {
                LoadingInfo.CloseLoading();
                return;
            }
            //creating list of components with days and active machines fields
            foreach (DataRow row in dsDays.Tables[0].Rows)
            {
                DateTime.TryParse(row[0].ToString(), out var currDay);
                int.TryParse(row[1].ToString(), out var actMachines);
                var newComp = new Component();
                newComp.CurrentDay     = currDay;
                newComp.ActiveMachines = actMachines;
                _components.Add(newComp);
            }
            //inserting efficiency for finezzes
            foreach (DataRow row in dsDays.Tables[1].Rows)
            {
                DateTime.TryParse(row[0].ToString(), out var currDay);
                int.TryParse(row[1].ToString(), out var fin);
                var eff       = row[2].ToString();
                var component = (from c in _components
                                 where c.CurrentDay == currDay
                                 select c).SingleOrDefault();
                if (fin == 7)
                {
                    component.FinSeven = eff + "%";
                }
                else if (fin == 14)
                {
                    component.FinFourtheen = eff + "%";
                }
                else if (fin == 3)
                {
                    component.FinThree = eff + "%";
                }
            }
            //inserting efficiency per squadra'
            DateTime.TryParse(dsDays.Tables[2].Rows[0][0].ToString(), out var startDay);
            var effSq1 = 0.0;
            var effSq2 = 0.0;
            var effSq3 = 0.0;
            var qtySq1 = 0;
            var qtySq2 = 0;
            var qtySq3 = 0;

            foreach (DataRow row in dsDays.Tables[2].Rows)
            {
                DateTime.TryParse(row[0].ToString(), out var currDay);
                int.TryParse(row[1].ToString(), out var mac);
                double.TryParse(row[2].ToString(), out var eff);
                int.TryParse(row[3].ToString(), out var piecesProd);
                if (startDay != currDay)
                {
                    var component = (from c in _components
                                     where c.CurrentDay == startDay
                                     select c).SingleOrDefault();
                    if (effSq1 == 0.0)
                    {
                        component.EffOne = "0.0%";
                    }
                    else
                    {
                        component.EffOne = Math.Round(effSq1 / 70, 1).ToString() + "%";
                    }
                    if (effSq2 == 0.0)
                    {
                        component.EffTwo = "0.0%";
                    }
                    else
                    {
                        component.EffTwo = Math.Round(effSq2 / 70, 1).ToString() + "%";
                    }
                    if (effSq3 == 0.0)
                    {
                        component.EffThree = "0.0%";
                    }
                    else
                    {
                        component.EffThree = Math.Round(effSq3 / 70, 1).ToString() + "%";
                    }
                    component.PiecesProducedSqOne   = qtySq1;
                    component.PiecesProducedSqTwo   = qtySq2;
                    component.PiecesProducedSqThree = qtySq3;
                    effSq1 = 0.0;
                    effSq2 = 0.0;
                    effSq3 = 0.0;
                    qtySq1 = 0;
                    qtySq2 = 0;
                    qtySq3 = 0;
                }
                if (mac >= 1 && mac <= 70)
                {
                    effSq1 += eff;
                    qtySq1 += piecesProd;
                }
                else if (mac >= 71 && mac <= 140)
                {
                    effSq2 += eff;
                    qtySq2 += piecesProd;
                }
                else if (mac >= 141 && mac <= 210)
                {
                    effSq3 += eff;
                    qtySq3 += piecesProd;
                }
                startDay = currDay;
            }
            var tmpComponent = (from c in _components
                                where c.CurrentDay == startDay
                                select c).SingleOrDefault();

            tmpComponent.EffOne                = Math.Round(effSq1 / 70, 1).ToString() + "%";
            tmpComponent.EffTwo                = Math.Round(effSq2 / 70, 1).ToString() + "%";
            tmpComponent.EffThree              = Math.Round(effSq3 / 70, 1).ToString() + "%";
            tmpComponent.PiecesProducedSqOne   = qtySq1;
            tmpComponent.PiecesProducedSqTwo   = qtySq2;
            tmpComponent.PiecesProducedSqThree = qtySq3;


            //calculating scarti/rammendi pieces produced and efficiency
            //and inserting into list
            if (dsDays.Tables[3].Rows.Count <= 0)
            {
                LoadingInfo.CloseLoading();
                return;
            }
            DateTime.TryParse(dsDays.Tables[3].Rows[0][0].ToString(), out var date);
            var operator_code = dsDays.Tables[3].Rows[0][1].ToString();

            int.TryParse(dsDays.Tables[3].Rows[0][2].ToString(), out var machine);
            var order   = dsDays.Tables[3].Rows[0][3].ToString();
            var article = dsDays.Tables[3].Rows[0][4].ToString();

            int.TryParse(dsDays.Tables[3].Rows[0][5].ToString(), out var tmpScarti);
            int.TryParse(dsDays.Tables[3].Rows[0][6].ToString(), out var tmpRammendi);
            var shift           = dsDays.Tables[3].Rows[0][7].ToString();
            var sqOneScarti     = 0;
            var sqTwoScarti     = 0;
            var sqThreeScarti   = 0;
            var sqOneRammendi   = 0;
            var sqTwoRammendi   = 0;
            var sqThreeRammendi = 0;
            var scarti          = 0;
            var ramm            = 0;

            foreach (DataRow row in dsDays.Tables[3].Rows)
            {
                DateTime.TryParse(row[0].ToString(), out var dt);
                var operCode = row[1].ToString();
                int.TryParse(row[2].ToString(), out var mac);
                var ord = row[3].ToString();
                var art = row[4].ToString();
                int.TryParse(row[5].ToString(), out scarti);
                int.TryParse(row[6].ToString(), out ramm);
                var sh = row[7].ToString();
                if (date != dt)
                {
                    sqThreeScarti   += scarti;
                    sqThreeRammendi += ramm;
                    var component = (from c in _components
                                     where c.CurrentDay == date
                                     select c).SingleOrDefault();
                    component.ScartiPiecesOne   = sqOneScarti;
                    component.ScartiPiecesTwo   = sqTwoScarti;
                    component.ScartiPiecesThree = sqThreeScarti;
                    component.ScartiPiecesTotal = sqOneScarti + sqTwoScarti + sqThreeScarti;
                    double.TryParse(sqOneScarti.ToString(), out var sone);
                    double.TryParse(sqTwoScarti.ToString(), out var stwo);
                    double.TryParse(sqThreeScarti.ToString(), out var sthree);
                    double.TryParse(component.PiecesProducedSqOne.ToString(), out var qone);
                    double.TryParse(component.PiecesProducedSqTwo.ToString(), out var qtwo);
                    double.TryParse(component.PiecesProducedSqThree.ToString(), out var qthree);
                    component.ScartiEffOne   = Math.Round((sone / qone) * 100, 1).ToString() + "%";
                    component.ScartiEffTwo   = Math.Round((stwo / qtwo) * 100, 1).ToString() + "%";
                    component.ScartiEffThree = Math.Round((sthree / qthree) * 100, 1).ToString() + "%";

                    component.RammendiPiecesOne   = sqOneRammendi;
                    component.RammendiPiecesTwo   = sqTwoRammendi;
                    component.RammendiPiecesThree = sqThreeRammendi;
                    component.RammendiPiecesTotal = sqOneRammendi + sqTwoRammendi + sqThreeRammendi;
                    double.TryParse(sqOneRammendi.ToString(), out var rone);
                    double.TryParse(sqTwoRammendi.ToString(), out var rtwo);
                    double.TryParse(sqThreeRammendi.ToString(), out var rthree);
                    component.RammendiEffOne   = Math.Round((rone / qone) * 100, 1).ToString() + "%";
                    component.RammendiEffTwo   = Math.Round((rtwo / qtwo) * 100, 1).ToString() + "%";
                    component.RammendiEffThree = Math.Round((rthree / qthree) * 100, 1).ToString() + "%";

                    sqOneScarti     = 0;
                    sqTwoScarti     = 0;
                    sqThreeScarti   = 0;
                    sqOneRammendi   = 0;
                    sqTwoRammendi   = 0;
                    sqThreeRammendi = 0;
                    //date = dt;
                    //operator_code = operCode;
                    //order = ord;
                    //article = art;
                    //shift = sh;
                }
                if (order != ord || operator_code != operCode || article != art || machine != mac || shift != sh)
                {
                    if (machine >= 1 && machine <= 70)
                    {
                        sqOneScarti   += tmpScarti;
                        sqOneRammendi += tmpRammendi;
                    }
                    else if (machine >= 71 && machine <= 140)
                    {
                        sqTwoScarti   += tmpScarti;
                        sqTwoRammendi += tmpRammendi;
                    }
                    else if (machine >= 141 && machine <= 210)
                    {
                        sqThreeScarti   += tmpScarti;
                        sqThreeRammendi += tmpRammendi;
                    }
                }
                machine       = mac;
                date          = dt;
                operator_code = operCode;
                order         = ord;
                article       = art;
                tmpRammendi   = ramm;
                tmpScarti     = scarti;
                shift         = sh;
            }

            //last selected day
            var comp = (from cp in _components
                        where cp.CurrentDay == date
                        select cp).SingleOrDefault();

            sqThreeScarti         += tmpScarti;
            sqThreeRammendi       += tmpRammendi;
            comp.ScartiPiecesOne   = sqOneScarti;
            comp.ScartiPiecesTwo   = sqTwoScarti;
            comp.ScartiPiecesThree = sqThreeScarti;
            comp.ScartiPiecesTotal = sqOneScarti + sqTwoScarti + sqThreeScarti;
            double.TryParse(sqOneScarti.ToString(), out var ssone);
            double.TryParse(sqTwoScarti.ToString(), out var sstwo);
            double.TryParse(sqThreeScarti.ToString(), out var ssthree);
            double.TryParse(comp.PiecesProducedSqOne.ToString(), out var qqone);
            double.TryParse(comp.PiecesProducedSqTwo.ToString(), out var qqtwo);
            double.TryParse(comp.PiecesProducedSqThree.ToString(), out var qqthree);
            comp.ScartiEffOne   = Math.Round((ssone / qqone) * 100, 1).ToString() + "%";
            comp.ScartiEffTwo   = Math.Round((sstwo / qqtwo) * 100, 1).ToString() + "%";
            comp.ScartiEffThree = Math.Round((ssthree / qqthree) * 100, 1).ToString() + "%";

            comp.RammendiPiecesOne   = sqOneRammendi;
            comp.RammendiPiecesTwo   = sqTwoRammendi;
            comp.RammendiPiecesThree = sqThreeRammendi;
            comp.RammendiPiecesTotal = sqOneRammendi + sqTwoRammendi + sqThreeRammendi;
            double.TryParse(sqOneRammendi.ToString(), out var rrone);
            double.TryParse(sqTwoRammendi.ToString(), out var rrtwo);
            double.TryParse(sqThreeRammendi.ToString(), out var rrthree);
            comp.RammendiEffOne   = Math.Round((rrone / qqone) * 100, 1).ToString() + "%";
            comp.RammendiEffTwo   = Math.Round((rrtwo / qqtwo) * 100, 1).ToString() + "%";
            comp.RammendiEffThree = Math.Round((rrthree / qqthree) * 100, 1).ToString() + "%";
            //last selected day

            foreach (DataRow row in dsDays.Tables[4].Rows)
            {
                DateTime.TryParse(row[0].ToString(), out var dt);
                int.TryParse(row[1].ToString(), out var fin);
                int.TryParse(row[2].ToString(), out var machines);
                var component = (from c in _components
                                 where c.CurrentDay == dt
                                 select c).SingleOrDefault();
                if (fin == 3)
                {
                    component.MacOnFin3 = machines;
                }
                else if (fin == 7)
                {
                    component.MacOnFin7 = machines;
                }
                else if (fin == 14)
                {
                    component.MacOnFin14 = machines;
                }
            }

            var finalTable = new DataTable();

            CreateTableView(finalTable);
            var totalRow = finalTable.NewRow();

            totalRow[0] = "TOTALI";
            finalTable.Rows.Add(totalRow);
            var mediaRow = finalTable.NewRow();

            mediaRow[0] = "MEDIA";
            finalTable.Rows.Add(mediaRow);
            foreach (var record in _components)
            {
                //skip holidays
                if (string.IsNullOrEmpty(record.FinFourtheen) && string.IsNullOrEmpty(record.FinSeven) &&
                    string.IsNullOrEmpty(record.FinThree))
                {
                    continue;
                }

                var counter = 0;
                var newRow  = finalTable.NewRow();
                newRow[0] = record.CurrentDay.Day;
                newRow[1] = record.FinThree;
                newRow[2] = string.Empty; //fin5
                newRow[3] = record.FinSeven;
                newRow[4] = record.FinFourtheen;
                newRow[5] = record.ActiveMachines;
                newRow[6] = string.Empty; //euro
                newRow[7] = string.Empty; //next to euro

                if (!string.IsNullOrEmpty(record.EffOne))
                {
                    counter++;
                }
                newRow[8] = record.EffOne;
                if (!string.IsNullOrEmpty(record.EffTwo))
                {
                    counter++;
                }
                newRow[9] = record.EffTwo;
                if (!string.IsNullOrEmpty(record.EffThree))
                {
                    counter++;
                }
                newRow[10] = record.EffThree;
                double eff1 = 0.0;
                double eff2 = 0.0;
                double eff3 = 0.0;
                if (record.EffOne.Contains("%"))
                {
                    double.TryParse(record.EffOne.Split('%')[0], out eff1);
                }
                if (record.EffTwo.Contains("%"))
                {
                    double.TryParse(record.EffTwo.Split('%')[0], out eff2);
                }
                if (record.EffThree.Contains("%"))
                {
                    double.TryParse(record.EffThree.Split('%')[0], out eff3);
                }
                var totalEff        = 0.0;
                var totalEffSquadra = eff1 + eff2 + eff3;
                if (totalEffSquadra <= 0.0 || counter <= 0)
                {
                    totalEff = 0.0;
                }
                else
                {
                    totalEff = Math.Round((totalEffSquadra) / counter, 1);
                }
                newRow[11] = /*totalEff == double.NaN ? string.Empty : */ totalEff.ToString() + "%"; //total for eff

                var effLorda = totalEff;
                //newRow[12] = string.Empty; // eff - time for producing scarti

                newRow[13] = record.RammendiPiecesOne;
                newRow[14] = record.RammendiPiecesTwo;
                newRow[15] = record.RammendiPiecesThree;
                newRow[16] = record.RammendiPiecesTotal;
                newRow[17] = string.Empty; //something in middle between scarti teli and scarti % columns

                counter = 0;
                if (!string.IsNullOrEmpty(record.RammendiEffOne))
                {
                    counter++;
                }
                newRow[18] = record.RammendiEffOne;
                if (!string.IsNullOrEmpty(record.RammendiEffTwo))
                {
                    counter++;
                }
                newRow[19] = record.RammendiEffTwo;
                if (!string.IsNullOrEmpty(record.RammendiEffThree))
                {
                    counter++;
                }
                newRow[20] = record.RammendiEffThree;

                if (!string.IsNullOrEmpty(record.RammendiEffOne) && record.RammendiEffOne.Contains('%'))
                {
                    double.TryParse(record.RammendiEffOne.Split('%')[0], out eff1);
                }
                if (!string.IsNullOrEmpty(record.RammendiEffTwo) && record.RammendiEffTwo.Contains('%'))
                {
                    double.TryParse(record.RammendiEffTwo.Split('%')[0], out eff2);
                }
                if (!string.IsNullOrEmpty(record.RammendiEffThree) && record.RammendiEffThree.Contains('%'))
                {
                    double.TryParse(record.RammendiEffThree.Split('%')[0], out eff3);
                }

                var totalSquadraEfficiency = eff1 + eff2 + eff3;
                if (totalSquadraEfficiency <= 0.0 || counter <= 0)
                {
                    totalEff = 0.0;
                }
                else
                {
                    totalEff = Math.Round((totalSquadraEfficiency) / counter, 1);
                }

                newRow[21] = /*totalEff == double.NaN ? string.Empty : */ totalEff.ToString() + "%";

                newRow[22] = record.ScartiPiecesOne;
                newRow[23] = record.ScartiPiecesTwo;
                newRow[24] = record.ScartiPiecesThree;
                newRow[25] = record.ScartiPiecesTotal;

                counter = 0;
                if (!string.IsNullOrEmpty(record.ScartiEffOne))
                {
                    counter++;
                }
                newRow[26] = record.ScartiEffOne;
                if (!string.IsNullOrEmpty(record.ScartiEffTwo))
                {
                    counter++;
                }
                newRow[27] = record.ScartiEffTwo;
                if (!string.IsNullOrEmpty(record.ScartiEffThree))
                {
                    counter++;
                }
                newRow[28] = record.ScartiEffThree;
                if (!string.IsNullOrEmpty(record.ScartiEffOne) && record.ScartiEffOne.Contains('%'))
                {
                    double.TryParse(record.ScartiEffOne.Split('%')[0], out eff1);
                }
                if (!string.IsNullOrEmpty(record.ScartiEffTwo) && record.ScartiEffTwo.Contains('%'))
                {
                    double.TryParse(record.ScartiEffTwo.Split('%')[0], out eff2);
                }
                if (!string.IsNullOrEmpty(record.ScartiEffThree) && record.ScartiEffThree.Contains('%'))
                {
                    double.TryParse(record.ScartiEffThree.Split('%')[0], out eff3);
                }
                var effSquadraTotal = eff1 + eff2 + eff3;
                if (effSquadraTotal <= 0.0 || counter <= 0)
                {
                    totalEff = 0.0;
                }
                else
                {
                    totalEff = Math.Round((effSquadraTotal) / counter, 1);
                }
                newRow[29] = /* totalEff == double.NaN ? string.Empty : */ totalEff.ToString() + "%";

                newRow[12] = (effLorda - totalEff) == double.NaN ? string.Empty : (effLorda - totalEff).ToString() + "%";

                newRow[30] = string.Empty;
                finalTable.Rows.Add(newRow);
            }
            if (dgvReport.DataSource != null)
            {
                dgvReport.DataSource = null;
            }
            dgvReport.DataSource = finalTable;
            CalculateHeaders();
            LoadingInfo.CloseLoading();
        }
コード例 #7
0
        private void CreateTableStructure()
        {
            try
            {
                LoadingInfo.ShowLoading();
                LoadingInfo.InfoText = "Loading data for " + _year + ".\n     Please wait...";

                _dataSet = new DataSet();
                _dataSet.Tables.Clear();
                _dataTable = new DataTable();

                if (dgvReport.DataSource != null)
                {
                    dgvReport.DataSource = null;
                }

                _dataTable.Columns.Add("Somma");
                _dataTable.Columns.Add("splitter_0");

                for (var i = 1; i <= 12; i++)
                {
                    _dataTable.Columns.Add("uno_" + i.ToString());
                    _dataTable.Columns.Add("due_" + i.ToString());
                    _dataTable.Columns.Add("tre_" + i.ToString());
                    _dataTable.Columns.Add("tot_" + i.ToString());
                    _dataTable.Columns.Add("splitter_" + i.ToString());
                }

                for (var i = 1; i <= 31; i++)
                {
                    var newRow = _dataTable.NewRow();
                    newRow[0] = i.ToString();

                    _dataTable.Rows.Add(newRow);
                }

                _dataTable.Columns.Add("uno_t");
                _dataTable.Columns.Add("due_t");
                _dataTable.Columns.Add("tre_t");
                _dataTable.Columns.Add("tot_t");

                var cmdTxt = "";

                if (_mode == 1)
                {
                    cmdTxt = "getarticleschanges";
                }
                else if (_mode == 3)
                {
                    cmdTxt = "getsizechanges";
                }
                else if (_mode == 2)
                {
                    cmdTxt = "getcolorchanges";
                }

                LoadChanges(cmdTxt);

                LoadingInfo.UpdateText("Almost done...");

                for (var r = 0; r <= _tblChanges.Rows.Count - 1; r++)
                {
                    var row = _tblChanges.Rows[r];

                    DateTime.TryParse(row[1].ToString(), out var rDate);
                    var day     = rDate.Day.ToString();
                    var month   = rDate.Month.ToString();
                    var changes = row[2].ToString();

                    int.TryParse(row[0].ToString(), out var sqrTag);    //squadra number
                    var squadra   = GetSquadra(sqrTag);
                    var findField = squadra + "_" + month.ToString();

                    for (var j = 0; j <= _dataTable.Rows.Count - 1; j++)
                    {
                        var jRow = _dataTable.Rows[j];
                        if (jRow[0].ToString() == day)
                        {
                            int.TryParse(jRow[findField].ToString(), out var jChange);

                            jRow[findField] = jChange + Convert.ToInt32(changes);
                        }
                    }
                }

                dgvReport.DataSource = _dataTable;

                dgvReport.Columns[0].Width = 45;
                dgvReport.Columns[0].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                dgvReport.Columns[0].HeaderCell.Style.BackColor = Color.FromArgb(242, 242, 242);
                dgvReport.Columns[0].HeaderCell.Style.ForeColor = Color.Black;
                dgvReport.Columns[0].DefaultCellStyle.BackColor = Color.FromArgb(242, 242, 242);
                dgvReport.Columns[0].HeaderText = "Somma";
                dgvReport.Columns[0].Frozen     = true;
                dgvReport.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

                dgvReport.Columns[1].Width      = 5;
                dgvReport.Columns[1].HeaderText = string.Empty;

                for (var i = 2; i <= dgvReport.Columns.Count - 1; i++)
                {
                    if (i % 5 == 1)
                    {
                        dgvReport.Columns[i].Width      = 5;
                        dgvReport.Columns[i].HeaderText = string.Empty;
                        continue;
                    }
                    dgvReport.Columns[i].HeaderCell.Style.Font = new Font("Microsoft Sans Serif", 8, FontStyle.Regular);
                    dgvReport.Columns[i].Width = 35;

                    dgvReport.Columns[i].DefaultCellStyle.Font      = new Font("Microsoft Sans Serif", 7, FontStyle.Regular);
                    dgvReport.Columns[i].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                }
                for (var i = 2; i <= 63; i += 5)
                {
                    dgvReport.Columns[i - 1].DefaultCellStyle.BackColor = Color.White;
                    dgvReport.Columns[i].DefaultCellStyle.BackColor     = Color.FromArgb(255, 255, 231);
                    dgvReport.Columns[i + 1].DefaultCellStyle.BackColor = Color.FromArgb(236, 245, 231);
                    dgvReport.Columns[i + 2].DefaultCellStyle.BackColor = Color.FromArgb(252, 233, 220);
                    dgvReport.Columns[i + 3].DefaultCellStyle.BackColor = Color.FromArgb(242, 242, 242);

                    dgvReport.Columns[i].HeaderCell.Style.BackColor     = Color.FromArgb(255, 255, 231);
                    dgvReport.Columns[i + 1].HeaderCell.Style.BackColor = Color.FromArgb(236, 245, 231);
                    dgvReport.Columns[i + 2].HeaderCell.Style.BackColor = Color.FromArgb(252, 233, 220);
                    dgvReport.Columns[i + 3].HeaderCell.Style.BackColor = Color.FromArgb(242, 242, 242);
                }

                for (var i = 2; i <= dgvReport.Columns.Count - 1; i++)
                {
                    if (i % 5 == 1)
                    {
                        continue;
                    }
                    dgvReport.Columns[i].HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter;
                    dgvReport.Columns[i].HeaderText = "\n\n" + dgvReport.Columns[i].HeaderText.Split('_')[0] + "\n";
                }

                CalculateTotalHorizontal();
                CalculateTotalVertical();

                foreach (DataGridViewColumn c in dgvReport.Columns)
                {
                    c.SortMode = DataGridViewColumnSortMode.NotSortable;
                }

                if (_mode == 1)
                {
                    lbl_articolo_total.Text = "Total: " + _yearTotal;
                    lbl_colore_total.Text   = string.Empty;
                    lbl_taglia_total.Text   = string.Empty;
                }
                else if (_mode == 2)
                {
                    lbl_articolo_total.Text = string.Empty;
                    lbl_colore_total.Text   = "Total: " + _yearTotal;
                    lbl_taglia_total.Text   = string.Empty;
                }
                else if (_mode == 3)
                {
                    lbl_articolo_total.Text = string.Empty;
                    lbl_colore_total.Text   = string.Empty;
                    lbl_taglia_total.Text   = "Total: " + _yearTotal;
                }

                LoadingInfo.CloseLoading();
            }
            catch (Exception ex)
            {
                LoadingInfo.CloseLoading();
                MessageBox.Show(ex.Message);
            }
        }
コード例 #8
0
        private void ProcessData()
        {
            LoadingInfo.InfoText = "Loading report...";
            LoadingInfo.ShowLoading();

            var dsDays = new DataSet();

            LoadProcedure(dsDays);
            _components = new List <CapiComponent>();

            //inserting date, eff and qty in list
            foreach (DataRow row in dsDays.Tables[0].Rows)
            {
                DateTime.TryParse(row[0].ToString(), out var date);
                var eff = row[1].ToString() + "%";
                int.TryParse(row[2].ToString(), out var qty);
                int.TryParse(row[3].ToString(), out var actives);
                _components.Add(new CapiComponent(date, eff, qty, actives));
            }

            //calculating scarti/rammendi per days
            DateTime.TryParse(dsDays.Tables[1].Rows[0][0].ToString(), out var startDate);
            var startShift = dsDays.Tables[1].Rows[0][1].ToString();

            int.TryParse(dsDays.Tables[1].Rows[0][2].ToString(), out var startOperatorCode);
            int.TryParse(dsDays.Tables[1].Rows[0][3].ToString(), out var startMachine);
            var startOrder   = dsDays.Tables[1].Rows[0][4].ToString();
            var startArticle = dsDays.Tables[1].Rows[0][5].ToString();

            int.TryParse(dsDays.Tables[1].Rows[0][6].ToString(), out var startTrash);
            int.TryParse(dsDays.Tables[1].Rows[0][7].ToString(), out var startRepair);
            var sumTrash  = 0;
            var sumRepair = 0;

            foreach (DataRow row in dsDays.Tables[1].Rows)
            {
                DateTime.TryParse(row[0].ToString(), out var date);
                var shift = row[1].ToString();
                int.TryParse(row[2].ToString(), out var operatorCode);
                int.TryParse(row[3].ToString(), out var machine);
                var order   = row[4].ToString();
                var article = row[5].ToString();
                int.TryParse(row[6].ToString(), out var trash);
                int.TryParse(row[7].ToString(), out var repair);
                if (date != startDate)
                {
                    sumTrash  += startTrash;
                    sumRepair += startRepair;
                    var component = (from c in _components
                                     where c.CurrentDay == startDate
                                     select c).SingleOrDefault();
                    if (component != null)
                    {
                        double.TryParse(sumTrash.ToString(), out var t);
                        double.TryParse(sumRepair.ToString(), out var r);
                        component.PercTrash  = Math.Round((t / component.Pieces) * 100, 1).ToString() + "%";
                        component.PercRepair = Math.Round((r / component.Pieces) * 100, 1).ToString() + "%";
                        double.TryParse(component.Efficiency.Split('%')[0], out var eff);
                        component.EfficiencyNetta = (eff - Math.Round((t / component.Pieces) * 100, 1)).ToString() + "%";
                    }
                    sumTrash  = 0;
                    sumRepair = 0;
                }
                if (machine != startMachine || shift != startShift || operatorCode != startOperatorCode ||
                    order != startOrder || article != startArticle)
                {
                    sumTrash  += startTrash;
                    sumRepair += startRepair;
                }
                startDate         = date;
                startShift        = shift;
                startOperatorCode = operatorCode;
                startMachine      = machine;
                startOrder        = order;
                startArticle      = article;
                startTrash        = trash;
                startRepair       = repair;
            }

            sumTrash  += startTrash;
            sumRepair += startRepair;
            var lstComponent = (from lc in _components
                                where lc.CurrentDay == startDate
                                select lc).SingleOrDefault();

            double.TryParse(sumTrash.ToString(), out var lt);
            double.TryParse(sumRepair.ToString(), out var lr);
            lstComponent.PercTrash  = Math.Round((lt / lstComponent.Pieces) * 100, 1).ToString() + "%";
            lstComponent.PercRepair = Math.Round((lr / lstComponent.Pieces) * 100, 1).ToString() + "%";
            double.TryParse(lstComponent.Efficiency.Split('%')[0], out var lstEff);
            lstComponent.EfficiencyNetta = (lstEff - Math.Round((lt / lstComponent.Pieces) * 100, 1)).ToString() + "%";

            var tableView = new DataTable();

            CreateTableView(tableView);

            var    counter              = 0;
            double mediaActiveMachines  = 0.0;
            double mediaRepair          = 0.0;
            double mediaTrash           = 0.0;
            double mediaEfficiency      = 0.0;
            double mediaEfficiencyNetta = 0.0;
            var    insertMedia          = false;
            var    rowPos = 0;

            foreach (DataRow row in tableView.Rows)
            {
                rowPos++;
                int.TryParse(row[1].ToString(), out var day);
                var component = (from c in _components
                                 where c.CurrentDay.Day == day
                                 select c).SingleOrDefault();
                if (insertMedia)
                {
                    if (counter > 0)
                    {
                        row[3] = Math.Round(mediaActiveMachines / counter, 0);
                        row[5] = Math.Round(mediaRepair / counter, 1).ToString() + "%";
                        row[6] = Math.Round(mediaTrash / counter, 1).ToString() + "%";
                        row[7] = Math.Round(mediaEfficiency / counter, 1).ToString() + "%";
                        row[8] = Math.Round(mediaEfficiencyNetta / counter, 1).ToString() + "%";
                    }
                    counter              = 0;
                    mediaActiveMachines  = 0.0;
                    mediaRepair          = 0.0;
                    mediaTrash           = 0.0;
                    mediaEfficiency      = 0.0;
                    mediaEfficiencyNetta = 0.0;
                    insertMedia          = false;
                }
                else
                {
                    if (row[0].ToString() == "Sunday")
                    {
                        insertMedia = true;
                    }
                    if (component != null)
                    {
                        counter++;
                        double.TryParse(component.PercRepair.Split('%')[0], out var r);
                        double.TryParse(component.PercTrash.Split('%')[0], out var t);
                        double.TryParse(component.Efficiency.Split('%')[0], out var e);
                        double en = 0.0;
                        if (!string.IsNullOrEmpty(component.EfficiencyNetta) && component.EfficiencyNetta.Contains('%'))
                        {
                            double.TryParse(component.EfficiencyNetta.Split('%')[0], out en);
                        }

                        mediaActiveMachines  += component.ActiveMachines;
                        mediaRepair          += r;
                        mediaTrash           += t;
                        mediaEfficiency      += e;
                        mediaEfficiencyNetta += en;

                        row[2] = string.Empty; // totale capi
                        row[3] = component.ActiveMachines;
                        row[4] = string.Empty; //capi per mac
                        row[5] = component.PercRepair;
                        row[6] = component.PercTrash;
                        row[7] = component.Efficiency; //eff
                        row[8] = component.EfficiencyNetta;
                    }
                }
                if (tableView.Rows.Count - 1 == rowPos)
                {
                    if (counter > 0)
                    {
                        row[3] = Math.Round(mediaActiveMachines / counter, 0);
                        row[5] = Math.Round(mediaRepair / counter, 1).ToString() + "%";
                        row[6] = Math.Round(mediaTrash / counter, 1).ToString() + "%";
                        row[7] = Math.Round(mediaEfficiency / counter, 1).ToString() + "%";
                        row[8] = Math.Round(mediaEfficiencyNetta / counter, 1).ToString() + "%";
                    }
                }
            }

            if (dgvReport.DataSource != null)
            {
                dgvReport.DataSource = null;
            }

            dgvReport.DataSource = tableView;
            //calculate values for media row --position 0
            for (var c = 1; c < dgvReport.Columns.Count; c++)
            {
                var    count     = 0;
                int    intVal    = 0;
                double doubleVal = 0.0;
                for (var r = 2; r < dgvReport.Rows.Count; r++)
                {
                    if (string.IsNullOrEmpty(dgvReport.Rows[r].Cells[c].Value.ToString()))
                    {
                        continue;
                    }
                    count++;

                    if (c == 3)
                    {
                        int.TryParse(dgvReport.Rows[r].Cells[c].Value.ToString(), out var val);
                        intVal += val;
                    }
                    else if (c >= 5 && c <= 8)
                    {
                        double.TryParse(dgvReport.Rows[r].Cells[c].Value.ToString().Split('%')[0], out var val);
                        doubleVal += val;
                    }
                }
                if (c == 1)
                {
                    if (count == 0)
                    {
                        dgvReport.Rows[0].Cells[c].Value = "0";
                    }
                    else
                    {
                        var daysInMonth = DateTime.DaysInMonth(GetYear(), GetMonth());
                        double.TryParse(count.ToString(), out var workedDays);
                        dgvReport.Rows[0].Cells[c].Value = Math.Round((workedDays / daysInMonth) * 100, 1).ToString() + "%";
                    }
                }
                else if (c == 3)
                {
                    if (count == 0)
                    {
                        dgvReport.Rows[0].Cells[c].Value = "0";
                    }
                    else
                    {
                        dgvReport.Rows[0].Cells[c].Value = intVal / count;
                    }
                }
                else if (c >= 5 && c <= 8)
                {
                    if (count == 0)
                    {
                        dgvReport.Rows[0].Cells[c].Value = "0";
                    }
                    else
                    {
                        dgvReport.Rows[0].Cells[c].Value = Math.Round(doubleVal / count, 1).ToString() + "%";
                    }
                }
            }
            LoadingInfo.CloseLoading();
        }
コード例 #9
0
        private void ProcessData()
        {
            if (Get_Date_From() > Get_Date_To())
            {
                MessageBox.Show("Invalid date selection!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            LoadingInfo.InfoText = "Loading report...";
            LoadingInfo.ShowLoading();
            _stops = new List <MachinesStops>();
            LoadProcedure(_stops);

            var table = new DataTable();

            CreateTableView(table);

            foreach (var cat in new string[] { "Tempo possibile", "Cambi [ore]", "Pulizia [ore]", "Campionario [ore]", "Cambio aghi [ore]",
                                               "Qualita filato [ore]", "Maintance [ore]", "Rottura filato [ore]", "Pulizia fronture [ore]",
                                               "Interventi meccanici [ore]", "Varie [ore]", "Tempo Produttivo", "Perdita per scarti [ore]",
                                               "Perdita per rammendi [ore]", "Tempo VA", "Tempo disponibile [ore]", "Utilazation - Saturazione %",
                                               "Availability - Disponbilita %", "Efficienza %", "Quality ore %", "Quality teli %",
                                               "", //sep row
                                               "Tempo possibile %", "Cambi %", "Pulizia %", "Campionario %", "Cambio aghi %",
                                               "Qualita filato %", "Varie %", "Rottura filato %", "Pulizia fronture %",
                                               "Interventi meccanici %", "Varie %", "Tempo Produttivo %", "Perdita per scarti %",
                                               "Perdita per rammendi %", "OEE %", "TEEP %" })
            {
                var newRow = table.NewRow();
                newRow["Categories"] = cat;
                table.Rows.Add(newRow);
            }

            if (dgvReport.DataSource != null)
            {
                dgvReport.DataSource = null;
            }
            dgvReport.DataSource = table;

            double cambi = 0.0, pulizia = 0.0, campionario = 0.0, cambioAghi = 0.0, qualitaFilato = 0.0,
                   varieOne = 0.0, rotturaFilato = 0.0, puliziaFron = 0.0, meccanici = 0.0, varieTwo = 0.0,
                   totalTempoProdutivo = 0.0, totalTempoPossibile = 0.0, totTempoVA = 0.0, totTempoScarti = 0.0, totTempoRammendi = 0.0;

            FrmHolidays.dc = new System.Data.Linq.DataContext(MainWnd.conString);
            var finList = Get_Selected_Finezza();

            for (var c = 1; c < dgvReport.Columns.Count - 2; c++)
            {
                var month = (from s in _stops
                             where s.Date == dgvReport.Columns[c].Name
                             select s).SingleOrDefault();
                if (month == null)
                {
                    continue;
                }

                int.TryParse(dgvReport.Columns[c].Name.Split('.')[0], out var y);
                int.TryParse(dgvReport.Columns[c].Name.Split('.')[1], out var m);
                var currentDate = new DateTime(y, m, 1);
                var parameters  = (from p in Tables.TblMonthTrash
                                   where p.Date == currentDate
                                   select p).ToList();
                if (parameters == null || parameters.Count <= 0)
                {
                    continue;
                }

                //calculating times for each month and each finezza
                double tempoCalendario     = 0.0;
                double tempoPossibile      = 0.0;
                double tempoDisponssibile  = 0.0;
                double tempoProdutivo      = 0.0;
                double tempoScarti         = 0.0;
                double tempoRammendi       = 0.0;
                double tempoCalendarioTeep = 0.0;
                foreach (var uniqueParameters in parameters)
                {
                    if (!finList.Exists(f => f == uniqueParameters.Finezza))
                    {
                        continue;
                    }
                    var daysInMonth = DateTime.DaysInMonth(uniqueParameters.Date.Year, uniqueParameters.Date.Month);
                    double.TryParse(daysInMonth.ToString(), out var days);
                    var tmpTempoCalendario = (days * uniqueParameters.ConsiderateMac
                                              - Get_Holidays_In_Range(currentDate, new DateTime(currentDate.Year, currentDate.Month, daysInMonth))
                                              * uniqueParameters.ConsiderateMac) * 86_400;
                    var tmpTempoPossibile = tmpTempoCalendario - (uniqueParameters.FermataStraordinaria + uniqueParameters.MancanzaLavoro) * 3600;
                    var tmpTempoProdutivo = uniqueParameters.Produtivo * 3600;
                    double.TryParse((uniqueParameters.Scarti * 3600).ToString(), out var tmpTempoScarti);
                    double.TryParse((uniqueParameters.Rammendi * 3600).ToString(), out var tmpTempoRammendi);
                    var tmpTempoDisponssibile = tmpTempoPossibile - (month.CambiOre + month.PuliziaOre + month.CampionarioOre + month.CambioAghiOre +
                                                                     month.QualitaFilatoOre + month.MaintanceOre);
                    var tempoIterruzioni = month.RotturaFilatoOre + month.PuliziaFrontureOre + month.MeccaniciOre + month.VarieTOre;
                    var tempoEffetivo    = tmpTempoDisponssibile - (month.RotturaFilatoOre + month.PuliziaFrontureOre + month.MeccaniciOre + month.VarieTOre);
                    double.TryParse(uniqueParameters.CalendarioTEEP.ToString(), out var tmpTempoCalendarioTEEP);
                    tempoCalendario     += tmpTempoCalendario;
                    tempoCalendarioTeep += tmpTempoCalendarioTEEP * 3600;
                    tempoPossibile      += tmpTempoPossibile;
                    tempoDisponssibile  += tmpTempoDisponssibile;
                    tempoProdutivo      += tmpTempoProdutivo;
                    tempoScarti         += tmpTempoScarti;
                    tempoRammendi       += tmpTempoRammendi;
                }

                #region firstTablePart
                dgvReport.Rows[0].Cells[c].Value = ConvertSecondsToHHmm(tempoPossibile);
                totalTempoPossibile += tempoPossibile;
                dgvReport.Rows[1].Cells[c].Value = ConvertSecondsToHHmm(month.CambiOre);
                cambi += month.CambiOre;
                dgvReport.Rows[2].Cells[c].Value = ConvertSecondsToHHmm(month.PuliziaOre);
                pulizia += month.PuliziaOre;
                dgvReport.Rows[3].Cells[c].Value = ConvertSecondsToHHmm(month.CampionarioOre);
                campionario += month.CampionarioOre;
                dgvReport.Rows[4].Cells[c].Value = ConvertSecondsToHHmm(month.CambioAghiOre);
                cambioAghi += month.CambioAghiOre;
                dgvReport.Rows[5].Cells[c].Value = ConvertSecondsToHHmm(month.QualitaFilatoOre);
                qualitaFilato += month.QualitaFilatoOre;
                dgvReport.Rows[6].Cells[c].Value = ConvertSecondsToHHmm(month.MaintanceOre);
                varieOne += month.MaintanceOre;
                dgvReport.Rows[7].Cells[c].Value = ConvertSecondsToHHmm(month.RotturaFilatoOre);
                rotturaFilato += month.RotturaFilatoOre;
                dgvReport.Rows[8].Cells[c].Value = ConvertSecondsToHHmm(month.PuliziaFrontureOre);
                puliziaFron += month.PuliziaFrontureOre;
                dgvReport.Rows[9].Cells[c].Value = ConvertSecondsToHHmm(month.MeccaniciOre);
                meccanici += month.MeccaniciOre;
                dgvReport.Rows[10].Cells[c].Value = ConvertSecondsToHHmm(month.VarieTOre);
                varieTwo += month.VarieTOre;

                dgvReport.Rows[11].Cells[c].Value = ConvertSecondsToHHmm(tempoProdutivo);
                totalTempoProdutivo += tempoProdutivo;
                dgvReport.Rows[12].Cells[c].Value = ConvertSecondsToHHmm(tempoScarti);
                totTempoScarti += tempoScarti;
                dgvReport.Rows[13].Cells[c].Value = ConvertSecondsToHHmm(tempoRammendi);
                totTempoRammendi += tempoRammendi;
                dgvReport.Rows[14].Cells[c].Value = ConvertSecondsToHHmm(tempoProdutivo - tempoScarti - tempoRammendi);
                totTempoVA += tempoProdutivo - tempoScarti - tempoRammendi;
                var quality         = Math.Round(((tempoProdutivo - tempoScarti - tempoRammendi) / tempoProdutivo) * 100, 1);
                var percQualityTeli = Math.Round(((month.TeliScarti + month.TeliRammendi) / month.Teli) * 100, 1); // instead of 1s add teliScarti + teliRammendi
                var qualityTeli     = 100 - percQualityTeli;
                dgvReport.Rows[15].Cells[c].Value = ConvertSecondsToHHmm(tempoDisponssibile);
                dgvReport.Rows[16].Cells[c].Value = Math.Round((tempoPossibile / tempoCalendario) * 100, 1);
                dgvReport.Rows[17].Cells[c].Value = Math.Round((tempoDisponssibile / tempoPossibile) * 100, 1);
                dgvReport.Rows[18].Cells[c].Value = Math.Round((tempoProdutivo / tempoDisponssibile) * 100, 1);
                dgvReport.Rows[19].Cells[c].Value = quality;
                dgvReport.Rows[20].Cells[c].Value = qualityTeli;
                #endregion firstTablePart
                //row[21] sep row
                #region secondTablePart
                dgvReport.Rows[22].Cells[c].Value = "100";
                dgvReport.Rows[23].Cells[c].Value = Math.Round((month.CambiOre / (tempoPossibile)) * 100, 1);
                dgvReport.Rows[24].Cells[c].Value = Math.Round((month.PuliziaOre / (tempoPossibile)) * 100, 1);
                dgvReport.Rows[25].Cells[c].Value = Math.Round((month.CampionarioOre / (tempoPossibile)) * 100, 1);
                dgvReport.Rows[26].Cells[c].Value = Math.Round((month.CambioAghiOre / (tempoPossibile)) * 100, 1);
                dgvReport.Rows[27].Cells[c].Value = Math.Round((month.QualitaFilatoOre / (tempoPossibile)) * 100, 1);
                dgvReport.Rows[28].Cells[c].Value = Math.Round((month.MaintanceOre / (tempoPossibile)) * 100, 1);
                dgvReport.Rows[29].Cells[c].Value = Math.Round((month.RotturaFilatoOre / (tempoPossibile)) * 100, 1);
                dgvReport.Rows[30].Cells[c].Value = Math.Round((month.PuliziaFrontureOre / (tempoPossibile)) * 100, 1);
                dgvReport.Rows[31].Cells[c].Value = Math.Round((month.MeccaniciOre / (tempoPossibile)) * 100, 1);
                dgvReport.Rows[32].Cells[c].Value = Math.Round((month.VarieTOre / (tempoPossibile)) * 100, 1);
                dgvReport.Rows[33].Cells[c].Value = Math.Round((tempoProdutivo / (tempoPossibile)) * 100, 1);
                dgvReport.Rows[34].Cells[c].Value = Math.Round((totTempoScarti / tempoPossibile) * 100, 1);
                dgvReport.Rows[35].Cells[c].Value = Math.Round((totTempoRammendi / tempoPossibile) * 100, 1);
                var oee = Math.Round(((quality * ((tempoProdutivo / tempoDisponssibile) * 100) * ((tempoDisponssibile / tempoPossibile) * 100))) / 10_000, 1);
                dgvReport.Rows[36].Cells[c].Value = oee;
                var teep = Math.Round(oee * (((tempoPossibile / tempoCalendarioTeep) * 100) / 100), 1);
                dgvReport.Rows[37].Cells[c].Value = teep;
                #endregion secondTablePart
            }
            //totals
            #region firstPartTableTotals
            dgvReport.Rows[0].Cells[dgvReport.Columns.Count - 1].Value  = ConvertSecondsToHHmm(totalTempoPossibile);
            dgvReport.Rows[1].Cells[dgvReport.Columns.Count - 1].Value  = ConvertSecondsToHHmm(cambi);
            dgvReport.Rows[2].Cells[dgvReport.Columns.Count - 1].Value  = ConvertSecondsToHHmm(pulizia);
            dgvReport.Rows[3].Cells[dgvReport.Columns.Count - 1].Value  = ConvertSecondsToHHmm(campionario);
            dgvReport.Rows[4].Cells[dgvReport.Columns.Count - 1].Value  = ConvertSecondsToHHmm(cambioAghi);
            dgvReport.Rows[5].Cells[dgvReport.Columns.Count - 1].Value  = ConvertSecondsToHHmm(qualitaFilato);
            dgvReport.Rows[6].Cells[dgvReport.Columns.Count - 1].Value  = ConvertSecondsToHHmm(varieOne);
            dgvReport.Rows[7].Cells[dgvReport.Columns.Count - 1].Value  = ConvertSecondsToHHmm(rotturaFilato);
            dgvReport.Rows[8].Cells[dgvReport.Columns.Count - 1].Value  = ConvertSecondsToHHmm(puliziaFron);
            dgvReport.Rows[9].Cells[dgvReport.Columns.Count - 1].Value  = ConvertSecondsToHHmm(meccanici);
            dgvReport.Rows[10].Cells[dgvReport.Columns.Count - 1].Value = ConvertSecondsToHHmm(varieTwo);
            dgvReport.Rows[11].Cells[dgvReport.Columns.Count - 1].Value = ConvertSecondsToHHmm(totalTempoProdutivo);
            dgvReport.Rows[12].Cells[dgvReport.Columns.Count - 1].Value = ConvertSecondsToHHmm(totTempoScarti);
            dgvReport.Rows[13].Cells[dgvReport.Columns.Count - 1].Value = ConvertSecondsToHHmm(totTempoRammendi);
            dgvReport.Rows[14].Cells[dgvReport.Columns.Count - 1].Value = ConvertSecondsToHHmm(totTempoVA);
            #endregion firstPartTableTotals
            #region secondPartTableTotals
            //sep row [21]
            dgvReport.Rows[22].Cells[dgvReport.Columns.Count - 1].Value = "100";
            dgvReport.Rows[23].Cells[dgvReport.Columns.Count - 1].Value = Math.Round((cambi / totalTempoPossibile) * 100, 1);
            dgvReport.Rows[24].Cells[dgvReport.Columns.Count - 1].Value = Math.Round((pulizia / totalTempoPossibile) * 100, 1);
            dgvReport.Rows[25].Cells[dgvReport.Columns.Count - 1].Value = Math.Round((campionario / totalTempoPossibile) * 100, 1);
            dgvReport.Rows[26].Cells[dgvReport.Columns.Count - 1].Value = Math.Round((cambioAghi / totalTempoPossibile) * 100, 1);
            dgvReport.Rows[27].Cells[dgvReport.Columns.Count - 1].Value = Math.Round((qualitaFilato / totalTempoPossibile) * 100, 1);
            dgvReport.Rows[28].Cells[dgvReport.Columns.Count - 1].Value = Math.Round((varieOne / totalTempoPossibile) * 100, 1);
            dgvReport.Rows[29].Cells[dgvReport.Columns.Count - 1].Value = Math.Round((rotturaFilato / totalTempoPossibile) * 100, 1);
            dgvReport.Rows[30].Cells[dgvReport.Columns.Count - 1].Value = Math.Round((puliziaFron / totalTempoPossibile) * 100, 1);
            dgvReport.Rows[31].Cells[dgvReport.Columns.Count - 1].Value = Math.Round((meccanici / totalTempoPossibile) * 100, 1);
            dgvReport.Rows[32].Cells[dgvReport.Columns.Count - 1].Value = Math.Round((varieTwo / totalTempoPossibile) * 100, 1);
            dgvReport.Rows[33].Cells[dgvReport.Columns.Count - 1].Value = Math.Round((totalTempoProdutivo / totalTempoPossibile) * 100, 1);
            dgvReport.Rows[34].Cells[dgvReport.Columns.Count - 1].Value = Math.Round((totTempoScarti / totalTempoPossibile) * 100, 1);
            dgvReport.Rows[35].Cells[dgvReport.Columns.Count - 1].Value = Math.Round((totTempoRammendi / totalTempoPossibile) * 100, 1);
            #endregion secondPartTableTotals

            LoadingInfo.CloseLoading();
        }
コード例 #10
0
 private void btnHome_Click(object sender, EventArgs e)
 {
     LoadingInfo.InfoText = "Waiting for response from http://loknitting.olimpias.it/Sinotico.aspx";
     LoadingInfo.ShowLoading();
     webBrowser1.Navigate("http://loknitting.olimpias.it/Sinotico.aspx");
 }
コード例 #11
0
 private void button3_Click(object sender, EventArgs e)
 {
     LoadingInfo.InfoText = "Waiting for response from " + txtLink.Text;
     LoadingInfo.ShowLoading();
     webBrowser1.Navigate(txtLink.Text);
 }
コード例 #12
0
        private void CreateMachinesReport()
        {
            LoadingInfo.InfoText = "Loading chart...";
            LoadingInfo.ShowLoading();

            /*
             **Create controls based on shifts selection
             */

            var global = new Globals();

            var chart_data = new DataTable();
            var table_data = new DataTable();

            // Loads charts data

            using (var con = new SqlConnection(MainWnd.conString))
            {
                var cmd = new SqlCommand("get_data_in_hold_per_hour", con);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.Add("@from_date", SqlDbType.DateTime).Value = MainWnd.Get_to_date();
                cmd.Parameters.Add("@to_date", SqlDbType.DateTime).Value   = MainWnd.Get_to_date();
                cmd.Parameters.Add("@machine", SqlDbType.VarChar).Value    = _machines_array.ToString();

                con.Open();
                var dr = cmd.ExecuteReader();
                chart_data.Load(dr);
                con.Close();
                dr.Close();
                cmd = null;

                // Loads table data

                cmd             = new SqlCommand("get_data_in_hold_per_shift", con);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.Add("@from_date", SqlDbType.DateTime).Value = MainWnd.Get_from_date();
                cmd.Parameters.Add("@to_date", SqlDbType.DateTime).Value   = MainWnd.Get_to_date();
                cmd.Parameters.Add("@shift", SqlDbType.VarChar).Value      = MainWnd.Get_shift_array().ToString();
                cmd.Parameters.Add("@machine", SqlDbType.VarChar).Value    = _machines_array.ToString();

                con.Open();
                dr = cmd.ExecuteReader();
                table_data.Load(dr);
                con.Close();
                dr.Close();
                cmd = null;
            }

            // Creates controls with data structure

            var topObjLocation  = 20;
            var leftObjLocation = 17;
            var objW            = Width - 50;

            _panel_shift            = new Panel();
            _panel_shift.Dock       = DockStyle.Fill;
            _panel_shift.AutoScroll = true;
            Controls.Add(_panel_shift);
            _panel_shift.BringToFront();

            foreach (var shift in MainWnd.ListOfSelectedShifts)
            {
                // Add shift title

                _lbl_shfit           = new Label();
                _lbl_shfit.AutoSize  = true;
                _lbl_shfit.Font      = new Font("Microsoft Sans Serif", 15);
                _lbl_shfit.ForeColor = Color.Black;

                var shf     = "";
                var upShift = string.Empty;

                if (shift.Remove(0, 2) == "Night")
                {
                    shf     = "Turno 1";
                    upShift = "NIGHT";
                }
                else if (shift.Remove(0, 2) == "Morning")
                {
                    shf     = "Turno 2";
                    upShift = "MORNING";
                }
                else if (shift.Remove(0, 2) == "Afternoon")
                {
                    shf     = "Turno 3";
                    upShift = "AFTERNOON";
                }

                _lbl_shfit.Text = shf;

                var lblW = _lbl_shfit.Width;
                var locX = (Width / 2 - lblW / 2);

                _lbl_shfit.Location = new Point(locX - 20, topObjLocation + 10);

                _panel_shift.Controls.Add(_lbl_shfit);

                topObjLocation += _lbl_shfit.Height;

                // Convert table data
                var conv_table_data = new DataTable();

                foreach (DataColumn dc in table_data.Columns)
                {
                    if (dc.ColumnName == "stop_time")
                    {
                        continue;
                    }

                    conv_table_data.Columns.Add(dc.ColumnName); //copies datacolumns
                }

                conv_table_data.Columns.Add("Generic Stops");
                conv_table_data.Columns.Add("TOTAL");

                foreach (DataRow row in table_data.Rows)
                {
                    var newRow = conv_table_data.NewRow();

                    if (row[1].ToString() != upShift)
                    {
                        continue;
                    }

                    var knitTime = Convert.ToInt32(row[8]);
                    var stopTime = Convert.ToInt32(row[16]);

                    var total = 0;

                    for (var i = 0; i <= 7; i++)
                    {
                        if (i == 0)
                        {
                            newRow[i] = Convert.ToDateTime(row[i]).ToShortDateString();
                        }
                        else
                        {
                            newRow[i] = row[i].ToString();
                        }
                    }

                    for (var i = 8; i <= 15; i++)
                    {
                        newRow[i] = ConvertSecondsToHHmm(Convert.ToInt32(row[i]));

                        total += Convert.ToInt32(row[i]);
                    }

                    var genericStop = 0;
                    var allStops    = 0;

                    for (var i = 9; i <= 15; i++)
                    {
                        allStops += Convert.ToInt32(row[i]);
                    }

                    genericStop = stopTime - allStops;

                    if (genericStop < 0)
                    {
                        genericStop = 0;
                    }
                    total += genericStop;

                    newRow[16] = ConvertSecondsToHHmm(genericStop);
                    newRow[17] = ConvertSecondsToHHmm(total);
                    conv_table_data.Rows.Add(newRow);
                }

                //Add chart

                _chart           = new System.Windows.Forms.DataVisualization.Charting.Chart();
                _chart.Size      = new Size(objW, 400);
                _chart.Location  = new Point(leftObjLocation, topObjLocation + 20);
                _chart.BackColor = Color.WhiteSmoke;
                topObjLocation  += _chart.Height;

                _chart.ChartAreas.Clear();
                _chart.Series.Clear();

                _chart.ChartAreas.Add("hold");

                _chart.ChartAreas[0].AxisX.MajorGrid.LineColor      = Color.Gainsboro;
                _chart.ChartAreas[0].AxisY.MajorGrid.LineColor      = Color.Gainsboro;
                _chart.ChartAreas[0].AxisX.MajorGrid.IntervalOffset = 20;
                _chart.ChartAreas[0].BackColor                  = Color.WhiteSmoke;
                _chart.ChartAreas[0].AxisX.LineColor            = Color.WhiteSmoke;
                _chart.ChartAreas[0].AxisX.LabelStyle.ForeColor = Color.Gray;
                _chart.ChartAreas[0].AxisY.LineColor            = Color.Silver;
                _chart.ChartAreas[0].AxisY.LabelStyle.ForeColor = Color.Gray;
                _chart.ChartAreas[0].AxisY.Maximum              = 60;
                //_chart.ChartAreas[0].AxisX.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Hours;
                //_chart.ChartAreas[0].AxisX.LabelAutoFitMinFontSize = 15;

                _chart.Series.Add("knitt");
                _chart.Series.Add("comb");
                _chart.Series.Add("manual");
                _chart.Series.Add("yarn");
                _chart.Series.Add("needle");
                _chart.Series.Add("shock");
                _chart.Series.Add("roller");
                _chart.Series.Add("other");
                _chart.Series.Add("generic");

                _chart.Legends.Clear();

                _chart.Series["knitt"].Color  = global.GetStopColors()[0];
                _chart.Series["comb"].Color   = global.GetStopColors()[1];
                _chart.Series["manual"].Color = global.GetStopColors()[2];
                _chart.Series["yarn"].Color   = global.GetStopColors()[3];
                _chart.Series["needle"].Color = global.GetStopColors()[4];
                _chart.Series["shock"].Color  = global.GetStopColors()[5];
                _chart.Series["roller"].Color = global.GetStopColors()[6];
                _chart.Series["other"].Color  = global.GetStopColors()[7];

                _chart.Series["generic"].Color = Color.Gold;

                foreach (DataRow row in chart_data.Rows)
                {
                    var hour = Convert.ToInt32(row[0]);

                    int knit   = Convert.ToInt32(row[1]) > 0 ? Convert.ToInt32(row[1]) : knit = 0;
                    int comb   = Convert.ToInt32(row[3]) > 0 ? Convert.ToInt32(row[3]) : comb = 0;
                    int manual = Convert.ToInt32(row[4]) > 0 ? Convert.ToInt32(row[4]) : manual = 0;
                    int yarn   = Convert.ToInt32(row[5]) > 0 ? Convert.ToInt32(row[5]) : yarn = 0;
                    int needle = Convert.ToInt32(row[6]) > 0 ? Convert.ToInt32(row[6]) : needle = 0;
                    int shock  = Convert.ToInt32(row[7]) > 0 ? Convert.ToInt32(row[7]) : shock = 0;
                    int roller = Convert.ToInt32(row[8]) > 0 ? Convert.ToInt32(row[8]) : roller = 0;
                    int other  = Convert.ToInt32(row[9]) > 0 ? Convert.ToInt32(row[9]) : other = 0;

                    if (knit > 60)
                    {
                        knit = 60;
                    }

                    if (shift == "cbNight" && hour == 23)
                    {
                        _chart.Series["knitt"].Points.AddXY(hour.ToString(), knit);
                        _chart.Series["comb"].Points.AddXY(hour.ToString(), comb);
                        _chart.Series["manual"].Points.AddXY(hour.ToString(), manual);
                        _chart.Series["yarn"].Points.AddXY(hour.ToString(), yarn);
                        _chart.Series["needle"].Points.AddXY(hour.ToString(), needle);
                        _chart.Series["shock"].Points.AddXY(hour.ToString(), shock);
                        _chart.Series["roller"].Points.AddXY(hour.ToString(), roller);
                        _chart.Series["other"].Points.AddXY(hour.ToString(), other);

                        var stopTime  = Convert.ToInt32(row[2]);
                        var otherTime = 0;

                        for (var i = 3; i <= chart_data.Columns.Count - 9; i++)
                        {
                            otherTime += Convert.ToInt32(row[i]);
                        }

                        var unknow = stopTime - otherTime;

                        if (unknow > 60)
                        {
                            unknow = 60;
                        }
                        else if (unknow < 0)
                        {
                            unknow = 0;
                        }

                        if ((knit + unknow) > 60)
                        {
                            unknow = 60 - knit;
                        }

                        _chart.Series["generic"].Points.AddXY(hour.ToString(), unknow);
                    }

                    if (shift == "cbNight" && hour >= 0 && hour <= 6 || shift == "cbMorning" && hour >= 7 && hour <= 14 ||
                        shift == "cbAfternoon" && hour >= 15 && hour <= 22)
                    {
                        _chart.Series["knitt"].Points.AddXY(hour.ToString(), knit);
                        _chart.Series["comb"].Points.AddXY(hour.ToString(), comb);
                        _chart.Series["manual"].Points.AddXY(hour.ToString(), manual);
                        _chart.Series["yarn"].Points.AddXY(hour.ToString(), yarn);
                        _chart.Series["needle"].Points.AddXY(hour.ToString(), needle);
                        _chart.Series["shock"].Points.AddXY(hour.ToString(), shock);
                        _chart.Series["roller"].Points.AddXY(hour.ToString(), roller);
                        _chart.Series["other"].Points.AddXY(hour.ToString(), other);

                        var stopTime  = Convert.ToInt32(row[2]);
                        var otherTime = 0;

                        for (var i = 3; i <= 9; i++)
                        {
                            otherTime += Convert.ToInt32(row[i]);
                        }

                        var unknow = stopTime - otherTime;

                        if (unknow > 60)
                        {
                            unknow = 60;
                        }
                        else if (unknow < 0)
                        {
                            unknow = 0;
                        }

                        if ((knit + unknow) > 60)
                        {
                            unknow = 60 - knit;
                        }

                        _chart.Series["generic"].Points.AddXY(hour.ToString(), unknow);
                    }
                }

                foreach (var s in _chart.Series)
                {
                    s.ChartType           = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.StackedColumn;
                    s.Font                = new Font("Tahoma", 8, FontStyle.Bold);
                    s.LabelForeColor      = Color.Black;
                    s.IsValueShownAsLabel = true;

                    foreach (var d in s.Points)
                    {
                        if (d.YValues[0] < 1)
                        {
                            d.IsValueShownAsLabel = false;
                        }
                    }
                }

                _panel_shift.Controls.Add(_chart);

                _dgv          = new DataGridView();
                _dgv.Size     = new Size(objW, 150);
                _dgv.Location = new Point(leftObjLocation, topObjLocation + 20);

                topObjLocation += _dgv.Height + 20;

                _dgv.EnableHeadersVisualStyles = false;
                _dgv.DoubleBufferedDataGridView(true);

                _dgv.AllowUserToAddRows          = false;
                _dgv.AllowUserToDeleteRows       = false;
                _dgv.AllowUserToResizeColumns    = false;
                _dgv.AllowUserToResizeRows       = false;
                _dgv.AllowUserToOrderColumns     = false;
                _dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
                _dgv.ReadOnly        = true;
                _dgv.BackgroundColor = Color.WhiteSmoke;
                _dgv.BorderStyle     = BorderStyle.None;
                _dgv.MultiSelect     = false;
                _dgv.SelectionMode   = DataGridViewSelectionMode.CellSelect;
                _dgv.Font            = new Font("Microsoft Sans Serif", 9);
                _dgv.ForeColor       = Color.FromArgb(60, 60, 60);
                _dgv.CellBorderStyle = DataGridViewCellBorderStyle.None;

                _dgv.DataSource = conv_table_data;

                _dgv.DataBindingComplete += delegate
                {
                    _dgv.Columns[1].Visible = false;

                    for (var c = 8; c <= _dgv.Columns.Count - 3; c++)
                    {
                        _dgv.Columns[c].HeaderCell.Style.BackColor = global.GetStopColors()[c - 8];

                        _dgv.Columns[c].HeaderCell.Style.ForeColor = Color.White;
                        _dgv.Columns[c].HeaderCell.Style.Font      = new Font("Microsoft Sans Serif", 8, FontStyle.Bold);

                        _dgv.Columns[c].HeaderText = global.StopReasonsIt[c - 8];
                    }

                    _dgv.Columns["Generic Stops"].HeaderCell.Style.BackColor = Color.Gold;
                    _dgv.Columns["Generic Stops"].HeaderCell.Style.ForeColor = Color.White;
                    _dgv.Columns["Generic Stops"].HeaderCell.Style.Font      = new Font("Microsoft Sans Serif", 8, FontStyle.Bold);

                    foreach (DataGridViewColumn c in _dgv.Columns)
                    {
                        _dgv.AutoResizeColumn(c.DisplayIndex);
                    }
                };

                _panel_shift.Controls.Add(_dgv);
            }

            LoadingInfo.CloseLoading();
        }