/// <summary> /// Carga ascpectGetters y ascpectPutters en OLV Curvas /// </summary> private void SetDelegatesOLVCurvas() { objectListView1.AllColumns[0].AspectGetter = delegate(object o) { ObjetoActualizacionCurvas aux = (ObjetoActualizacionCurvas)o; return(aux.Nombre); }; objectListView1.AllColumns[1].AspectGetter = delegate(object o) { ObjetoActualizacionCurvas aux = (ObjetoActualizacionCurvas)o; return(aux.AgnoIni); }; objectListView1.AllColumns[2].AspectGetter = delegate(object o) { ObjetoActualizacionCurvas aux = (ObjetoActualizacionCurvas)o; return(aux.Periodos); }; objectListView1.AllColumns[1].AspectPutter = delegate(object goal, object value) { ObjetoActualizacionCurvas aux = (ObjetoActualizacionCurvas)goal; int valor = Utilidades.EsEnteroPositivo(value.ToString()) ? ((int)value) : aux.AgnoIni; aux.AgnoIni = (valor >= 2000 && valor <= DateTime.Now.Year) ? valor : aux.AgnoIni; }; objectListView1.AllColumns[2].AspectPutter = delegate(object goal, object value) { ObjetoActualizacionCurvas aux = (ObjetoActualizacionCurvas)goal; int valor = Utilidades.EsEnteroPositivo(value.ToString()) ? ((int)value) : aux.Periodos; aux.Periodos = ((valor == 1) || (valor == 2) || (valor == 3) || (valor == 4) || (valor == 6) || (valor == 8) || (valor == 12) || (valor == 24)) ? valor : aux.Periodos; }; }
/// <summary> /// Actualiza desde BD las curvas de disrupciones /// Acción desencadenada al hacer click en botton Actualizar en tabpage curvas /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ActualizarCurvas(object sender, EventArgs e) { if (_connection.State == ConnectionState.Open) { this.Cursor = Cursors.WaitCursor; DateTime ini = DateTime.Now; if (objectListView1.CheckedObjects != null) { foreach (object o in objectListView1.CheckedObjects) { ObjetoActualizacionCurvas a = (ObjetoActualizacionCurvas)o; AgregarTableCurvas(a); } CargarDataTableEnVisorCurvas(null, new EventArgs()); } DateTime termino = DateTime.Now; int duracion = Convert.ToInt16((termino - ini).TotalSeconds); EnviarMensaje("Actualización terminada en " + duracion + " segundos."); this.Cursor = Cursors.Default; } else { EnviarMensaje("Error en la conexión a la base de datos."); } }
/// <summary> /// Ejecuta una consulta para obtener las curvas y carga un DataTable con los resultados /// </summary> /// <param name="a">Objeto con la consulta</param> /// <returns></returns> private DataTable DataTableCurvasFromDataBase(ObjetoActualizacionCurvas a) { DataTable data = new DataTable(a.Nombre); foreach (string header in a.Headers) { data.Columns.Add(header); } Invoke(new Action <string>(EnviarMensaje), "Actualizando curvas " + a.Nombre); SqlCommand command = new SqlCommand(a.Query, _connection); command.CommandTimeout = 300; SqlDataReader r = command.ExecuteReader(); while (r.Read()) { object[] o = new object[r.FieldCount]; for (int i = 0; i < r.FieldCount; i++) { o[i] = r[i]; } data.Rows.Add(o); } r.Close(); return(data); }
/// <summary> /// Carga el ObjectListView de curvas /// </summary> private void CargarOLVCurvas() { foreach (TipoDisrupcion tipo in Enum.GetValues(typeof(TipoDisrupcion))) { if (_main._modeloDisrupcionesBase != null && _main._modeloDisrupcionesBase.ColeccionDisrupciones != null && _main._modeloDisrupcionesBase.ColeccionDisrupciones.Count > 0 && _main._modeloDisrupcionesBase.ColeccionDisrupciones.ContainsKey(tipo.ToString())) { InfoDisrupcion info = _main._modeloDisrupcionesBase.ColeccionDisrupciones[tipo.ToString()]; ObjetoActualizacionCurvas o = new ObjetoActualizacionCurvas(tipo.ToString(), info.Dimension, info.Headers, DateTime.Now.Year - 5, GetPeriodos(tipo), GetFuncion(tipo)); objectListView1.AddObject(o); } if (objectListView1.Objects != null) { bool primero = true; foreach (object o in objectListView1.Objects) { objectListView1.CheckObject(o); if (primero) { primero = false; objectListView1.SelectObject(o); } } } } }
/// <summary> /// Agrega un DaTaTable al DataSet de curvas con información desde BD /// </summary> /// <param name="a"></param> private void AgregarTableCurvas(ObjetoActualizacionCurvas a) { if (_curvas_actualizadas.Tables.Contains(a.Nombre)) { _curvas_actualizadas.Tables.Remove(a.Nombre); } _curvas_actualizadas.Tables.Add(DataTableCurvasFromDataBase(a)); }
/// <summary> /// Quita las tablas chequeadas /// Acción ejecutada al hacer click sobre el botón Limpiar en tabpage Curvas /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void LimpiarChecksCurvas(object sender, EventArgs e) { if (objectListView1.CheckedObjects != null) { foreach (object o in objectListView1.CheckedObjects) { ObjetoActualizacionCurvas a = (ObjetoActualizacionCurvas)o; if (_curvas_actualizadas.Tables.Contains(a.Nombre)) { _curvas_actualizadas.Tables.Remove(a.Nombre); } } } CargarDataTableEnVisorCurvas(null, new EventArgs()); }
/// <summary> /// Carga una curva de BD seleccionada en el DataListView de curvas /// Acción desencadenada al hacer click una de las curvas del OLV curvas /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void CargarDataTableEnVisorCurvas(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; this.dataListView_curvas.Visible = true; if (objectListView1.GetSelectedObject() != null) { ObjetoActualizacionCurvas a = (ObjetoActualizacionCurvas)objectListView1.GetSelectedObject(); ConfigurarDataObjectList(dataListView_curvas, a.Dimension, a.Headers); if (_curvas_actualizadas.Tables.Contains(a.Nombre)) { dataListView_curvas.DataSource = _curvas_actualizadas.Tables[a.Nombre]; } dataListView_curvas.Refresh(); } this.Cursor = Cursors.Default; }