//::Salva pos do DataGrid para o BD:: public void salvarInvent() { int cont = 0; // Contador de linhas int contEx = 0; // Contador de exceções string posicao, descProd, umb, referencia, metodo, chave, produto, uc, contador, qtdRegistrada, qtdContada, qtdDif, ordem, docInv1, tipoDep; string hrCriacao, hrAtivacao, hrContagem, hrPostagem; int datCriacao2, datAtivacao2, datContagem2, datPostagem2; DateTime datContagem, datPostagem, datAtivacao, datCriacao; AccessBD AccessBD = new AccessBD(); AccessBD.AbrirConexao(); ToolStripProgressBar BarraProgresso = new ToolStripProgressBar(); lblStripSalvar.Text = "Salvando Inventários:"; frmPrincipal.statusStrip1.Items.Add(lblStripSalvar); frmPrincipal.statusStrip1.Items.Add(BarraProgresso); BarraProgresso.Maximum = dgvPos.RowCount; lblStripPorcent.Text = "0%"; frmPrincipal.statusStrip1.Items.Add(lblStripPorcent); Thread backgroundThread = new Thread( new ThreadStart(() => { for (cont = 0; cont < dgvPos.RowCount; cont++) { try { docInv1 = dgvPos.Rows[cont].Cells[0].Value.ToString(); ordem = dgvPos.Rows[cont].Cells[1].Value.ToString(); posicao = dgvPos.Rows[cont].Cells[2].Value.ToString(); produto = dgvPos.Rows[cont].Cells[3].Value.ToString(); descProd = dgvPos.Rows[cont].Cells[4].Value.ToString().Replace("\"", "").Replace("'", ""); qtdRegistrada = dgvPos.Rows[cont].Cells[5].Value.ToString().Replace(",", "."); qtdContada = dgvPos.Rows[cont].Cells[6].Value.ToString().Replace(",", "."); qtdDif = dgvPos.Rows[cont].Cells[7].Value.ToString().Replace(",", "."); umb = dgvPos.Rows[cont].Cells[8].Value.ToString(); referencia = dgvPos.Rows[cont].Cells[9].Value.ToString(); metodo = dgvPos.Rows[cont].Cells[10].Value.ToString(); datCriacao = DateTime.Parse(dgvPos.Rows[cont].Cells[11].Value.ToString().Substring(0, 10)); hrCriacao = dgvPos.Rows[cont].Cells[12].Value.ToString().Substring(11, 5); datAtivacao = DateTime.Parse(dgvPos.Rows[cont].Cells[13].Value.ToString().Substring(0, 10)); hrAtivacao = dgvPos.Rows[cont].Cells[14].Value.ToString().Substring(11, 5); datContagem = DateTime.Parse(dgvPos.Rows[cont].Cells[15].Value.ToString().Substring(0, 10)); hrContagem = dgvPos.Rows[cont].Cells[16].Value.ToString().Substring(11, 5); contador = dgvPos.Rows[cont].Cells[17].Value.ToString(); datPostagem = DateTime.Parse(dgvPos.Rows[cont].Cells[18].Value.ToString().Substring(0, 10)); hrPostagem = dgvPos.Rows[cont].Cells[19].Value.ToString().Substring(11, 5); uc = dgvPos.Rows[cont].Cells[20].Value.ToString(); tipoDep = dgvPos.Rows[cont].Cells[21].Value.ToString(); chave = docInv1 + posicao + produto + qtdDif; } catch (Exception ex) { MessageBox.Show("Dado inconsistente, por favor, importe a planilha novamente!" + "\n \n" + "Detalhe: " + ex.Message, "Erro na importação", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Convertendo datas para o formato do banco de dados datPostagem2 = Convert.ToInt32(datPostagem.Year.ToString() + string.Format("{0,2:00}", datPostagem.Month) + string.Format("{0,2:00}", datPostagem.Day)); datAtivacao2 = Convert.ToInt32(datAtivacao.Year.ToString() + string.Format("{0,2:00}", datAtivacao.Month) + string.Format("{0,2:00}", datAtivacao.Day)); datContagem2 = Convert.ToInt32(string.Format("{0,2:00}", datContagem.Year) + string.Format("{0,2:00}", datContagem.Month) + string.Format("{0,2:00}", datContagem.Day)); datCriacao2 = Convert.ToInt32(string.Format("{0,2:00}", datCriacao.Year) + string.Format("{0,2:00}", datCriacao.Month) + string.Format("{0,2:00}", datCriacao.Day)); SQL = "INSERT INTO inventario (chave, doc_inv1, ordem, pos_dep, produto, desc_prod, qtd_regist, qtd_cont, qtd_difer, umb, " + "ref, metodo, dat_criacao, hr_criacao, dat_ativ, hr_ativ, dat_cont, hr_cont, contador, dat_post, hr_post, uc, tipo_dep)" + "values ('" + chave + "', " + docInv1 + "," + ordem + ",'" + posicao + "','" + produto + "','" + descProd + "', " + qtdRegistrada + "," + qtdContada + "," + qtdDif + ",'" + umb + "','" + referencia + "', '" + metodo + "'," + datCriacao2 + ",#" + hrCriacao + "#," + datAtivacao2 + ",#" + hrAtivacao + "#," + datContagem2 + ", #" + hrContagem + "#," + contador + "," + datPostagem2 + ",#" + hrPostagem + "#,'" + uc + "', " + tipoDep + " )"; try { AccessBD.insert_Delete_Update(SQL); } catch (OleDbException) { contEx += 1; } catch (Exception ex) { MessageBox.Show("Erro desconhecido, contate o administrador do sistema! n/n/ " + ex.Message, "Importação de Inventários", MessageBoxButtons.OK, MessageBoxIcon.Error); } BarraProgresso.Value = cont; lblStripPorcent.Text = Math.Round(((decimal)cont / (decimal)dgvPos.RowCount) * 100, 1).ToString() + "%"; if (produto == "") { produto = "0"; } if (cont == dgvPos.RowCount - 1) { // Se a thread já finalizou, destrói a Progressbar BarraProgresso.Dispose(); lblStripSalvar.Dispose(); lblStripPorcent.Dispose(); if (contEx == 0) { MessageBox.Show("Inventários salvo com sucesso!!!", "Importação de Inventários", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("Não foi possível salvar " + contEx + " linhas!", "Importação de Inventários", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } txtUltimoInventario.Text = AccessBD.consultaScalar("SELECT DAT_post & ' ÀS ' & MAX(hr_post) AS hr_post FROM INVENTARIO WHERE (((INVENTARIO.[DAT_POST])=(SELECT Max(dat_POST) FROM INVENTARIO))) group by dat_post"); } //if } //for atualizaFirebase(); } ));//thread backgroundThread.Start(); }
//::Salva pos do DataGrid para o BD:: public void salvarPos() { int contador = 0; int datCont2 = 0; string posicao, vazia, bloqueioSaida, bloqueioEntrada, bloqueioInvent, tipoPos, unidadePeso, pesoMax, pesoOcupado, qtdUcs, tipoDep; DateTime datCont; AccessBD Conexao = new AccessBD(); Conexao.AbrirConexao(); Conexao.insert_Delete_Update("DELETE * FROM POSICAO"); ToolStripLabel lblStripSalvar = new ToolStripLabel(); lblStripSalvar.Text = "Salvando Posições:"; frmPrincipal.statusStrip1.Items.Add(lblStripSalvar); ToolStripProgressBar BarraProgresso = new ToolStripProgressBar(); BarraProgresso.Maximum = dgvPos.RowCount; frmPrincipal.statusStrip1.Items.Add(BarraProgresso); ToolStripLabel lblStripPorcent = new ToolStripLabel(); lblStripPorcent.Text = "0"; frmPrincipal.statusStrip1.Items.Add(lblStripPorcent); Thread backgroundThread = new Thread( new ThreadStart(() => { try { for (contador = 0; contador < dgvPos.RowCount; contador++) { posicao = dgvPos.Rows[contador].Cells[0].Value.ToString(); vazia = dgvPos.Rows[contador].Cells[1].Value.ToString(); bloqueioSaida = dgvPos.Rows[contador].Cells[2].Value.ToString(); bloqueioEntrada = dgvPos.Rows[contador].Cells[3].Value.ToString(); bloqueioInvent = dgvPos.Rows[contador].Cells[4].Value.ToString(); tipoPos = dgvPos.Rows[contador].Cells[5].Value.ToString(); qtdUcs = dgvPos.Rows[contador].Cells[6].Value.ToString(); pesoMax = dgvPos.Rows[contador].Cells[7].Value.ToString().Replace(",", "."); unidadePeso = dgvPos.Rows[contador].Cells[8].Value.ToString(); pesoOcupado = dgvPos.Rows[contador].Cells[9].Value.ToString().Replace(",", "."); //datCont2 = Convert.ToInt32(dgvPos.Rows[contador].Cells[10].Value); tipoDep = dgvPos.Rows[contador].Cells[11].Value.ToString(); if (dgvPos.Rows[contador].Cells[10].Value.ToString() == "") { // Se a data da contagem estiver vazia datCont2 = 0; } else { //Se não, converte a data para o formato do banco de dados datCont = DateTime.Parse(dgvPos.Rows[contador].Cells[10].Value.ToString()); datCont2 = Convert.ToInt32(datCont.Year.ToString() + string.Format("{0,2:00}", datCont.Month) + string.Format("{0,2:00}", datCont.Day)); } Conexao.insert_Delete_Update("INSERT INTO POSICAO (Posicao, vazia, bloqueio_saida, bloqueio_entrada, bloqueio_invent, tipo_posicao, qtd_uc, peso_max, uni_peso, peso_ocupado, dat_cont, tipo_dep) values ('" + posicao + "', '" + vazia + "','" + bloqueioSaida + "','" + bloqueioEntrada + "','" + bloqueioInvent + "','" + tipoPos + "'," + qtdUcs + ", " + pesoMax + ",'" + unidadePeso + "'," + pesoOcupado + ", " + datCont2 + ", " + tipoDep + ")"); BarraProgresso.Value = contador; lblStripPorcent.Text = Math.Round(((decimal)contador / (decimal)dgvPos.RowCount) * 100, 1).ToString() + "%"; if (contador == dgvPos.RowCount - 1) { // Se a thread já finalizou, destrói a Progressbar BarraProgresso.Dispose(); lblStripSalvar.Dispose(); lblStripPorcent.Dispose(); } } //for } // try catch (Exception ex) { MessageBox.Show("Parece que o arquivo não está no formato esperado. Verifique!!! /n" + ex, "ERRO", MessageBoxButtons.OK, MessageBoxIcon.Error); BarraProgresso.Dispose(); lblStripSalvar.Dispose(); lblStripPorcent.Dispose(); } } )); backgroundThread.Start(); }