/// <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; } }