示例#1
0
        /// <summary>
        ///     Soma o tempo de todas as estratégias no trabalho e apresenta para o usuário o tempo total.
        /// </summary>
        private void SomaTempos()
        {
            if (udgv_Times.Rows.Count > 0)
            {
                List <String> lstTempos = new List <string>();
                for (int x = 0; x < udgv_Times.Rows.Count; x++)
                {
                    lstTempos.Add(udgv_Times.Rows[x].Cells["Tempo total de usinagem"].OriginalValue.ToString());
                }

                lblTotalTime.Text    = String.Format("Tempo total de uso da ferramenta: '{0}'", CustomTimes.SumTimes(lstTempos.ToArray()));
                lblTotalTime.Visible = true;
            }
        }
        /// <summary>
        ///     Método que consulta as ferramentas utilizadas no trabalho do edgecam.
        /// </summary>
        private void ConsultaFerramentas_Job()
        {
            DataTable dt = Objects.CnnBancoEc.ExecutaSql(Consultas_Ec.CONSULTA_TOOLS_BY_JOB, new Dictionary <string, object>()
            {
                { "@JOBID", mJob.IdJob }
            });

            if (dt != null && dt.Rows.Count > 0)
            {
                //Lista de ferramentas já processadas pelo sistema (evita duplicidade)
                List <String> toolsProcessed = new List <string>();

                //Esse é um datatable temporário, esses serão os dados que irão para a interface.
                DataTable dados = new DataTable();
                dados.Columns.Add(new DataColumn("Posição", typeof(String)));
                dados.Columns.Add(new DataColumn("Nome da ferramenta", typeof(String)));
                dados.Columns.Add(new DataColumn("Diâmetro", typeof(Double)));
                dados.Columns.Add(new DataColumn("Tipo da ferramenta", typeof(Bitmap)));
                dados.Columns.Add(new DataColumn("Tempo total de uso", typeof(String)));
                dados.Columns.Add(new DataColumn("Quantidade utilizada", typeof(int)));

                for (int x = 0; x < dt.Rows.Count; x++)
                {
                    //Obtenho o nome da ferramenta (facilitar a manipulação).
                    String nomeTool = dt.Rows[x]["Nome da ferramenta"].ToString();

                    //Verifica se a ferramenta já foi processada anteriormente.
                    if (toolsProcessed.Where(t => t.ToUpper().Trim() == nomeTool.ToUpper().Trim()).Count() > 0)
                    {
                        continue;
                    }

                    var r = dt.Select(String.Format("[Nome da ferramenta] = '{0}'", nomeTool));

                    //Se for localizado mais de uma ferramenta, faço alguns cálculos
                    if (r.Count() > 1)
                    {
                        List <String> tempos = new List <string>();

                        for (int y = 0; y < r.Count(); y++)
                        {
                            tempos.Add(r[y]["Tempo_Db"].ToString().Split(new char[] { '(' })[1].Replace(")", ""));
                        }

                        toolsProcessed.Add(nomeTool);
                        String tempoTotal = CustomTimes.SumTimes(tempos.ToArray());

                        Bitmap iconeTool = DefineIcone_Ferramenta(dt.Rows[x]["TL_TOOL_TYPE_MILL_ID"].ToString(), dt.Rows[x]["TL_TOOL_TYPE_TURN_ID"].ToString(), dt.Rows[x]["TL_TOOL_TYPE_HOLE_ID"].ToString());
                        dados.Rows.Add(dt.Rows[x]["Posição"].ToString(), nomeTool, dt.Rows[x]["Diâmetro"].ToString(), iconeTool, tempoTotal, r.Count().ToString());
                    }
                    else
                    {
                        toolsProcessed.Add(nomeTool);

                        Bitmap iconeTool = DefineIcone_Ferramenta(dt.Rows[x]["TL_TOOL_TYPE_MILL_ID"].ToString(), dt.Rows[x]["TL_TOOL_TYPE_TURN_ID"].ToString(), dt.Rows[x]["TL_TOOL_TYPE_HOLE_ID"].ToString());
                        dados.Rows.Add(dt.Rows[x]["Posição"].ToString(), nomeTool, dt.Rows[x]["Diâmetro"].ToString(), iconeTool, dt.Rows[x]["Tempo_Db"].ToString(), 1);
                    }
                }

                udgv_Tools.DataSource = dados;
            }
        }