private void btnIncorporar_Click_1(object sender, EventArgs e) { //IncorporarLecturas2(); //return; statusLblProcesando.Text = "Incorporando Lecturas..."; IProgressDialogFactory pProDiaFac = new ProgressDialogFactoryClass(); IStepProgressor pStepPro = pProDiaFac.Create(null, 0); pStepPro.MinRange = 1; pStepPro.MaxRange = 5; pStepPro.StepValue = 1; IProgressDialog2 pProDia = (IProgressDialog2)pStepPro; pProDia.Animation = esriProgressAnimationTypes.esriProgressGlobe; pProDia.Title = "Incorporando Lecturas"; pProDia.ShowDialog(); pStepPro.Step(); pStepPro.Message = "Incorporando temperatura..."; SIGPIParametros parametros = _parametros; PrepararInformacion preparar = new PrepararInformacion(); string mesTemperatura, mesPrecipitacion; string sRuta = parametros.RutaSIGPI + "\\" + parametros.Lecturas + "\\" + LECTURAS_TEMPERATURA; Microsoft.Office.Interop.Excel.Application _excelApp = null; Workbook workBook = null; Worksheet sheet = null; string sColumnaDia; DateTime dFechaIncorporacionActual; int iDay; bool bIncorporarTemperatura; try { _excelApp = new Microsoft.Office.Interop.Excel.Application(); workBook = _excelApp.Workbooks.Open(sRuta, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); sheet = (Worksheet)workBook.Worksheets.get_Item(1); //.Sheets["max"]; mesTemperatura = ""; try { mesTemperatura = preparar.VerificarFechasLecturas(sheet, SIGPI_CELDA_MES_TEMPERATURA); } catch (Exception ex) { MessageBox.Show(ex.Message); pProDia.HideDialog(); _excelApp.Workbooks.Close(); return; } DateTime dFechaAIncorporar = dtPickerFechaAIncorporar.Value; iDay = dFechaAIncorporar.Day; if (dFechaAIncorporar.Month != ConversionMes.MesNumero(mesTemperatura.ToUpper())) { if (dFechaAIncorporar.Month != ConversionMes.MesNumero(mesTemperatura.ToUpper()) + 1) { MessageBox.Show("La fecha seleccionada no se encuentra en el archivo de lecturas. Periodo correspondiente al mes de: " + mesTemperatura); pProDia.HideDialog(); _excelApp.Workbooks.Close(); return; } } int iTotalEstaciones = preparar.TotalEstaciones(sheet, SIGPI_COLUMNA_CODIGO_TEMPERATURA); sColumnaDia = preparar.ColumnaLecturaDia(sheet, SIGPI_COLUMNA_INICIO_DIA_TEMPERATURA, iDay.ToString(), SIGPI_FILA_DIA_TEMPERATURA); if (sColumnaDia == "-99") { MessageBox.Show("No se encontro el dia de lectura en el archivo de Excel de temperaturas. Dia: " + iDay.ToString()); pProDia.HideDialog(); _excelApp.Workbooks.Close(); return; } List <Lectura> listaTemperatura = preparar.ObtenerLecturas(sheet, _sigpiDao, SIGPI_COLUMNA_CODIGO_TEMPERATURA, sColumnaDia, SIGPI_TEMPERATURA_MIN_VAL, SIGPI_TEMPERATURA_MAX_VAL); pStepPro.Step(); dFechaIncorporacionActual = dtPickerFechaAIncorporar.Value; //_sigpi.FechaIncorporacion.AddDays(1); //MessageBox.Show("lecturas a incorporar Temp. : " + listaTemperatura.Count.ToString()); bIncorporarTemperatura = preparar.IncorporarLecturas(_sigpiDao, SIGPI_TABLA_LECTURAS_TEMPERATURA, dFechaIncorporacionActual, listaTemperatura); pStepPro.Message = "Incorporando Precipitacion..."; pStepPro.Step(); pStepPro.StepValue = 3; } finally { _excelApp.Workbooks.Close(); GC.Collect(); GC.WaitForPendingFinalizers(); System.Runtime.InteropServices.Marshal.FinalReleaseComObject(workBook); System.Runtime.InteropServices.Marshal.FinalReleaseComObject(_excelApp); } sRuta = parametros.RutaSIGPI + "\\" + parametros.Lecturas + "\\" + LECTURAS_PRECIPITACION; try { _excelApp = new Microsoft.Office.Interop.Excel.Application(); workBook = _excelApp.Workbooks.Open(sRuta, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); sheet = (Worksheet)workBook.Worksheets.get_Item(1); //Sheets["precipitacion"]; try { mesPrecipitacion = preparar.VerificarFechasLecturas(sheet, SIGPI_CELDA_MES_PRECIPITACION); } catch (Exception ex) { MessageBox.Show(ex.Message); pProDia.HideDialog(); _excelApp.Workbooks.Close(); return; } sColumnaDia = preparar.ColumnaLecturaDia(sheet, SIGPI_COLUMNA_INICIO_DIA_PRECIPITACION, iDay.ToString(), SIGPI_FILA_DIA_PRECIPITACION); if (sColumnaDia == "-99") { MessageBox.Show("No se encontro el dia de lectura en el archivo de Excel de precipitacion. Dia: " + iDay.ToString()); pProDia.HideDialog(); _excelApp.Workbooks.Close(); return; } List <Lectura> listaPrecipitacion = preparar.ObtenerLecturas(sheet, _sigpiDao, SIGPI_COLUMNA_CODIGO_PRECIPITACION, sColumnaDia, SIGPI_PRECIPITACION_MIN_VAL, SIGPI_PRECIPITACION_MAX_VAL); //MessageBox.Show("lecturas a incorporar Prec. : " + listaPrecipitacion.Count.ToString()); bool bIncorporarPrecip = preparar.IncorporarLecturas(_sigpiDao, SIGPI_TABLA_LECTURAS_PRECIPITACION, dFechaIncorporacionActual, listaPrecipitacion); pStepPro.StepValue = 4; pProDia.HideDialog(); if (bIncorporarTemperatura && bIncorporarPrecip) { txtUltimoDiaIncorporacion.Text = dtPickerFechaAIncorporar.Value.ToLongDateString(); preparar.ActualizarFechaIncorporacion(dtPickerFechaAIncorporar.Value, _sigpiDao); _sigpi.FechaIncorporacion = dtPickerFechaAIncorporar.Value; dtPickerFechaAProcesar.Value = dtPickerFechaAIncorporar.Value; dtPickerFechaAIncorporar.Value = dtPickerFechaAIncorporar.Value.AddDays(1); MessageBox.Show("Incorporacion de lecturas terminada!"); } } finally { _excelApp.Workbooks.Close(); } }
/// <summary> /// Incorpora lecturas desde los archivos descargados desde la intranet /// </summary> private void IncorporarLecturas2() { statusLblProcesando.Text = "Incorporando Lecturas..."; IProgressDialogFactory pProDiaFac = new ProgressDialogFactoryClass(); IStepProgressor pStepPro = pProDiaFac.Create(null, 0); pStepPro.MinRange = 1; pStepPro.MaxRange = 5; pStepPro.StepValue = 1; IProgressDialog2 pProDia = (IProgressDialog2)pStepPro; pProDia.Animation = esriProgressAnimationTypes.esriProgressGlobe; pProDia.Title = "Incorporando Lecturas"; pProDia.ShowDialog(); pStepPro.Step(); pStepPro.Message = "Incorporando temperatura..."; SIGPIParametros parametros = _parametros; PrepararInformacion preparar = new PrepararInformacion(); string mesTemperatura, mesPrecipitacion; string sRuta = parametros.RutaSIGPI + "\\" + parametros.Lecturas + "\\" + LECTURAS_TEMPERATURA; if (!System.IO.File.Exists(sRuta)) { MessageBox.Show("No existe el Archivo '" + sRuta + "' Verifique la ruta"); return; } Microsoft.Office.Interop.Excel.Application _excelApp = new Microsoft.Office.Interop.Excel.Application(); Workbook workBook = _excelApp.Workbooks.Open(sRuta, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); Worksheet sheet; try { sheet = (Worksheet)workBook.Sheets[1]; } catch (Exception ex) { MessageBox.Show(ex.Message); _excelApp.Workbooks.Close(); pProDia.HideDialog(); return; } mesTemperatura = ""; try { mesTemperatura = preparar.VerificarFechasLecturas(sheet, SIGPI_CELDA_MES_TEMPERATURA); } catch (Exception ex) { _excelApp.Workbooks.Close(); pProDia.HideDialog(); MessageBox.Show(ex.Message); return; } DateTime dFechaAIncorporar = dtPickerFechaAIncorporar.Value; int iDay = dFechaAIncorporar.Day; if (dFechaAIncorporar.Month != ConversionMes.MesNumero(mesTemperatura.ToUpper())) { if (dFechaAIncorporar.Month != ConversionMes.MesNumero(mesTemperatura.ToUpper()) + 1) { MessageBox.Show("La fecha seleccionada no se encuentra en el archivo de lecturas. Periodo correspondiente al mes de: " + mesTemperatura); _excelApp.Workbooks.Close(); pProDia.HideDialog(); return; } } int iTotalEstaciones = preparar.TotalEstaciones(sheet, SIGPI_COLUMNA_ESTACIONES); string sColumnaDia = preparar.ColumnaLecturaDia(sheet, 8, iDay.ToString(), "3"); if (sColumnaDia == "-99") { MessageBox.Show("No se encontro el dia de lectura en el archivo de Excel de temperaturas. Dia: " + iDay.ToString()); _excelApp.Workbooks.Close(); pProDia.HideDialog(); return; } List <Lectura> listaTemperatura = preparar.ObtenerLecturas(sheet, _sigpiDao, SIGPI_COLUMNA_CODIGO_TEMPERATURA, sColumnaDia, SIGPI_TEMPERATURA_MIN_VAL, SIGPI_TEMPERATURA_MAX_VAL); //pStepPro.Step(); DateTime dFechaIncorporacionActual = dtPickerFechaAIncorporar.Value; //_sigpi.FechaIncorporacion.AddDays(1); //string sFechaIncorporacionActual = dFechaIncorporacionActual.ToString("dd/MM/yyyy"); bool bIncorporarTemperatura = preparar.IncorporarLecturas(_sigpiDao, SIGPI_TABLA_LECTURAS_TEMPERATURA, dFechaIncorporacionActual, listaTemperatura); pStepPro.Message = "Incorporando Precipitacion..."; pStepPro.Step(); pStepPro.StepValue = 3; sRuta = parametros.RutaSIGPI + "\\" + parametros.Lecturas + "\\" + LECTURAS_PRECIPITACION; _excelApp.Workbooks.Close(); _excelApp = new Microsoft.Office.Interop.Excel.Application(); workBook = _excelApp.Workbooks.Open(sRuta, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); sheet = (Worksheet)workBook.Sheets[1]; try { mesPrecipitacion = preparar.VerificarFechasLecturas(sheet, SIGPI_CELDA_MES_PRECIPITACION); } catch (Exception ex) { MessageBox.Show(ex.Message); _excelApp.Workbooks.Close(); pProDia.HideDialog(); return; } sColumnaDia = preparar.ColumnaLecturaDia(sheet, 8, iDay.ToString(), "2"); if (sColumnaDia == "-99") { MessageBox.Show("No se encontro el dia de lectura en el archivo de Excel de precipitacion. Dia: " + iDay.ToString()); _excelApp.Workbooks.Close(); pProDia.HideDialog(); return; } List <Lectura> listaPrecipitacion = preparar.ObtenerLecturas(sheet, _sigpiDao, SIGPI_COLUMNA_CODIGO_PRECIPITACION, sColumnaDia, SIGPI_PRECIPITACION_MIN_VAL, SIGPI_PRECIPITACION_MAX_VAL); bool bIncorporarPrecip = preparar.IncorporarLecturas(_sigpiDao, SIGPI_TABLA_LECTURAS_PRECIPITACION, dFechaIncorporacionActual, listaPrecipitacion); pStepPro.StepValue = 4; pProDia.HideDialog(); if (bIncorporarTemperatura && bIncorporarPrecip) { txtUltimoDiaIncorporacion.Text = dtPickerFechaAIncorporar.Value.ToLongDateString(); preparar.ActualizarFechaIncorporacion(dtPickerFechaAIncorporar.Value, _sigpiDao); _sigpi.FechaIncorporacion = dtPickerFechaAIncorporar.Value; dtPickerFechaAProcesar.Value = dtPickerFechaAIncorporar.Value; dtPickerFechaAIncorporar.Value = dtPickerFechaAIncorporar.Value.AddDays(1); MessageBox.Show("Incorporacion de lecturas terminada!"); } _excelApp.Workbooks.Close(); }