private VO.Ciclos TransformaEmListaCorreta(VO.Ciclos c) { var listaLeiturasCiclo = new List <LeiturasCiclo>(); var listaLeiturasTrat = new List <LeiturasTrat>(); listaLeiturasCiclo = LeiturasCicloDAO.ListaLeiturasCiclos(c); listaLeiturasTrat = LeiturasTratDAO.ListaLeiturasTratamento(c); return(new VO.Ciclos()); }
private void Excluir_Click(object sender, EventArgs e) { var checados = new List <DataGridViewRow>(); if (tabCiclos.SelectedIndex == 0) { checados = DtgChecked(dtgAndamento); } else { checados = DtgChecked(dtgFinalizados); } if (checados.Count > 0) { if (MessageBox.Show("Deseja excluir o(s) ciclo(s) selecionado(s)?", "Atenção", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { foreach (var item in checados) { VO.LogMudanca log = new VO.LogMudanca(); log.descricao = "O tratamento nº " + Convert.ToInt32(item.Cells[4].Value) + " do CRG nº " + Convert.ToInt32(item.Cells[2].Value) + " iniciado no dia " + item.Cells[8].Value + " foi excluído"; log.crg = Convert.ToInt32(item.Cells[2].Value); log.data = DateTime.Now; string[] dados = ObterDadosUltimo(); log.responsavel = dados[1]; LogMudancaDAO.insereLogMudanca(log); LeiturasCicloDAO.DeletaLeiturasCiclo(Convert.ToInt32(item.Cells[1].Value), Convert.ToInt32(item.Cells[2].Value)); LeiturasTratDAO.DeletaLeiturasTratamento(Convert.ToInt32(item.Cells[1].Value), Convert.ToInt32(item.Cells[2].Value)); ProdutoCicloDAO.DeletaProdutosCiclo(Convert.ToInt32(item.Cells[1].Value), Convert.ToInt32(item.Cells[2].Value)); CicloDAO.DeletaCiclo(Convert.ToInt32(item.Cells[1].Value), Convert.ToInt32(item.Cells[2].Value)); } CarregaCiclos(); } } else { MessageBox.Show("Não há nenhum ciclo selecionado!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void ImportarCiclo(ImportarCiclo ciclo) { try { // Inclui o ciclo no banco de dados CicloDAO.inserirCiclo(ciclo.ciclo); ciclo.ciclo.id = CicloDAO.retornaId(ciclo.ciclo); // Insere as leituras da ciclo if (ciclo.ciclo.tipoCRG == 2) { LeiturasCicloDAO.inserirLeiturasCiclo150(ciclo.leiturasCiclo, 0, ciclo.ciclo); } else { LeiturasCicloDAO.inserirLeiturasCiclo(ciclo.leiturasCiclo, 0, ciclo.ciclo); } // Caso haja tratamento, insere-se neste método if (ciclo.leiturasTratamento.Count > 0) { if (ciclo.ciclo.tipoCRG == 2) { LeiturasTratDAO.inserirLeiturasTratamento150(ciclo.leiturasTratamento, 0, ciclo.ciclo); } else { LeiturasTratDAO.inserirLeiturasTratamento(ciclo.leiturasTratamento, 0, ciclo.ciclo); } } foreach (var p in ciclo.produtosCiclo) { //Insere produtos do ciclo p.ciclo.id = ciclo.ciclo.id; ProdutoCicloDAO.inserirProdutoCiclo(p); } } catch (Exception exception) { throw new Exception(exception.Message); } }
private void RelTratamento_Load(object sender, EventArgs e) { reportViewer1.LocalReport.EnableExternalImages = true; var fieldInfo = typeof(Microsoft.Reporting.WinForms.RenderingExtension).GetField("m_isVisible", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); foreach (var extension in this.reportViewer1.LocalReport.ListRenderingExtensions()) { if (string.Compare("Excel", extension.Name) == 0) { fieldInfo.SetValue(extension, false); } else if (string.Compare("WORD", extension.Name) == 0) { fieldInfo.SetValue(extension, false); } else if (string.Compare("EXCELOPENXML", extension.Name) == 0) { fieldInfo.SetValue(extension, false); } else if (string.Compare("WORDOPENXML", extension.Name) == 0) { fieldInfo.SetValue(extension, false); } } List <ProdutoCiclo> listaProdutos; if (empresa != "") { int idEmpresa = EmpresaCicloDAO.retornaID(empresa); listaProdutos = ProdutoCicloDAO.listaProdutosCicloPorEmpresa(ciclo, idEmpresa); } else { listaProdutos = ProdutoCicloDAO.listaProdutosCiclo(ciclo); } var listaLeiturasTrat = LeiturasTratDAO.ListaLeiturasTratamento(ciclo); var listaLeiturasCiclo = LeiturasCicloDAO.ListaLeiturasCiclos(ciclo); var strProdutos = string.Empty; foreach (var p in listaProdutos) { strProdutos += p.produto.descricao + " com " + p.volume + " " + p.unidade.unidade + " - " + p.empresa.nome + Environment.NewLine; } RelatorioUtils.GerarQrCode($"Relatório do Controlador Nº {ciclo.crg} {Environment.NewLine}Nº Série: {ciclo.numSerie}{Environment.NewLine}" + $"Tratamento Nº {ciclo.nTrat}{Environment.NewLine}" + $"Nº de leituras: {ciclo.nl}{Environment.NewLine}{Environment.NewLine}" + $"Período do ciclo: {Environment.NewLine}Início: {ciclo.dataInicio}{Environment.NewLine}Fim: {ciclo.dataFim}{Environment.NewLine}{Environment.NewLine}" + $"Temperatura de Controle {Environment.NewLine}Tc: {ciclo.temperaturaControle} ºC{Environment.NewLine}{Environment.NewLine}" + $"Temperatura do Tratamento {Environment.NewLine}Tt: {ciclo.temperaturaTrat} ºC{Environment.NewLine}{Environment.NewLine}" + $"Tempo do Tratamento {Environment.NewLine}tt: {ciclo.tempoTrat} minuto(s){Environment.NewLine}{Environment.NewLine}" + (!string.IsNullOrWhiteSpace(ciclo.VolumeFixo) ? $"Volume total: {Environment.NewLine}" + ciclo.VolumeFixo + (ciclo.IsMetrosCubicos ? "m³" : " peças") + Environment.NewLine + Environment.NewLine : "") + (listaLeiturasTrat?.Count > 0 ? $"Início do Tratamento{Environment.NewLine}Leitura: {ciclo.NLIniTrat}{Environment.NewLine}Data: {ciclo.dataIniTrat}{Environment.NewLine}(concluído)" : "Não realizou tratamento") + Environment.NewLine + Environment.NewLine + $"Responsável Técnico: {Environment.NewLine}{ciclo.responsavel}{Environment.NewLine}{Environment.NewLine}" + $"Operador: {Environment.NewLine}{ciclo.operador}{Environment.NewLine}{Environment.NewLine}" + $"PRODUTOS: {Environment.NewLine}" + strProdutos ); ReportParameter Titulo = new ReportParameter("Titulo"); Titulo.Values.Add("Relatório do Controlador Nº " + ciclo.crg + " (Nº Série: " + ciclo.numSerie + ")"); ReportParameter Periodo = new ReportParameter("Periodo"); Periodo.Values.Add("Período do ciclo: " + ciclo.dataInicio + " - " + ciclo.dataFim); ReportParameter Tc = new ReportParameter("Tc"); Tc.Values.Add(" - Temperatura de Controle (Tc): " + ciclo.temperaturaControle + " ºC"); ReportParameter Tt = new ReportParameter("Tt"); Tt.Values.Add(" - Temperatura do Tratamento (Tt): " + ciclo.temperaturaTrat + " ºC"); ReportParameter tempoT = new ReportParameter("tempoT"); tempoT.Values.Add(" - Tempo do Tratamento (tt): " + ciclo.tempoTrat + " minuto(s)"); ReportParameter Controlador = new ReportParameter("Controlador"); Controlador.Values.Add("Controlador nº " + ciclo.crg + " com " + ciclo.nl + " leituras(NTrat: " + ciclo.nTrat + ")"); ReportParameter Descricao = new ReportParameter("Descricao"); Descricao.Values.Add("Descrição: " + ciclo.descricao); ReportParameter VolumeFixo = new ReportParameter("VolumeFixo"); if (!string.IsNullOrWhiteSpace(ciclo.VolumeFixo)) { VolumeFixo.Values.Add("Volume total: " + ciclo.VolumeFixo + (ciclo.IsMetrosCubicos ? "m³" : " peças")); } else { VolumeFixo.Values.Add(""); } ReportParameter Tratamento = new ReportParameter("Tratamento"); if (listaLeiturasCiclo != null && listaLeiturasTrat.Count > 0) { Tratamento.Values.Add("Início do Tratamento na leitura " + ciclo.NLIniTrat + " - " + ciclo.dataIniTrat + "(concluído)"); } else { Tratamento.Values.Add("Não realizou o tratamento"); } ReportParameter Responsavel = new ReportParameter("Responsavel"); Responsavel.Values.Add("Responsável Técnico: " + ciclo.responsavel); ReportParameter Operador = new ReportParameter("Operador"); Operador.Values.Add("Operador: " + ciclo.operador); ReportParameter Produtos = new ReportParameter("Produtos"); string produtos = ""; foreach (var p in listaProdutos) { produtos = produtos + p.produto.descricao + " com " + p.volume + " " + p.unidade.unidade + " - " + p.empresa.nome + " \n"; } Produtos.Values.Add(produtos); ReportParameter path = new ReportParameter("path"); path.Values.Add(Path.Combine(Path.GetDirectoryName(Application.ExecutablePath) ?? string.Empty, "Image.png")); ReportParameter qrCode = new ReportParameter("QrCodePath"); qrCode.Values.Add(Path.Combine(Path.GetDirectoryName(Application.ExecutablePath) ?? string.Empty, "qrcode.png")); ReportParameter coment = new ReportParameter("Comentario"); coment.Values.Add("Comentário: " + comentario); VO.Empresa empresaCiclo = EmpresaDAO.retornaEmpresa(); if (empresaCiclo != null) { dataSetGeral.Empresa.AddEmpresaRow(empresaCiclo.Nome, empresaCiclo.Endereco, empresaCiclo.Cep, empresaCiclo.Cidade, empresaCiclo.UF, empresaCiclo.Fone, empresaCiclo.Fax, empresaCiclo.CNPJ, empresaCiclo.IE, empresaCiclo.NCredenciamento, empresaCiclo.Logo); } else { dataSetGeral.Empresa.AddEmpresaRow("", "", "", "", -1, "", "", "", "", "", null); } var maskSensores = ciclo.tipoCRG == 150 ? "" : "#0.0"; int aux = 1, nl = 1, nlt = 1; if (listaLeiturasTrat != null && listaLeiturasTrat.Count > 0) { var puloleitura = (ciclo.NLIniTrat - 1) / 10; var lista = populaTratamento(ciclo, listaLeiturasCiclo, listaLeiturasTrat, configRelatorio); foreach (var item in lista.ToList()) { dataSetGeral.Tratamento.AddTratamentoRow(item.NLT.ToString("000"), item.NL.ToString("000"), item.horario, item.T1.ToString(maskSensores), item.T2.ToString(maskSensores), item.T3.ToString(maskSensores), item.T4.ToString(maskSensores)); } var primeiro = true; ReportParameter p1 = null, p2 = null; foreach (var item in lista.ToList()) { if (item.demarca_tratamento == true) { if (primeiro) { p1 = new ReportParameter("nlt_inicio", item.NLT.ToString("000")); primeiro = false; } else { p2 = new ReportParameter("nlt_fim", item.NLT.ToString("000")); break; } } } if (p1 != null) { reportViewer1.LocalReport.SetParameters(p1); } if (p2 != null) { reportViewer1.LocalReport.SetParameters(p2); } Grafico grafico = new Grafico(ciclo, 2, lista); grafico.ShowDialog(this); //Leituras antes do Tratamento /*for (int i = 0; i < ciclo.nlAntesTrat; i += 2) * { * dataSetGeral.Tratamento.AddTratamentoRow("--", nl.ToString("000"), * listaLeiturasCiclo[i].horario, listaLeiturasCiclo[i].T1.ToString("00.0"), * listaLeiturasCiclo[i].T2.ToString("00.0"), * listaLeiturasCiclo[i].T3.ToString("00.0"), listaLeiturasCiclo[i].T4.ToString("00.0")); * nl += 2; * }*/ /*for (int i = 0; i < ciclo.NLIniTrat; i += puloleitura) * { * dataSetGeral.Tratamento.AddTratamentoRow(nlt.ToString("000"), nl.ToString("000"), * listaLeiturasCiclo[i].horario, listaLeiturasCiclo[i].T1.ToString("00.0"), * listaLeiturasCiclo[i].T2.ToString("00.0"), * listaLeiturasCiclo[i].T3.ToString("00.0"), listaLeiturasCiclo[i].T4.ToString("00.0")); * nl += puloleitura; * nlt++; * } * nl = ciclo.NLIniTrat; * //Leituras do Tratamento * puloleitura = listaLeiturasTrat.Count/20; * * for (int i = 0; i < listaLeiturasTrat.Count; i += 2) * { * dataSetGeral.Tratamento.AddTratamentoRow(aux.ToString("000"), nl.ToString("000"), * listaLeiturasTrat[i].horario, listaLeiturasTrat[i].T1.ToString("00.0"), * listaLeiturasTrat[i].T2.ToString("00.0"), * listaLeiturasTrat[i].T3.ToString("00.0"), listaLeiturasTrat[i].T4.ToString("00.0")); * aux += 2; * nl += 2; * } * nl = listaLeiturasCiclo.Count - 20; * //Leituras após o tratamento * for (int i = 0; i < ciclo.nlPostTrat; i += 2) * { * dataSetGeral.Tratamento.AddTratamentoRow("--", nl.ToString("000"), * listaLeiturasCiclo[nl - 1].horario, listaLeiturasCiclo[nl - 1].T1.ToString("00.0"), * listaLeiturasCiclo[nl - 1].T2.ToString("00.0"), * listaLeiturasCiclo[nl - 1].T3.ToString("00.0"), listaLeiturasCiclo[nl - 1].T4.ToString("00.0")); * nl += 2; * }*/ int tamanho = dataSetGeral.Tratamento.Count / 2; int resto = dataSetGeral.Tratamento.Count % 2; if (resto == 1) { for (int i = 0; i < tamanho + 1; i++) { dataSetGeral.Tratamento1.AddTratamento1Row(dataSetGeral.Tratamento[i].NLT, dataSetGeral.Tratamento[i].NL, dataSetGeral.Tratamento[i].Hora, dataSetGeral.Tratamento[i].T1, dataSetGeral.Tratamento[i].T2, dataSetGeral.Tratamento[i].T3, dataSetGeral.Tratamento[i].T4); } for (int i = tamanho + 1; i < dataSetGeral.Tratamento.Count; i++) { dataSetGeral.Tratamento2.AddTratamento2Row(dataSetGeral.Tratamento[i].NLT, dataSetGeral.Tratamento[i].NL, dataSetGeral.Tratamento[i].Hora, dataSetGeral.Tratamento[i].T1, dataSetGeral.Tratamento[i].T2, dataSetGeral.Tratamento[i].T3, dataSetGeral.Tratamento[i].T4); } } if (resto == 0) { for (int i = 0; i < tamanho; i++) { dataSetGeral.Tratamento1.AddTratamento1Row(dataSetGeral.Tratamento[i].NLT, dataSetGeral.Tratamento[i].NL, dataSetGeral.Tratamento[i].Hora, dataSetGeral.Tratamento[i].T1, dataSetGeral.Tratamento[i].T2, dataSetGeral.Tratamento[i].T3, dataSetGeral.Tratamento[i].T4); } for (int i = tamanho; i < dataSetGeral.Tratamento.Count; i++) { dataSetGeral.Tratamento2.AddTratamento2Row(dataSetGeral.Tratamento[i].NLT, dataSetGeral.Tratamento[i].NL, dataSetGeral.Tratamento[i].Hora, dataSetGeral.Tratamento[i].T1, dataSetGeral.Tratamento[i].T2, dataSetGeral.Tratamento[i].T3, dataSetGeral.Tratamento[i].T4); } } } reportViewer1.LocalReport.SetParameters(Titulo); reportViewer1.LocalReport.SetParameters(Periodo); reportViewer1.LocalReport.SetParameters(Tc); reportViewer1.LocalReport.SetParameters(Tt); reportViewer1.LocalReport.SetParameters(tempoT); reportViewer1.LocalReport.SetParameters(Controlador); reportViewer1.LocalReport.SetParameters(Descricao); reportViewer1.LocalReport.SetParameters(Tratamento); reportViewer1.LocalReport.SetParameters(Responsavel); reportViewer1.LocalReport.SetParameters(Operador); reportViewer1.LocalReport.SetParameters(Produtos); reportViewer1.LocalReport.SetParameters(path); reportViewer1.LocalReport.SetParameters(qrCode); reportViewer1.LocalReport.SetParameters(new ReportParameter("ExibirQrCode", "false")); reportViewer1.LocalReport.SetParameters(coment); reportViewer1.LocalReport.SetParameters(VolumeFixo); empresaBindingSource.DataSource = dataSetGeral.Empresa; tratamento1BindingSource.DataSource = dataSetGeral.Tratamento1; comentarioBindingSource.DataSource = dataSetGeral.Comentario; tratamento2BindingSource.DataSource = dataSetGeral.Tratamento2; this.reportViewer1.RefreshReport(); reportViewer1.LocalReport.EnableExternalImages = true; }
private void RelGeral_Load(object sender, EventArgs e) { var fieldInfo = typeof(Microsoft.Reporting.WinForms.RenderingExtension).GetField("m_isVisible", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); foreach (var extension in this.reportViewer1.LocalReport.ListRenderingExtensions()) { if (string.Compare("Excel", extension.Name) == 0) { fieldInfo.SetValue(extension, false); } else if (string.Compare("WORD", extension.Name) == 0) { fieldInfo.SetValue(extension, false); } else if (string.Compare("EXCELOPENXML", extension.Name) == 0) { fieldInfo.SetValue(extension, false); } else if (string.Compare("WORDOPENXML", extension.Name) == 0) { fieldInfo.SetValue(extension, false); } } List <ProdutoCiclo> listaProdutos; if (empresa != "") { int idEmpresa = EmpresaCicloDAO.retornaID(empresa); listaProdutos = ProdutoCicloDAO.listaProdutosCicloPorEmpresa(ciclo, idEmpresa); } else { listaProdutos = ProdutoCicloDAO.listaProdutosCiclo(ciclo); } var listaLeiturasTrat = LeiturasTratDAO.ListaLeiturasTratamento(ciclo); var listaLeiturasCiclo = LeiturasCicloDAO.ListaLeiturasCiclos(ciclo); ReportParameter Titulo = new ReportParameter("Titulo"); Titulo.Values.Add("Relatório do Controlador Nº " + ciclo.crg + " (Nº Série: " + ciclo.numSerie + ")"); ReportParameter Periodo = new ReportParameter("Periodo"); Periodo.Values.Add("Período do ciclo: " + ciclo.dataInicio + " - " + ciclo.dataFim); ReportParameter Tc = new ReportParameter("Tc"); Tc.Values.Add(" - Temperatura de Controle (Tc): " + ciclo.temperaturaControle + " ºC"); ReportParameter Tt = new ReportParameter("Tt"); Tt.Values.Add(" - Temperatura do Tratamento (Tt): " + ciclo.temperaturaTrat + " ºC"); ReportParameter tempoT = new ReportParameter("tempoT"); tempoT.Values.Add(" - Tempo do Tratamento (tt): " + ciclo.tempoTrat + " minuto(s)"); ReportParameter Controlador = new ReportParameter("Controlador"); Controlador.Values.Add("Controlador nº " + ciclo.crg + " com " + ciclo.nl + " leituras(NTrat: " + ciclo.nTrat + ")"); ReportParameter Descricao = new ReportParameter("Descricao"); Descricao.Values.Add("Descrição: " + ciclo.descricao); ReportParameter VolumeFixo = new ReportParameter("VolumeFixo"); if (!string.IsNullOrWhiteSpace(ciclo.VolumeFixo)) { VolumeFixo.Values.Add("Volume total: " + ciclo.VolumeFixo + (ciclo.IsMetrosCubicos ? "m³" : " peças")); } else { VolumeFixo.Values.Add(""); } ReportParameter Tratamento = new ReportParameter("Tratamento"); if (listaLeiturasCiclo != null && listaLeiturasTrat.Count > 0) { Tratamento.Values.Add("Início do Tratamento na leitura " + ciclo.NLIniTrat + " - " + ciclo.dataIniTrat + "(concluído)"); } else { Tratamento.Values.Add("Não realizou o tratamento"); } ReportParameter Responsavel = new ReportParameter("Responsavel"); Responsavel.Values.Add("Responsável Técnico: " + ciclo.responsavel); ReportParameter Operador = new ReportParameter("Operador"); Operador.Values.Add("Operador: " + ciclo.operador); ReportParameter Produtos = new ReportParameter("Produtos"); string produtos = ""; for (int i = 0; i < listaProdutos.Count; i++) { produtos = produtos + listaProdutos[i].produto.descricao + " com " + listaProdutos[i].volume + " " + listaProdutos[i].unidade.unidade + " - " + listaProdutos[i].empresa.nome; if ((i + 1) < listaProdutos.Count) { produtos = produtos + " \n"; } } Produtos.Values.Add(produtos); ReportParameter NLIniTrat = new ReportParameter("NLIniTrat"); NLIniTrat.Values.Add(ciclo.NLIniTrat.ToString("000")); ReportParameter Comentario = new ReportParameter("Comentario"); Comentario.Values.Add("Comentário: " + comentario); VO.Empresa dadosEmpresa = EmpresaDAO.retornaEmpresa(); if (dadosEmpresa != null) { DataSetGeral.Empresa.AddEmpresaRow(dadosEmpresa.Nome, dadosEmpresa.Endereco, dadosEmpresa.Cep, dadosEmpresa.Cidade, dadosEmpresa.UF, dadosEmpresa.Fone, dadosEmpresa.Fax, dadosEmpresa.CNPJ, dadosEmpresa.IE, dadosEmpresa.NCredenciamento, dadosEmpresa.Logo); } else { DataSetGeral.Empresa.AddEmpresaRow("", "", "", "", -1, "", "", "", "", "", null); } var maskSensores = ciclo.tipoCRG == 150 ? "" : "#0.0"; //Forma lista com dados dos Ciclo if (filtro == "") { for (int i = 0; i < listaLeiturasCiclo.Count; i++) { DataSetGeral.Ciclo.AddCicloRow((i + 1).ToString("000"), listaLeiturasCiclo[i].horario, listaLeiturasCiclo[i].T1.ToString(maskSensores), listaLeiturasCiclo[i].T2.ToString(maskSensores), listaLeiturasCiclo[i].T3.ToString(maskSensores), listaLeiturasCiclo[i].T4.ToString(maskSensores)); } } else { int contLista = 0; for (int i = 0; i < filtro.Length; i++) { int n; //Se é numérico if (Int32.TryParse(filtro.Substring(i, 1), out n)) { ordemFiltro.Add(filtro.Substring(i, 1)); int j = i + 1; bool passou = false; //Enquanto não encontra ";" e "-" while (Int32.TryParse(filtro.Substring(j, 1), out n)) { ordemFiltro[contLista] = ordemFiltro[contLista] + filtro.Substring(j, 1); j++; passou = true; } if (passou) { i = j - 1; } contLista++; } //Se e traçinho else if (filtro.Substring(i, 1) == "-") { ordemFiltro[contLista - 1] = ordemFiltro[contLista - 1] + filtro.Substring(i, 2); int j = i + 2; bool passou = false; //Enquanto não encontra ";" e "-" while (Int32.TryParse(filtro.Substring(j, 1), out n)) { ordemFiltro[contLista - 1] = ordemFiltro[contLista - 1] + filtro.Substring(j, 1); j++; passou = true; } if (passou) { i = j - 1; } else { i = i + 1; } } //Se é ; else if (filtro.Substring(i, 1) == ";") { } } for (int i = 0; i < ordemFiltro.Count; i++) { if (ordemFiltro[i].Contains("-")) { string[] numeros = ordemFiltro[i].Split('-'); for (int j = Convert.ToInt32(numeros[0]) - 1; j < Convert.ToInt32(numeros[1]); j++) { DataSetGeral.Ciclo.AddCicloRow((j + 1).ToString("000"), listaLeiturasCiclo[j].horario, listaLeiturasCiclo[j].T1.ToString(maskSensores), listaLeiturasCiclo[j].T2.ToString(maskSensores), listaLeiturasCiclo[i].T3.ToString(maskSensores), listaLeiturasCiclo[j].T4.ToString(maskSensores)); } } else { int j = Convert.ToInt32(ordemFiltro[i]) - 1; DataSetGeral.Ciclo.AddCicloRow((j + 1).ToString("000"), listaLeiturasCiclo[j].horario, listaLeiturasCiclo[j].T1.ToString(maskSensores), listaLeiturasCiclo[j].T2.ToString(maskSensores), listaLeiturasCiclo[i].T3.ToString(maskSensores), listaLeiturasCiclo[j].T4.ToString(maskSensores)); } } } int tamanho = DataSetGeral.Ciclo.Count / 2; if (DataSetGeral.Ciclo.Count % 2 == 0) { for (int i = 0; i < tamanho; i++) { DataSetGeral.Ciclo1.AddCiclo1Row(DataSetGeral.Ciclo[i].NL, DataSetGeral.Ciclo[i].Hora, DataSetGeral.Ciclo[i].T1, DataSetGeral.Ciclo[i].T2, DataSetGeral.Ciclo[i].T3, DataSetGeral.Ciclo[i].T4); } for (int i = tamanho; i < DataSetGeral.Ciclo.Count; i++) { DataSetGeral.Ciclo2.AddCiclo2Row(DataSetGeral.Ciclo[i].NL, DataSetGeral.Ciclo[i].Hora, DataSetGeral.Ciclo[i].T1, DataSetGeral.Ciclo[i].T2, DataSetGeral.Ciclo[i].T3, DataSetGeral.Ciclo[i].T4); } } else { for (int i = 0; i < tamanho + 1; i++) { DataSetGeral.Ciclo1.AddCiclo1Row(DataSetGeral.Ciclo[i].NL, DataSetGeral.Ciclo[i].Hora, DataSetGeral.Ciclo[i].T1, DataSetGeral.Ciclo[i].T2, DataSetGeral.Ciclo[i].T3, DataSetGeral.Ciclo[i].T4); } for (int i = tamanho + 1; i < DataSetGeral.Ciclo.Count; i++) { DataSetGeral.Ciclo2.AddCiclo2Row(DataSetGeral.Ciclo[i].NL, DataSetGeral.Ciclo[i].Hora, DataSetGeral.Ciclo[i].T1, DataSetGeral.Ciclo[i].T2, DataSetGeral.Ciclo[i].T3, DataSetGeral.Ciclo[i].T4); } } int aux = 1, nl = 1; //Forma a tabela com os dados do tratamento //Leituras antes do Tratamento ReportParameter p1 = null, p2 = null; var listaTratamento = RelTratamento.populaTratamento(ciclo, listaLeiturasCiclo, listaLeiturasTrat, configRelatorio); foreach (var item in listaTratamento) { if (item.demarca_tratamento) { if (p1 == null) { p1 = new ReportParameter("nlt_inicio", item.NLT.ToString("000")); } else { p2 = new ReportParameter("nlt_fim", item.NLT.ToString("000")); } } DataSetGeral.Tratamento.AddTratamentoRow(item.NLT.ToString("000"), item.NL.ToString("000"), item.horario, item.T1.ToString(maskSensores), item.T2.ToString(maskSensores), item.T3.ToString(maskSensores), item.T4.ToString(maskSensores)); } /*for (int i = 0; i < ciclo.nlAntesTrat; i += 2) * { * DataSetGeral.Tratamento.AddTratamentoRow("--", nl.ToString("000"), * listaLeiturasCiclo[i].horario, listaLeiturasCiclo[i].T1.ToString("00.0"), * listaLeiturasCiclo[i].T2.ToString("00.0"), * listaLeiturasCiclo[i].T3.ToString("00.0"), listaLeiturasCiclo[i].T4.ToString("00.0")); * nl += 2; * } * nl -= 1; * //Leituras do Tratamento * for (int i = 0; i < listaLeiturasTrat.Count; i += 2) * { * DataSetGeral.Tratamento.AddTratamentoRow(aux.ToString("000"), nl.ToString("000"), * listaLeiturasTrat[i].horario, listaLeiturasTrat[i].T1.ToString("00.0"), * listaLeiturasTrat[i].T2.ToString("00.0"), * listaLeiturasTrat[i].T3.ToString("00.0"), listaLeiturasTrat[i].T4.ToString("00.0")); * aux += 2; * nl += 2; * } * nl = listaLeiturasCiclo.Count - 20; * //Leituras após o tratamento * for (int i = 0; i < ciclo.nlPostTrat; i += 2) * { * DataSetGeral.Tratamento.AddTratamentoRow("--", nl.ToString("000"), * listaLeiturasCiclo[nl - 1].horario, listaLeiturasCiclo[nl - 1].T1.ToString("00.0"), * listaLeiturasCiclo[nl - 1].T2.ToString("00.0"), * listaLeiturasCiclo[nl - 1].T3.ToString("00.0"), * listaLeiturasCiclo[nl - 1].T4.ToString("00.0")); * nl += 2; * }*/ if (p1 != null && p2 != null) { reportViewer1.LocalReport.SetParameters(p1); reportViewer1.LocalReport.SetParameters(p2); } tamanho = DataSetGeral.Tratamento.Count / 2; if (DataSetGeral.Tratamento.Count % 2 == 0) { for (int i = 0; i < tamanho; i++) { DataSetGeral.Tratamento1.AddTratamento1Row(DataSetGeral.Tratamento[i].NLT, DataSetGeral.Tratamento[i].NL, DataSetGeral.Tratamento[i].Hora, DataSetGeral.Tratamento[i].T1, DataSetGeral.Tratamento[i].T2, DataSetGeral.Tratamento[i].T3, DataSetGeral.Tratamento[i].T4); } for (int i = tamanho; i < DataSetGeral.Tratamento.Count; i++) { DataSetGeral.Tratamento2.AddTratamento2Row(DataSetGeral.Tratamento[i].NLT, DataSetGeral.Tratamento[i].NL, DataSetGeral.Tratamento[i].Hora, DataSetGeral.Tratamento[i].T1, DataSetGeral.Tratamento[i].T2, DataSetGeral.Tratamento[i].T3, DataSetGeral.Tratamento[i].T4); } } else { for (int i = 0; i < tamanho + 1; i++) { DataSetGeral.Tratamento1.AddTratamento1Row(DataSetGeral.Tratamento[i].NLT, DataSetGeral.Tratamento[i].NL, DataSetGeral.Tratamento[i].Hora, DataSetGeral.Tratamento[i].T1, DataSetGeral.Tratamento[i].T2, DataSetGeral.Tratamento[i].T3, DataSetGeral.Tratamento[i].T4); } for (int i = tamanho + 1; i < DataSetGeral.Tratamento.Count; i++) { DataSetGeral.Tratamento2.AddTratamento2Row(DataSetGeral.Tratamento[i].NLT, DataSetGeral.Tratamento[i].NL, DataSetGeral.Tratamento[i].Hora, DataSetGeral.Tratamento[i].T1, DataSetGeral.Tratamento[i].T2, DataSetGeral.Tratamento[i].T3, DataSetGeral.Tratamento[i].T4); } } reportViewer1.LocalReport.SetParameters(Titulo); reportViewer1.LocalReport.SetParameters(Periodo); reportViewer1.LocalReport.SetParameters(Tc); reportViewer1.LocalReport.SetParameters(Tt); reportViewer1.LocalReport.SetParameters(tempoT); reportViewer1.LocalReport.SetParameters(Controlador); reportViewer1.LocalReport.SetParameters(Descricao); reportViewer1.LocalReport.SetParameters(Tratamento); reportViewer1.LocalReport.SetParameters(Responsavel); reportViewer1.LocalReport.SetParameters(Operador); reportViewer1.LocalReport.SetParameters(Produtos); reportViewer1.LocalReport.SetParameters(NLIniTrat); reportViewer1.LocalReport.SetParameters(Comentario); reportViewer1.LocalReport.SetParameters(VolumeFixo); EmpresaBindingSource.DataSource = DataSetGeral.Empresa; Tratamento1BindingSource.DataSource = DataSetGeral.Tratamento1; ComentarioBindingSource.DataSource = DataSetGeral.Comentario; Tratamento2BindingSource.DataSource = DataSetGeral.Tratamento2; Ciclo1BindingSource.DataSource = DataSetGeral.Ciclo1; Ciclo2BindingSource.DataSource = DataSetGeral.Ciclo2; this.reportViewer1.RefreshReport(); }
public bool AtualizaCiclo() { List <string> mensagens = new List <string>(); //Lista ciclos em Andamento List <VO.Ciclos> ciclos = CicloDAO.listaCiclosPorSituacaoAll(0); t = new Thread(new ThreadStart(carregarAguarde)); //this.Enabled = false; try { for (int i = 0; i < ciclos.Count; i++) { VO.Ciclos cic = ciclos[i]; List <ProdutoCiclo> listaProdutos = ProdutoCicloDAO.listaProdutosCiclo(cic); VO.Ciclos ciclo = new VO.Ciclos(); string porta = ConfiguracaoDAO.retornaPorta(); bool continua = false; if (!t.IsAlive) { t.Start(); } var srpComm = new SerialPort(porta, 19200, Parity.None, 8, StopBits.One); srpComm.DtrEnable = true; srpComm.RtsEnable = false; srpComm.ReadBufferSize = 100000; srpComm.WriteBufferSize = 100000; Conexao.srpComm = srpComm; Conexao.srpComm.Open(); Thread.Sleep(100); int numBytes = 0; int aux = cic.crg + 63; Conexao.srpComm.Write(((char)19).ToString()); Thread.Sleep(100); Conexao.srpComm.Write(((char)17).ToString()); Thread.Sleep(100); Conexao.srpComm.Write(((char)aux).ToString()); Thread.Sleep(100); if (Conexao.srpComm.BytesToRead != 0) { numBytes = byte.Parse(Conexao.srpComm.BytesToRead.ToString()); Conexao.buffer = new byte[numBytes]; Conexao.srpComm.Read(Conexao.buffer, 0, numBytes); } continua = true; if (continua) { // int cont = 0; //Verifica se é aparelho novo ou antigo switch (Conexao.buffer[0]) { //Versão nova até 150ºC case 167: string binario = decimalParaBinario(cic.nTrat); numTrat1 = binarioParaDecimal(binario.Substring(0, 8)); numTrat2 = binarioParaDecimal(binario.Substring(8, 8)); Conexao.srpComm.Write(((char)5).ToString()); Thread.Sleep(100); Conexao.srpComm.Write(((char)numTrat1).ToString()); Thread.Sleep(100); Conexao.srpComm.Write(((char)numTrat2).ToString()); Thread.Sleep(8000); int contador = 0; do { if (Conexao.srpComm.BytesToRead != 0) { numBytes = int.Parse(Conexao.srpComm.BytesToRead.ToString()); Conexao.buffer = new byte[numBytes]; Conexao.srpComm.Read(Conexao.buffer, 0, numBytes); } contador++; } while (Conexao.srpComm.BytesToRead != 0); int checksum = 0; //Verifica se o ciclo ainda está na memória do equipamento if (Conexao.buffer.Length > 2) { for (int j = 0; j < Conexao.buffer.Length - 2; j++) { checksum ^= Conexao.buffer[j]; } if (checksum == Conexao.buffer[Conexao.buffer.Length - 2]) { int aux2 = Conexao.buffer.Length - 10; cic.numSerie = ((char)Conexao.buffer[aux2]).ToString() + ((char)Conexao.buffer[aux2 + 1]).ToString() + ((char)Conexao.buffer[aux2 + 2]).ToString() + ((char)Conexao.buffer[aux2 + 3]).ToString() + ((char)Conexao.buffer[aux2 + 4]).ToString() + ((char)Conexao.buffer[aux2 + 5]).ToString() + ((char)Conexao.buffer[aux2 + 6]).ToString() + ((char)Conexao.buffer[aux2 + 7]).ToString(); cic.nTrat = (Conexao.buffer[0] * 256) + Conexao.buffer[1]; string dataInicio = string.Concat((Conexao.buffer[7] / 16), (Conexao.buffer[7] % 16)) + "/" + string.Concat((Conexao.buffer[8] / 16), (Conexao.buffer[8] % 16)) + "/20" + string.Concat((Conexao.buffer[9] / 16), (Conexao.buffer[9] % 16)) + " " + string.Concat((Conexao.buffer[5] / 16), (Conexao.buffer[5] % 16)) + ":" + string.Concat((Conexao.buffer[4] / 16), (Conexao.buffer[4] % 16)); cic.dataInicio = Convert.ToDateTime(dataInicio); cic.dataColeta = DateTime.Now; bool retorno = false; int indiceLeitCiclo = LeiturasCicloDAO.retornaQtdeLeituras(cic.id, cic.crg); int indiceLeitTrat = LeiturasTratDAO.retornaQtdeLeituras(cic.id, cic.crg); retorno = ConexaoBO.EnviaBancodeDados(cic, Conexao.buffer, true, listaProdutos, indiceLeitCiclo, indiceLeitTrat, true); if (retorno) { AtualizaUltimo(cic.operador, cic.responsavel); mensagens.Add("O ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg + " foi atualizado com sucesso."); } } else { MessageBox.Show("Erro no checksum.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { mensagens.Add("O ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg + " nao está mais na memória do equipamento."); } break; //Versão nova até 102ºC case 166: string binario1 = decimalParaBinario(cic.nTrat); numTrat1 = binarioParaDecimal(binario1.Substring(0, 8)); numTrat2 = binarioParaDecimal(binario1.Substring(8, 8)); Conexao.srpComm.Write(((char)5).ToString()); Thread.Sleep(100); Conexao.srpComm.Write(((char)numTrat1).ToString()); Thread.Sleep(100); Conexao.srpComm.Write(((char)numTrat2).ToString()); Thread.Sleep(8000); int contador1 = 0; do { if (Conexao.srpComm.BytesToRead != 0) { numBytes = int.Parse(Conexao.srpComm.BytesToRead.ToString()); Conexao.buffer = new byte[numBytes]; Conexao.srpComm.Read(Conexao.buffer, 0, numBytes); } contador1++; } while (Conexao.srpComm.BytesToRead != 0); int checksum1 = 0; //Verifica se o ciclo ainda está na memória do equipamento if (Conexao.buffer.Length > 2) { for (int j = 0; j < Conexao.buffer.Length - 2; j++) { checksum1 ^= Conexao.buffer[j]; } if (checksum1 == Conexao.buffer[Conexao.buffer.Length - 2]) { int aux2 = Conexao.buffer.Length - 10; ciclo.numSerie = ((char)Conexao.buffer[aux2]).ToString() + ((char)Conexao.buffer[aux2 + 1]).ToString() + ((char)Conexao.buffer[aux2 + 2]).ToString() + ((char)Conexao.buffer[aux2 + 3]).ToString() + ((char)Conexao.buffer[aux2 + 4]).ToString() + ((char)Conexao.buffer[aux2 + 5]).ToString() + ((char)Conexao.buffer[aux2 + 6]).ToString() + ((char)Conexao.buffer[aux2 + 7]).ToString(); ciclo.nTrat = (Conexao.buffer[0] * 256) + Conexao.buffer[1]; string dataInicio = string.Concat((Conexao.buffer[7] / 16), (Conexao.buffer[7] % 16)) + "/" + string.Concat((Conexao.buffer[8] / 16), (Conexao.buffer[8] % 16)) + "/20" + string.Concat((Conexao.buffer[9] / 16), (Conexao.buffer[9] % 16)) + " " + string.Concat((Conexao.buffer[5] / 16), (Conexao.buffer[5] % 16)) + ":" + string.Concat((Conexao.buffer[4] / 16), (Conexao.buffer[4] % 16)); ciclo.dataInicio = Convert.ToDateTime(dataInicio); ciclo.dataColeta = DateTime.Now; bool retorno = false; int indiceLeitCiclo = LeiturasCicloDAO.retornaQtdeLeituras(ciclo.id, ciclo.crg); int indiceLeitTrat = LeiturasTratDAO.retornaQtdeLeituras(ciclo.id, ciclo.crg); retorno = ConexaoBO.EnviaBancodeDados(ciclo, Conexao.buffer, true, listaProdutos, indiceLeitCiclo, indiceLeitTrat, false); if (retorno) { AtualizaUltimo(cic.operador, cic.responsavel); mensagens.Add("O ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg + " foi atualizado com sucesso."); } } else { mensagens.Add("Não foi possível atualizar o ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg + ". Erro de Checksum."); } } else { mensagens.Add("O ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg + " nao está mais na memória do equipamento."); } break; //Versão antiga até 102ºC apenas case 165: Conexao.srpComm.Write(((char)6).ToString()); Thread.Sleep(8000); int cont = 0; do { if (Conexao.srpComm.BytesToRead != 0) { numBytes = int.Parse(Conexao.srpComm.BytesToRead.ToString()); Conexao.buffer = new byte[numBytes]; Conexao.srpComm.Read(Conexao.buffer, 0, numBytes); } cont++; } while (Conexao.srpComm.BytesToRead != 0); int chk = 0; for (int j = 0; j < Conexao.buffer.Length - 2; j++) { chk ^= Conexao.buffer[j]; } if (((Conexao.buffer[5] * 256) + Conexao.buffer[2]) == cic.nTrat) { if (chk == Conexao.buffer[Conexao.buffer.Length - 2]) { int aux2 = Conexao.buffer.Length - 10; cic.numSerie = ((char)Conexao.buffer[aux2]).ToString() + ((char)Conexao.buffer[aux2 + 1]).ToString() + ((char)Conexao.buffer[aux2 + 2]).ToString() + ((char)Conexao.buffer[aux2 + 3]).ToString() + ((char)Conexao.buffer[aux2 + 4]).ToString() + ((char)Conexao.buffer[aux2 + 5]).ToString() + ((char)Conexao.buffer[aux2 + 6]).ToString() + ((char)Conexao.buffer[aux2 + 7]).ToString(); cic.nTrat = (Conexao.buffer[5] * 256) + Conexao.buffer[2]; string dataInicio = string.Concat((Conexao.buffer[6] / 16), (Conexao.buffer[6] % 16)) + "/" + string.Concat((Conexao.buffer[7] / 16), (Conexao.buffer[7] % 16)) + "/20" + string.Concat((Conexao.buffer[8] / 16), (Conexao.buffer[8] % 16)) + " " + string.Concat((Conexao.buffer[4] / 16), (Conexao.buffer[4] % 16)) + ":" + string.Concat((Conexao.buffer[3] / 16), (Conexao.buffer[3] % 16)); cic.dataInicio = Convert.ToDateTime(dataInicio); cic.dataColeta = DateTime.Now; bool retorno = false; int indiceLeitCiclo = LeiturasCicloDAO.retornaQtdeLeituras(cic.id, cic.crg); int indiceLeitTrat = LeiturasTratDAO.retornaQtdeLeituras(cic.id, cic.crg); retorno = ConexaoBO.EnviaBancodeDadosAntigo(cic, Conexao.buffer, true, listaProdutos, indiceLeitCiclo, indiceLeitTrat); if (retorno) { AtualizaUltimo(cic.operador, cic.responsavel); mensagens.Add("O ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg + " foi atualizado com sucesso."); } } else { mensagens.Add("Não foi possível atualizar o ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg + ". Erro de Checksum."); } } else { mensagens.Add("O ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg + " não está mais no histórico."); } break; } } Conexao.srpComm.Close(); Thread.Sleep(100); } t.Abort(); if (mensagens.Count > 0) { StatusAtualizacao frm = new StatusAtualizacao(mensagens); frm.ShowDialog(this); } return(true); } catch (Exception error) { VO.LogErro logErro = new VO.LogErro(); logErro.crg = 0; logErro.descricao = "Erro ao tentar receber o ciclo"; logErro.maisDetalhes = error.Message + " " + error.StackTrace; logErro.data = DateTime.Now; LogErroDAO.inserirLogErro(logErro, logErro.crg); t.Abort(); return(false); } }
public static bool EnviaBancodeDadosAntigo(Ciclos ciclo, byte[] buffer, bool atualiza, List <ProdutoCiclo> listaProdutos, int indiceLeitCiclo, int indiceLeitTrat) { try { //Novo histórico List <LeiturasTrat> leiturasTrat = new List <LeiturasTrat>(); List <LeiturasCiclo> leiturasCiclo = new List <LeiturasCiclo>(); if ((Conexao.buffer[0] & 128) == 0) { ciclo.baseTempo = 0; } else { ciclo.baseTempo = 1; } ciclo.nl = ((Conexao.buffer[0] & 127) * 256) + Conexao.buffer[1]; string dataFim = string.Concat((Conexao.buffer[12] / 16), (Conexao.buffer[12] % 16)) + "/" + string.Concat((Conexao.buffer[13] / 16), (Conexao.buffer[13] % 16)) + "/20" + string.Concat((Conexao.buffer[14] / 16), (Conexao.buffer[14] % 16)) + " " + string.Concat((Conexao.buffer[10] / 16), (Conexao.buffer[10] % 16)) + ":" + string.Concat((Conexao.buffer[9] / 16), (Conexao.buffer[9] % 16)); ciclo.dataFim = Convert.ToDateTime(dataFim); //Sensor ciclo.sensor = Conexao.buffer[16] & 240; int cont = 20; ciclo.tipoCRG = 100; //Qtde leituras do Tratamento ciclo.nlt = ((Conexao.buffer.Length - ((ciclo.nl * 8) + 42)) / 8); //leituras do Ciclo if (ciclo.nl > 0) { for (int i = 0; i < ciclo.nl; i++) { LeiturasCiclo leitura = new LeiturasCiclo(); int auxL = (Conexao.buffer[cont] * 16) + (Conexao.buffer[cont + 1] / 16); if (auxL < 1000) { leitura.T1 = auxL / 10.0; } else { leitura.T1 = 999 / 10.0; } auxL = ((Conexao.buffer[cont + 1] % 16) * 256) + Conexao.buffer[cont + 2]; if (auxL < 1000) { leitura.T2 = auxL / 10.0; } else { leitura.T2 = 999 / 10.0; } auxL = (Conexao.buffer[cont + 3] * 16) + (Conexao.buffer[cont + 4] / 16); if (auxL < 1000) { leitura.T3 = auxL / 10.0; } else { leitura.T3 = 999 / 10.0; } auxL = ((Conexao.buffer[cont + 4] % 16) * 256) + Conexao.buffer[cont + 5]; if (auxL < 1000) { leitura.T4 = auxL / 10.0; } else { leitura.T4 = 999 / 10.0; } leitura.horario = string.Concat((Conexao.buffer[cont + 7] / 16), (Conexao.buffer[cont + 7] % 16)) + ":" + string.Concat((Conexao.buffer[cont + 6] / 16), (Conexao.buffer[cont + 6] % 16)); leiturasCiclo.Add(leitura); cont = cont + 8; } } //Temperatura de Controle e do Tratamento int auxT = (Conexao.buffer[cont] * 256) + Conexao.buffer[cont + 1]; if (auxT < 1000) { ciclo.temperaturaControle = auxT / 10; } else { ciclo.temperaturaControle = 999 / 10; } auxT = (Conexao.buffer[cont + 2] * 256) + Conexao.buffer[cont + 3]; if (auxT < 1000) { ciclo.temperaturaTrat = auxT / 10; } else { ciclo.temperaturaTrat = 999 / 10; } //Tempo Tratamento ciclo.tempoTrat = Conexao.buffer[cont + 4]; if (ciclo.tempoTrat > 100) { ciclo.tempoTrat = 99; } //Data e hora inicio do tratamento String dataInicioTrat = string.Concat((Conexao.buffer[cont + 8] / 16), (Conexao.buffer[cont + 8] % 16)) + "/" + string.Concat((Conexao.buffer[cont + 9] / 16), (Conexao.buffer[cont + 9] % 16)) + "/20" + string.Concat((Conexao.buffer[cont + 10] / 16), (Conexao.buffer[cont + 10] % 16)) + " " + string.Concat((Conexao.buffer[cont + 6] / 16), (Conexao.buffer[cont + 6] % 16)) + ":" + string.Concat((Conexao.buffer[cont + 5] / 16), (Conexao.buffer[cont + 5] % 16)); ciclo.dataIniTrat = Convert.ToDateTime(dataInicioTrat); //Leitura inicio do Tratamento ciclo.NLIniTrat = ((Conexao.buffer[cont + 11] & 127) * 256) + Conexao.buffer[cont + 12]; //leituras do Tratamento if (ciclo.nlt > 0) { cont = cont + 13; for (int i = 0; i < ciclo.nlt; i++) { LeiturasTrat leitura = new LeiturasTrat(); int auxL = (Conexao.buffer[cont] * 16) + (Conexao.buffer[cont + 1] / 16); if (auxL < 1000) { leitura.T1 = auxL / 10.0; } else { leitura.T1 = 999 / 10.0; } auxL = ((Conexao.buffer[cont + 1] % 16) * 256) + Conexao.buffer[cont + 2]; if (auxL < 1000) { leitura.T2 = auxL / 10.0; } else { leitura.T2 = 999 / 10.0; } auxL = (Conexao.buffer[cont + 3] * 16) + (Conexao.buffer[cont + 4] / 16); if (auxL < 1000) { leitura.T3 = auxL / 10.0; } else { leitura.T3 = 999 / 10.0; } auxL = ((Conexao.buffer[cont + 4] % 16) * 256) + Conexao.buffer[cont + 5]; if (auxL < 1000) { leitura.T4 = auxL / 10.0; } else { leitura.T4 = 999 / 10.0; } leitura.horario = string.Concat((Conexao.buffer[cont + 7] / 16), (Conexao.buffer[cont + 7] % 16)) + ":" + string.Concat((Conexao.buffer[cont + 6] / 16), (Conexao.buffer[cont + 6] % 16)); leiturasTrat.Add(leitura); cont = cont + 8; } } ciclo.nlAntesTrat = ciclo.NLIniTrat - 1; int iniResf; if (ciclo.baseTempo == 0) { iniResf = ciclo.NLIniTrat + ciclo.tempoTrat; } else { iniResf = ciclo.NLIniTrat + 1; } if (ciclo.nl - iniResf >= 19 && ciclo.baseTempo == 0) { ciclo.nlPostTrat = 20; } else if (ciclo.nl - iniResf >= 9 && ciclo.baseTempo == 1) { ciclo.nlPostTrat = 10; } else if (ciclo.nl >= iniResf) { ciclo.nlPostTrat = ((ciclo.nl - iniResf) + 1); } ciclo.nlPostTrat = Conexao.buffer[28]; ciclo.situacao = 0; if (!atualiza) { bool retorno = CicloDAO.inserirCiclo(ciclo); if (retorno) { ciclo.id = CicloDAO.retornaId(ciclo); foreach (var l in listaProdutos) { l.ciclo = ciclo; ProdutoCicloDAO.inserirProdutoCiclo(l); } if (leiturasCiclo.Count > 0) { LeiturasCicloDAO.inserirLeiturasCiclo(leiturasCiclo, 0, ciclo); } if (leiturasTrat.Count > 0) { LeiturasTratDAO.inserirLeiturasTratamento(leiturasTrat, 0, ciclo); } } } else { bool retorno = CicloDAO.alteraCiclo(ciclo); if (retorno) { ProdutoCicloDAO.DeletaProdutosCiclo(ciclo.id, ciclo.crg); for (int i = 0; i < listaProdutos.Count; i++) { listaProdutos[i].ciclo = ciclo; ProdutoCicloDAO.inserirProdutoCiclo(listaProdutos[i]); } if (leiturasCiclo.Count > 0) { LeiturasCicloDAO.inserirLeiturasCiclo(leiturasCiclo, indiceLeitCiclo, ciclo); } if (leiturasTrat.Count > 0) { LeiturasTratDAO.inserirLeiturasTratamento(leiturasTrat, indiceLeitTrat, ciclo); } } } return(true); } catch (Exception error) { LogErro logErro = new LogErro(); logErro.crg = ciclo.crg; logErro.data = DateTime.Now; logErro.descricao = "Erro ao tentar processar os dados do Tratamento e salvá-lo"; logErro.maisDetalhes = error.Message + " " + error.StackTrace; return(false); } }
public static bool EnviaBancodeDados(Ciclos ciclo, byte[] buffer, bool atualiza, List <ProdutoCiclo> listaProdutos, int indiceLeitCiclo, int indiceLeitTrat, bool crg150) { try { //Novo histórico List <LeiturasTrat> leiturasTrat = new List <LeiturasTrat>(); List <LeiturasCiclo> leiturasCiclo = new List <LeiturasCiclo>(); ciclo.nl = (Conexao.buffer[2] * 256) + Conexao.buffer[3]; string dataFim = string.Concat((Conexao.buffer[13] / 16), (Conexao.buffer[13] % 16)) + "/" + string.Concat((Conexao.buffer[14] / 16), (Conexao.buffer[14] % 16)) + "/20" + string.Concat((Conexao.buffer[15] / 16), (Conexao.buffer[15] % 16)) + " " + string.Concat((Conexao.buffer[11] / 16), (Conexao.buffer[11] % 16)) + ":" + string.Concat((Conexao.buffer[10] / 16), (Conexao.buffer[10] % 16)); ciclo.dataFim = Convert.ToDateTime(dataFim); string dataIniTrat = string.Concat((Conexao.buffer[19] / 16), (Conexao.buffer[19] % 16)) + "/" + string.Concat((Conexao.buffer[20] / 16), (Conexao.buffer[20] % 16)) + "/20" + string.Concat((Conexao.buffer[21] / 16), (Conexao.buffer[21] % 16)) + " " + string.Concat((Conexao.buffer[17] / 16), (Conexao.buffer[17] % 16)) + ":" + string.Concat((Conexao.buffer[16] / 16), (Conexao.buffer[16] % 16)); ciclo.dataIniTrat = Convert.ToDateTime(dataIniTrat); //Leitura inicio do Tratamento ciclo.NLIniTrat = ((Conexao.buffer[22] & 127) * 256) + Conexao.buffer[23]; //Qtde leituras do Tratamento ciclo.nlt = Conexao.buffer[24]; //Flags string flags = decimalParaBinario(Conexao.buffer[25]); ciclo.baseTempo = Convert.ToInt32(flags.Substring(6, 1)); //TControl e Histerese string aux = decimalParaBinario(Conexao.buffer[26]); ciclo.tControl = binarioParaDecimal(aux.Substring(0, 4)); ciclo.histerese = binarioParaDecimal(aux.Substring(4, 4)); ciclo.nlAntesTrat = Conexao.buffer[27]; ciclo.nlPostTrat = Conexao.buffer[28]; //Tempo Tratamento ciclo.tempoTrat = Conexao.buffer[33]; //Sensor ciclo.sensor = Conexao.buffer[26] & 240; if (crg150) { //Tipo 1 é normal e 2 é 150 ciclo.tipoCRG = 150; //Temperatura de Controle e do Tratamento int auxT = (Conexao.buffer[29] * 256) + Conexao.buffer[30]; if (auxT < 150) { ciclo.temperaturaControle = auxT; } else { ciclo.temperaturaControle = 150; } auxT = (Conexao.buffer[31] * 256) + Conexao.buffer[32]; if (auxT < 150) { ciclo.temperaturaTrat = auxT; } else { ciclo.temperaturaTrat = 150; } //leituras do Ciclo int cont = 34; if (ciclo.nl > 0) { for (int i = 0; i < ciclo.nl; i++) { LeiturasCiclo leitura = new LeiturasCiclo(); int auxL = (Conexao.buffer[cont + 2] * 16) + (Conexao.buffer[cont + 3] / 16); if (auxL < 150) { leitura.T1 = auxL; } else { leitura.T1 = 150; } auxL = ((Conexao.buffer[cont + 3] % 16) * 256) + Conexao.buffer[cont + 4]; if (auxL < 150) { leitura.T2 = auxL; } else { leitura.T2 = 150; } auxL = (Conexao.buffer[cont + 5] * 16) + (Conexao.buffer[cont + 6] / 16); if (auxL < 150) { leitura.T3 = auxL; } else { leitura.T3 = 150; } auxL = ((Conexao.buffer[cont + 6] % 16) * 256) + Conexao.buffer[cont + 7]; if (auxL < 150) { leitura.T4 = auxL; } else { leitura.T4 = 150; } leitura.horario = string.Concat((Conexao.buffer[cont] / 16), (Conexao.buffer[cont] % 16)) + ":" + string.Concat((Conexao.buffer[cont + 1] / 16), (Conexao.buffer[cont + 1] % 16)); leiturasCiclo.Add(leitura); cont = cont + 8; } } //leituras do Tratamento if (ciclo.nlt > 0) { for (int i = 0; i < ciclo.nlt; i++) { LeiturasTrat leitura = new LeiturasTrat(); int auxL = (Conexao.buffer[cont + 2] * 16) + (Conexao.buffer[cont + 3] / 16); if (auxL < 150) { leitura.T1 = auxL; } else { leitura.T1 = 150; } auxL = ((Conexao.buffer[cont + 3] % 16) * 256) + Conexao.buffer[cont + 4]; if (auxL < 150) { leitura.T2 = auxL; } else { leitura.T2 = 150; } auxL = (Conexao.buffer[cont + 5] * 16) + (Conexao.buffer[cont + 6] / 16); if (auxL < 150) { leitura.T3 = auxL; } else { leitura.T3 = 150; } auxL = ((Conexao.buffer[cont + 6] % 16) * 256) + Conexao.buffer[cont + 7]; if (auxL < 150) { leitura.T4 = auxL; } else { leitura.T4 = 150; } string binario = decimalParaBinario(Conexao.buffer[cont]); auxL = binarioParaDecimal(binario.Substring(1, 7)); leitura.horario = string.Concat((auxL / 16), (auxL % 16)) + ":" + string.Concat((Conexao.buffer[cont + 1] / 16), (Conexao.buffer[cont + 1] % 16)); leiturasTrat.Add(leitura); cont = cont + 8; } } } else { //1 é normal e 2 é 150 ciclo.tipoCRG = 100; //Temperatura de Controle e do Tratamento int auxT = (Conexao.buffer[29] * 256) + Conexao.buffer[30]; if (auxT < 1000) { ciclo.temperaturaControle = auxT / 10; } else { ciclo.temperaturaControle = 999 / 10; } auxT = (Conexao.buffer[31] * 256) + Conexao.buffer[32]; if (auxT < 1000) { ciclo.temperaturaTrat = auxT / 10; } else { ciclo.temperaturaTrat = 999 / 10; } //leituras do Ciclo int cont = 34; if (ciclo.nl > 0) { for (int i = 0; i < ciclo.nl; i++) { LeiturasCiclo leitura = new LeiturasCiclo(); int auxL = (Conexao.buffer[cont + 2] * 16) + (Conexao.buffer[cont + 3] / 16); if (auxL < 1000) { leitura.T1 = auxL / 10.0; } else { leitura.T1 = 999 / 10.0; } auxL = ((Conexao.buffer[cont + 3] % 16) * 256) + Conexao.buffer[cont + 4]; if (auxL < 1000) { leitura.T2 = auxL / 10.0; } else { leitura.T2 = 999 / 10.0; } auxL = (Conexao.buffer[cont + 5] * 16) + (Conexao.buffer[cont + 6] / 16); if (auxL < 1000) { leitura.T3 = auxL / 10.0; } else { leitura.T3 = 999 / 10.0; } auxL = ((Conexao.buffer[cont + 6] % 16) * 256) + Conexao.buffer[cont + 7]; if (auxL < 1000) { leitura.T4 = auxL / 10.0; } else { leitura.T4 = 999 / 10.0; } leitura.horario = string.Concat((Conexao.buffer[cont] / 16), (Conexao.buffer[cont] % 16)) + ":" + string.Concat((Conexao.buffer[cont + 1] / 16), (Conexao.buffer[cont + 1] % 16)); leiturasCiclo.Add(leitura); cont = cont + 8; } } //leituras do Tratamento if (ciclo.nlt > 0) { for (int i = 0; i < ciclo.nlt; i++) { LeiturasTrat leitura = new LeiturasTrat(); int auxL = (Conexao.buffer[cont + 2] * 16) + (Conexao.buffer[cont + 3] / 16); if (auxL < 1000) { leitura.T1 = auxL / 10.0; } else { leitura.T1 = 999 / 10.0; } auxL = ((Conexao.buffer[cont + 3] % 16) * 256) + Conexao.buffer[cont + 4]; if (auxL < 1000) { leitura.T2 = auxL / 10.0; } else { leitura.T2 = 999 / 10.0; } auxL = (Conexao.buffer[cont + 5] * 16) + (Conexao.buffer[cont + 6] / 16); if (auxL < 1000) { leitura.T3 = auxL / 10.0; } else { leitura.T3 = 999 / 10.0; } auxL = ((Conexao.buffer[cont + 6] % 16) * 256) + Conexao.buffer[cont + 7]; if (auxL < 1000) { leitura.T4 = auxL / 10.0; } else { leitura.T4 = 999 / 10.0; } string binario = decimalParaBinario(Conexao.buffer[cont]); auxL = binarioParaDecimal(binario.Substring(1, 7)); leitura.horario = string.Concat((auxL / 16), (auxL % 16)) + ":" + string.Concat((Conexao.buffer[cont + 1] / 16), (Conexao.buffer[cont + 1] % 16)); leiturasTrat.Add(leitura); cont = cont + 8; } } } ciclo.situacao = 0; if (!atualiza) { bool retorno = CicloDAO.inserirCiclo(ciclo); if (retorno) { ciclo.id = CicloDAO.retornaId(ciclo); foreach (var l in listaProdutos) { l.ciclo = ciclo; ProdutoCicloDAO.inserirProdutoCiclo(l); } if (leiturasCiclo.Count > 0) { LeiturasCicloDAO.inserirLeiturasCiclo(leiturasCiclo, 0, ciclo); } if (leiturasTrat.Count > 0) { LeiturasTratDAO.inserirLeiturasTratamento(leiturasTrat, 0, ciclo); } } } else { bool retorno = CicloDAO.alteraCiclo(ciclo); if (retorno) { ProdutoCicloDAO.DeletaProdutosCiclo(ciclo.id, ciclo.crg); for (int i = 0; i < listaProdutos.Count; i++) { listaProdutos[i].ciclo = ciclo; ProdutoCicloDAO.inserirProdutoCiclo(listaProdutos[i]); } if (leiturasCiclo.Count > 0) { LeiturasCicloDAO.inserirLeiturasCiclo(leiturasCiclo, indiceLeitCiclo, ciclo); } if (leiturasTrat.Count > 0) { LeiturasTratDAO.inserirLeiturasTratamento(leiturasTrat, indiceLeitTrat, ciclo); } } } return(true); } catch (Exception error) { LogErro logErro = new LogErro(); logErro.crg = ciclo.crg; logErro.data = DateTime.Now; logErro.descricao = "Erro ao tentar processar os dados do Tratamento e salvá-lo"; logErro.maisDetalhes = error.Message + " " + error.StackTrace; return(false); } }
private void DetalhesCiclo_Load(object sender, EventArgs e) { var config = ConfiguracaoDAO.PegarConfigRelatorio(); VO.Ciclos ciclo = CicloDAO.buscaCiclo(crg, idCiclo); List <LeiturasCiclo> listaLeiturasCiclo = LeiturasCicloDAO.ListaLeiturasCiclos(ciclo); List <LeiturasTrat> listaLeiturasTrat = LeiturasTratDAO.ListaLeiturasTratamento(ciclo); var dados = new List <string>(); if (string.IsNullOrEmpty(ciclo.versaoEquip)) { dados.Add("Controlador nº" + crg.ToString("##") + " com " + ciclo.nl + " leituras(NTRAT: " + ciclo.nTrat.ToString("000") + ") - Nº Série " + ciclo.numSerie); } else { dados.Add("Controlador nº" + crg.ToString("##") + " com " + ciclo.nl + " leituras(NTRAT: " + ciclo.nTrat.ToString("000") + ") " + ciclo.versaoEquip + " - Nº Série " + ciclo.numSerie); } dados.Add("Valores programados no SET POINT do equipamento"); dados.Add(" - Temperatura de Controle(Tc): " + ciclo.temperaturaControle.ToString("##.0") + "ºC"); dados.Add(" - Temperatura do Tratamento(Tt): " + ciclo.temperaturaTrat.ToString("##.0") + "ºC"); dados.Add(" - Tempo do Tratamento(tt): " + ciclo.tempoTrat + " minuto(s)"); dados.Add("Período do ciclo: " + ciclo.dataInicio + " - " + ciclo.dataFim); dados.Add("Descrição: " + ciclo.descricao); if (listaLeiturasTrat.Count > 0 && ciclo.nlt == ciclo.tempoTrat) { dados.Add("Início do tratamento na leitura " + ciclo.NLIniTrat + " - " + ciclo.dataIniTrat + " (concluído)"); } else { dados.Add("Não realizou o tratamento"); } dados.Add("Responsável Técnico: " + ciclo.responsavel); dados.Add("Operador: " + ciclo.operador); if (!string.IsNullOrWhiteSpace(ciclo.VolumeFixo)) { dados.Add("Volume total: " + ciclo.VolumeFixo + (ciclo.IsMetrosCubicos ? "m³" : " peça(s)")); } else { dados.Add(""); } switch (ciclo.sensor) { case 0: dtgTratamento.Columns["T1T"].HeaderText = "T1 Mad"; dtgTratamento.Columns["T2T"].HeaderText = "T2 Amb"; dtgTratamento.Columns["T3T"].HeaderText = "T3 Amb"; dtgTratamento.Columns["T4T"].HeaderText = "T4 Amb"; dtgCiclo.Columns["T1"].HeaderText = "T1 Mad"; dtgCiclo.Columns["T2"].HeaderText = "T2 Amb"; dtgCiclo.Columns["T3"].HeaderText = "T3 Amb"; dtgCiclo.Columns["T4"].HeaderText = "T4 Amb"; break; case 16: dtgTratamento.Columns["T1T"].HeaderText = "T1 Mad"; dtgTratamento.Columns["T2T"].HeaderText = "T2 Amb"; dtgTratamento.Columns["T3T"].HeaderText = "T3 Amb"; dtgTratamento.Columns["T4T"].HeaderText = "T4 Amb"; dtgCiclo.Columns["T1"].HeaderText = "T1 Mad"; dtgCiclo.Columns["T2"].HeaderText = "T2 Amb"; dtgCiclo.Columns["T3"].HeaderText = "T3 Amb"; dtgCiclo.Columns["T4"].HeaderText = "T4 Amb"; break; case 32: dtgTratamento.Columns["T1T"].HeaderText = "T1 Mad"; dtgTratamento.Columns["T2T"].HeaderText = "T2 Amb"; dtgTratamento.Columns["T3T"].HeaderText = "T3 Amb"; dtgTratamento.Columns["T4T"].HeaderText = "T4 Amb"; dtgCiclo.Columns["T1"].HeaderText = "T1 Mad"; dtgCiclo.Columns["T2"].HeaderText = "T2 Amb"; dtgCiclo.Columns["T3"].HeaderText = "T3 Amb"; dtgCiclo.Columns["T4"].HeaderText = "T4 Amb"; break; case 48: dtgTratamento.Columns["T1T"].HeaderText = "T1 Mad"; dtgTratamento.Columns["T2T"].HeaderText = "T2 Amb"; dtgTratamento.Columns["T3T"].HeaderText = "T3 Amb"; dtgTratamento.Columns["T4T"].HeaderText = "T4 Amb"; dtgCiclo.Columns["T1"].HeaderText = "T1 Mad"; dtgCiclo.Columns["T2"].HeaderText = "T2 Amb"; dtgCiclo.Columns["T3"].HeaderText = "T3 Amb"; dtgCiclo.Columns["T4"].HeaderText = "T4 Amb"; break; case 64: dtgTratamento.Columns["T1T"].HeaderText = "T1 Mad"; dtgTratamento.Columns["T2T"].HeaderText = "T2 Mad"; dtgTratamento.Columns["T3T"].HeaderText = "T3 Amb"; dtgTratamento.Columns["T4T"].HeaderText = "T4 Amb"; dtgCiclo.Columns["T1"].HeaderText = "T1 Mad"; dtgCiclo.Columns["T2"].HeaderText = "T2 Mad"; dtgCiclo.Columns["T3"].HeaderText = "T3 Amb"; dtgCiclo.Columns["T4"].HeaderText = "T4 Amb"; break; case 80: dtgTratamento.Columns["T1T"].HeaderText = "T1 Mad"; dtgTratamento.Columns["T2T"].HeaderText = "T2 Mad"; dtgTratamento.Columns["T3T"].HeaderText = "T3 Mad"; dtgTratamento.Columns["T4T"].HeaderText = "T4 Amb"; dtgCiclo.Columns["T1"].HeaderText = "T1 Mad"; dtgCiclo.Columns["T2"].HeaderText = "T2 Mad"; dtgCiclo.Columns["T3"].HeaderText = "T3 Mad"; dtgCiclo.Columns["T4"].HeaderText = "T4 Amb"; break; } foreach (var dado in dados) { dtgResumo.Rows.Add(dado); } dtgResumo.Rows[1].DefaultCellStyle.Font = new Font("Microsoft Sans Seriff", 8, FontStyle.Bold); if (ciclo.tipoCRG == 100) { foreach (var leiturasCiclo in listaLeiturasCiclo) { dtgCiclo.Rows.Add((dtgCiclo.Rows.Count + 1).ToString("000"), leiturasCiclo.horario, leiturasCiclo.T1.ToString("#0.0"), leiturasCiclo.T2.ToString("#0.0"), leiturasCiclo.T3.ToString("#0.0"), leiturasCiclo.T4.ToString("#0.0")); if (ciclo.NLIniTrat == dtgCiclo.Rows.Count) { dtgCiclo.Rows[dtgCiclo.Rows.Count - 1].DefaultCellStyle.BackColor = Color.PaleGreen; } } int contGeral = 1; var listaTratamento = new List <ListaCiclosTratGrafico>(); if (listaLeiturasTrat.Count > 0 && ciclo.nlt == ciclo.tempoTrat) { listaTratamento = RelTratamento.populaTratamento(ciclo, listaLeiturasCiclo, listaLeiturasTrat, config); } if (listaTratamento.Count > 0) { var nlt_inicio_tratamento = 0; var nlt_fim_tratamento = 0; foreach (var item in listaTratamento.ToList()) { if (item.demarca_tratamento) { if (nlt_inicio_tratamento == 0) { nlt_inicio_tratamento = item.NLT; } else { nlt_fim_tratamento = item.NLT; } } dtgTratamento.Rows.Add(item.NLT.ToString("000"), item.NL.ToString("000"), item.horario, item.T1.ToString("#0.0"), item.T2.ToString("#0.0"), item.T3.ToString("#0.0"), item.T4.ToString("#0.0")); } foreach (DataGridViewRow row in dtgTratamento.Rows) { var nlt_value = Convert.ToInt32(row.Cells[0].Value); if (nlt_value >= nlt_inicio_tratamento && nlt_value <= nlt_fim_tratamento) { row.DefaultCellStyle.BackColor = Color.PaleGreen; } } //Leituras Anteriores ao Tratamento /*for (int i = 0; i < ciclo.nlAntesTrat; i += 2) * { * dtgTratamento.Rows.Add("--", contGeral.ToString("000"), listaLeiturasCiclo[i].horario, * listaLeiturasCiclo[i].T1.ToString("##.0"), * listaLeiturasCiclo[i].T2.ToString("##.0"), listaLeiturasCiclo[i].T3.ToString("##.0"), * listaLeiturasCiclo[i].T4.ToString("##.0")); * contGeral += 2; * } * * int contTrat = 1; * //Leituras do Tratamento * for (int i = 0; i < listaLeiturasTrat.Count; i += 2) * { * dtgTratamento.Rows.Add(contTrat.ToString("000"), contGeral.ToString("000"), * listaLeiturasTrat[i].horario, listaLeiturasTrat[i].T1.ToString("##.0"), * listaLeiturasTrat[i].T2.ToString("##.0"), listaLeiturasTrat[i].T3.ToString("##.0"), * listaLeiturasTrat[i].T4.ToString("##.0")); * contTrat += 2; * contGeral += 2; * dtgTratamento.Rows[dtgTratamento.RowCount - 1].DefaultCellStyle.BackColor = Color.PaleGreen; * } * * //Leituras Posteriores ao Tratamento * for (int i = contGeral; i < listaLeiturasCiclo.Count; i += 2) * { * dtgTratamento.Rows.Add("--", contGeral.ToString("000"), listaLeiturasCiclo[i - 1].horario, * listaLeiturasCiclo[i - 1].T1.ToString("##.0"), * listaLeiturasCiclo[i - 1].T2.ToString("##.0"), listaLeiturasCiclo[i - 1].T3.ToString("##.0"), * listaLeiturasCiclo[i - 1].T4.ToString("##.0")); * contGeral += 2; * }*/ } } else if (ciclo.tipoCRG == 150) { foreach (var leiturasCiclo in listaLeiturasCiclo) { dtgCiclo.Rows.Add((dtgCiclo.Rows.Count + 1).ToString("000"), leiturasCiclo.horario, leiturasCiclo.T1.ToString(), leiturasCiclo.T2.ToString(), leiturasCiclo.T3.ToString(), leiturasCiclo.T4.ToString()); if (ciclo.NLIniTrat == dtgCiclo.Rows.Count) { dtgCiclo.Rows[dtgCiclo.Rows.Count - 1].DefaultCellStyle.BackColor = Color.PaleGreen; } } int contGeral = 1; var listaTratamento = new List <ListaCiclosTratGrafico>(); if (listaLeiturasTrat.Count > 0 && ciclo.nlt == ciclo.tempoTrat) { listaTratamento = RelTratamento.populaTratamento(ciclo, listaLeiturasCiclo, listaLeiturasTrat, config); } if (listaTratamento.Count > 0) { var nlt_inicio_tratamento = 0; var nlt_fim_tratamento = 0; foreach (var item in listaTratamento.ToList()) { if (item.demarca_tratamento) { if (nlt_inicio_tratamento == 0) { nlt_inicio_tratamento = item.NLT; } else { nlt_fim_tratamento = item.NLT; } } dtgTratamento.Rows.Add(item.NLT.ToString("000"), item.NL.ToString("000"), item.horario, item.T1.ToString(), item.T2.ToString(), item.T3.ToString(), item.T4.ToString()); } foreach (DataGridViewRow row in dtgTratamento.Rows) { var nlt_value = Convert.ToInt32(row.Cells[0].Value); if (nlt_value >= nlt_inicio_tratamento && nlt_value <= nlt_fim_tratamento) { row.DefaultCellStyle.BackColor = Color.PaleGreen; } } //Leituras Anteriores ao Tratamento /*for (int i = 0; i < ciclo.nlAntesTrat; i += 2) * { * dtgTratamento.Rows.Add("--", contGeral.ToString("000"), listaLeiturasCiclo[i].horario, * listaLeiturasCiclo[i].T1.ToString(), * listaLeiturasCiclo[i].T2.ToString(), listaLeiturasCiclo[i].T3.ToString(), * listaLeiturasCiclo[i].T4.ToString()); * contGeral += 2; * } * * int contTrat = 1; * //Leituras do Tratamento * for (int i = 0; i < listaLeiturasTrat.Count; i += 2) * { * dtgTratamento.Rows.Add(contTrat.ToString("000"), contGeral.ToString("000"), * listaLeiturasTrat[i].horario, listaLeiturasTrat[i].T1.ToString(), * listaLeiturasTrat[i].T2.ToString(), listaLeiturasTrat[i].T3.ToString(), * listaLeiturasTrat[i].T4.ToString()); * contTrat += 2; * contGeral += 2; * dtgTratamento.Rows[dtgTratamento.RowCount - 1].DefaultCellStyle.BackColor = Color.PaleGreen; * } * * //Leituras Posteriores ao Tratamento * for (int i = contGeral; i < listaLeiturasCiclo.Count; i += 2) * { * dtgTratamento.Rows.Add("--", contGeral.ToString("000"), listaLeiturasCiclo[i - 1].horario, * listaLeiturasCiclo[i - 1].T1.ToString(), * listaLeiturasCiclo[i - 1].T2.ToString(), listaLeiturasCiclo[i - 1].T3.ToString(), * listaLeiturasCiclo[i - 1].T4.ToString()); * contGeral += 2; * }*/ } } }
/// <summary> /// Geração do corpo do histórico /// </summary> /// <param name="writer"></param> /// <param name="ciclo"></param> /// <param name="id"></param> private void ExportarCiclo(XmlTextWriter writer, VO.Ciclos ciclo, int id) { writer.WriteStartElement("Ciclo"); writer.WriteElementString("Id", ciclo.id.ToString()); writer.WriteElementString("CRG", ciclo.crg.ToString()); writer.WriteElementString("NTrat", ciclo.nTrat.ToString()); writer.WriteElementString("NL", ciclo.nl.ToString()); writer.WriteElementString("BaseTempo", ciclo.baseTempo.ToString()); writer.WriteElementString("NLT", ciclo.nlt.ToString()); writer.WriteElementString("DataColeta", ciclo.dataColeta.ToString()); writer.WriteElementString("Descricao", ciclo.descricao); writer.WriteElementString("DataInicio", ciclo.dataInicio.ToString()); writer.WriteElementString("DataFim", ciclo.dataFim.ToString()); writer.WriteElementString("NLIniTrat", ciclo.NLIniTrat.ToString()); writer.WriteElementString("DataIniTrat", ciclo.dataIniTrat.ToString()); writer.WriteElementString("TemperaturaControle", ciclo.temperaturaControle.ToString()); writer.WriteElementString("TemperaturaTrat", ciclo.temperaturaTrat.ToString()); writer.WriteElementString("TempoTrat", ciclo.tempoTrat.ToString()); writer.WriteElementString("Responsavel", ciclo.responsavel); writer.WriteElementString("Operador", ciclo.operador); writer.WriteElementString("Situacao", ciclo.situacao.ToString()); writer.WriteElementString("NumSerie", ciclo.numSerie); writer.WriteElementString("VersaoEquip", ciclo.versaoEquip); writer.WriteElementString("Histerese", ciclo.histerese.ToString()); writer.WriteElementString("TControl", ciclo.tControl.ToString()); writer.WriteElementString("NLAntesTrat", ciclo.nlAntesTrat.ToString()); writer.WriteElementString("NLPostTrat", ciclo.nlPostTrat.ToString()); writer.WriteElementString("Sensor", ciclo.sensor.ToString()); writer.WriteElementString("CA", ciclo.CA); writer.WriteElementString("tipoCRG", ciclo.tipoCRG.ToString()); // Leituras do Ciclo var listaLeiturasCiclo = LeiturasCicloDAO.ListaLeiturasCiclos(ciclo); foreach (var leitura in listaLeiturasCiclo) { writer.WriteStartElement("LeituraCiclo"); writer.WriteElementString("IdLeituraCiclo", leitura.idLeiturasCiclo.ToString()); writer.WriteElementString("Horario", leitura.horario); writer.WriteElementString("T1", leitura.T1.ToString()); writer.WriteElementString("T2", leitura.T2.ToString()); writer.WriteElementString("T3", leitura.T3.ToString()); writer.WriteElementString("T4", leitura.T4.ToString()); writer.WriteElementString("Ciclo", leitura.ciclo.id.ToString()); writer.WriteEndElement(); } // Leituras de Tratamento var listaLeiturasTrat = LeiturasTratDAO.ListaLeiturasTratamento(ciclo); foreach (var leitura in listaLeiturasTrat) { writer.WriteStartElement("LeituraTratamento"); writer.WriteElementString("IdLeituraTratamento", leitura.idLeiturasTrat.ToString()); writer.WriteElementString("Horario", leitura.horario); writer.WriteElementString("T1", leitura.T1.ToString()); writer.WriteElementString("T2", leitura.T2.ToString()); writer.WriteElementString("T3", leitura.T3.ToString()); writer.WriteElementString("T4", leitura.T4.ToString()); writer.WriteElementString("Ciclo", leitura.ciclo.id.ToString()); writer.WriteEndElement(); } // Produtos var listaProdutos = ProdutoCicloDAO.listaProdutosCiclo(ciclo); foreach (var leitura in listaProdutos) { writer.WriteStartElement("ProdutoCiclo"); writer.WriteElementString("IdProdutoCiclo", leitura.idProdutoCiclo.ToString()); writer.WriteElementString("Produto", leitura.produto.idProduto.ToString()); writer.WriteElementString("Volume", leitura.volume); writer.WriteElementString("Unidade", leitura.unidade.idUnidade.ToString()); writer.WriteElementString("Empresa", leitura.empresa.idEmpresa.ToString()); writer.WriteElementString("Ciclo", leitura.ciclo.id.ToString()); writer.WriteEndElement(); } writer.WriteEndElement(); // Fecha a tag <Ciclo> }
private void Arquivo_Click(object sender, EventArgs e) { var crg = 0; if (Exportar.Checked) { salvarCiclo.RestoreDirectory = true; salvarCiclo.Title = "Exportar Ciclo para..."; salvarCiclo.Filter = "crg08 files(*.crg08)|*.crg08"; salvarCiclo.DefaultExt = "crg08"; salvarCiclo.CheckPathExists = true; var dialogResult = salvarCiclo.ShowDialog(this); if (dialogResult == DialogResult.OK) { var writer = new XmlTextWriter(salvarCiclo.FileName, null); // Gera o XML de cada ciclo try { writer.Formatting = Formatting.Indented; writer.WriteStartDocument(); writer.WriteStartElement("Ciclos"); for (int i = 0; i < dtgAndamento.RowCount; i++) { if (dtgAndamento.Rows[i].Cells[0].Value.ToString() == "True") { var id = int.Parse(dtgAndamento.Rows[i].Cells[1].Value.ToString()); crg = int.Parse(dtgAndamento.Rows[i].Cells[2].Value.ToString()); var ciclo = CicloDAO.buscaCiclo(crg, id); ExportarCiclo(writer, ciclo, i + 1); } } for (int i = 0; i < dtgFinalizados.RowCount; i++) { if (dtgFinalizados.Rows[i].Cells[0].Value.ToString() == "True") { var id = int.Parse(dtgFinalizados.Rows[i].Cells[1].Value.ToString()); crg = int.Parse(dtgFinalizados.Rows[i].Cells[2].Value.ToString()); var ciclo = CicloDAO.buscaCiclo(crg, id); ExportarCiclo(writer, ciclo, i + 1); } } writer.WriteFullEndElement(); writer.WriteEndDocument(); } catch (Exception error) { VO.LogErro logErro = new VO.LogErro(); logErro.crg = crg; logErro.descricao = "Erro ao tentar exportar"; string dataHora = DateTime.Now.ToString(); logErro.data = DateTime.Now; logErro.maisDetalhes = error.Message; LogErroDAO.inserirLogErro(logErro, logErro.crg); MessageBox.Show("Erro ao tentar exportar.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Information); } finally { writer.Flush(); writer.Close(); var xmlDoc = new XmlDocument(); try { xmlDoc.PreserveWhitespace = true; xmlDoc.Load(salvarCiclo.FileName); } catch (Exception er) { Console.WriteLine(er.Message); } var cspParams = new CspParameters(); cspParams.KeyContainerName = "CRG08"; var rsaKey = new RSACryptoServiceProvider(cspParams); try { Crypto.Encrypt(xmlDoc, "Ciclo", "Ciclo", rsaKey, "rsaKey"); xmlDoc.Save(salvarCiclo.FileName); } catch (Exception er) { VO.LogErro logErro = new VO.LogErro(); logErro.crg = crg; logErro.descricao = "Erro ao tentar exportar"; string dataHora = DateTime.Now.ToString(); logErro.data = DateTime.Now; logErro.maisDetalhes = er.Message; LogErroDAO.inserirLogErro(logErro, logErro.crg); MessageBox.Show("Erro ao tentar exportar.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Information); } CarregaCiclos(); MessageBox.Show("Ciclo exportado com sucesso!", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.None); } } } else { var listaCiclos = new List <ImportarCiclo>(); var importacaoCiclo = new ImportarCiclo(); var listaLeituras = new List <LeiturasCiclo>(); var listaTratamento = new List <LeiturasTrat>(); var produtosCiclos = new List <ProdutoCiclo>(); var tag = ""; var stream = new MemoryStream(); var xmlDocument = new XmlDocument(); var cspParams = new CspParameters(); abrirCiclo.RestoreDirectory = true; abrirCiclo.Title = "Importar Ciclo"; abrirCiclo.Filter = "crg08 files(*.crg08)|*.crg08"; abrirCiclo.DefaultExt = "crg08"; abrirCiclo.CheckPathExists = true; VO.Ciclos cicloTemp; VO.Ciclos cic = new VO.Ciclos(); var dialogResult = abrirCiclo.ShowDialog(this); if (dialogResult == DialogResult.OK) { try { cspParams.KeyContainerName = "CRG08"; var rsaKey = new RSACryptoServiceProvider(cspParams); xmlDocument.PreserveWhitespace = true; xmlDocument.Load(abrirCiclo.FileName); Crypto.Decrypt(xmlDocument, rsaKey, "rsaKey"); xmlDocument.Save(stream); stream.Flush(); stream.Position = 0; // Carrega os dados no Reader para ler var reader = new XmlTextReader(stream); reader.WhitespaceHandling = WhitespaceHandling.None; // Para ignorar espaço em branco // Carrega os dados de um ciclo, verifica se já existe e questiona // o usuário se ele deseja substituir e os próximos ciclos também while ((reader.Read())) { switch (reader.NodeType) { case XmlNodeType.EndElement: if (reader.Name == "Ciclo") { importacaoCiclo.leiturasCiclo = listaLeituras; importacaoCiclo.leiturasTratamento = listaTratamento; importacaoCiclo.produtosCiclo = produtosCiclos; importacaoCiclo.ciclo = cic; listaCiclos.Add(importacaoCiclo); importacaoCiclo = new ImportarCiclo(); listaLeituras = new List <LeiturasCiclo>(); listaTratamento = new List <LeiturasTrat>(); produtosCiclos = new List <ProdutoCiclo>(); cic = new VO.Ciclos(); } break; case XmlNodeType.Element: tag = reader.Name; if (tag == "LeituraCiclo") { listaLeituras.Add(CarregaLeiturasCiclo(reader.ReadSubtree())); } else if (tag == "LeituraTratamento") { listaTratamento.Add(CarregaLeituraTratamento(reader.ReadSubtree())); } else if (tag == "ProdutoCiclo") { produtosCiclos.Add(CarregaProdutos(reader.ReadSubtree())); } break; case XmlNodeType.Text: switch (tag) { // Cabeçalho case "Id": cic.id = Convert.ToInt32(reader.Value); break; case "CRG": cic.crg = Convert.ToInt32(reader.Value); break; case "NTrat": cic.nTrat = Convert.ToInt32(reader.Value); break; case "NL": cic.nl = Convert.ToInt32(reader.Value); break; case "BaseTempo": cic.baseTempo = Convert.ToInt32(reader.Value); break; case "NLT": cic.nlt = Convert.ToInt32(reader.Value); break; case "DataColeta": cic.dataColeta = Convert.ToDateTime(reader.Value); break; case "Descricao": cic.descricao = reader.Value; break; case "DataInicio": cic.dataInicio = Convert.ToDateTime(reader.Value); break; case "DataFim": cic.dataFim = Convert.ToDateTime(reader.Value); break; case "NLIniTrat": cic.NLIniTrat = Convert.ToInt32(reader.Value); break; case "TemperaturaControle": cic.temperaturaControle = Convert.ToSingle(reader.Value); break; case "TemperaturaTrat": cic.temperaturaTrat = Convert.ToSingle(reader.Value); break; case "TempoTrat": cic.tempoTrat = Convert.ToInt32(reader.Value); break; case "Responsavel": cic.responsavel = reader.Value; break; case "Operador": cic.operador = reader.Value; break; case "Situacao": cic.situacao = Convert.ToInt32(reader.Value); break; case "NumSerie": cic.numSerie = reader.Value; break; case "VersaoEquip": cic.versaoEquip = reader.Value; break; case "Histerese": cic.histerese = Convert.ToInt32(reader.Value); break; case "TControl": cic.tControl = Convert.ToInt32(reader.Value); break; case "NLAntesTrat": cic.nlAntesTrat = Convert.ToInt32(reader.Value); break; case "NLPostTrat": cic.nlPostTrat = Convert.ToInt32(reader.Value); break; case "Sensor": cic.sensor = Convert.ToInt32(reader.Value); break; case "CA": cic.CA = reader.Value; break; case "tipoCRG": cic.tipoCRG = Convert.ToInt32(reader.Value); break; } break; } } foreach (var ciclo in listaCiclos) { // Verifica se o ciclo está no banco de dados e add em um Obj temporário = cicloTemp cicloTemp = CicloDAO.testaCiclo(ciclo.ciclo); if (cicloTemp != null) { // Se o obj for diferente de nulo... if (MessageBox.Show("O ciclo de nº " + ciclo.ciclo.nTrat + " já existe no Banco de Dados. Deseja atualizar?", "Atenção", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes) { bool retorno = CicloDAO.alteraCiclo(ciclo.ciclo); if (retorno) { ProdutoCicloDAO.DeletaProdutosCiclo(ciclo.ciclo.id, ciclo.ciclo.crg); for (int i = 0; i < ciclo.produtosCiclo.Count; i++) { ciclo.produtosCiclo[i].ciclo = ciclo.ciclo; ProdutoCicloDAO.inserirProdutoCiclo(ciclo.produtosCiclo[i]); } if (ciclo.leiturasCiclo.Count > 0) { if (ciclo.ciclo.tipoCRG == 2) { LeiturasCicloDAO.inserirLeiturasCiclo150(ciclo.leiturasCiclo, ciclo.ciclo.nl, ciclo.ciclo); } else { LeiturasCicloDAO.inserirLeiturasCiclo(ciclo.leiturasCiclo, ciclo.ciclo.nl, ciclo.ciclo); } } if (ciclo.leiturasTratamento.Count > 0) { if (ciclo.ciclo.tipoCRG == 2) { LeiturasTratDAO.inserirLeiturasTratamento150(ciclo.leiturasTratamento, ciclo.ciclo.nlt, ciclo.ciclo); } else { LeiturasTratDAO.inserirLeiturasTratamento(ciclo.leiturasTratamento, ciclo.ciclo.nlt, ciclo.ciclo); } } } CarregaCiclos(); } } else { // Inclui a ciclo ImportarCiclo(ciclo); CarregaCiclos(); } } MessageBox.Show("Importação realizada com sucesso!", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.None); } catch (Exception ex) { VO.LogErro logErro = new VO.LogErro(); logErro.crg = crg; logErro.descricao = "Erro ao tentar importar ciclo"; logErro.data = DateTime.Now; logErro.maisDetalhes = ex.Message; LogErroDAO.inserirLogErro(logErro, logErro.crg); MessageBox.Show("Erro ao tentar importar.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } }