예제 #1
0
        ///*******************************************************************************************************
        /// <summary>
        /// Manejador del evento CellContentClick del Grid tablas: verifica si se hizo clic en un control
        /// dentro de la celda
        /// </summary>
        /// <creo>Roberto González Oseguera</creo>
        /// <fecha_creo>21-may-2014</fecha_creo>
        /// <modifico></modifico>
        /// <fecha_modifico></fecha_modifico>
        /// <causa_modificacion></causa_modificacion>
        ///*******************************************************************************************************
        private void Grd_Tablas_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            int.TryParse(((DataGridView)sender).CurrentCell.Value.ToString(), out Valor_Original);

            try
            {
                Edicion = true;
                // validar que la celda sea de tipo DataGridViewButtonCell (contiene un botón)
                if (Grd_Tablas.CurrentCell.GetType().Equals(typeof(DataGridViewButtonCell)))
                {
                    // si el texto en el botón es Vacias, intentar realizar la operación
                    if (Grd_Tablas.Columns[e.ColumnIndex].Name == "Vaciar")
                    {
                        // si el usuario confirma el borrado de la información, llamar al método correspondiente
                        if (MessageBox.Show("¿Confirma que desea vaciar la información de la tabla?", "Confirmación", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                        {
                            string             Nombre_Tabla = Grd_Tablas.CurrentRow.Cells["Nombre"].Value.ToString();
                            Cls_Tablas_Negocio Tablas       = new Cls_Tablas_Negocio();
                            Tablas.Vaciar_Bitacora(Nombre_Tabla);
                            // mostrar mensaje de operación exitosa
                            MessageBox.Show("La Bitácora btc_" + Nombre_Tabla + " ha sido vaciada", "Éxito", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                }

                Grd_Tablas.EndEdit();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #2
0
        ///*******************************************************************************************************
        /// <summary>
        /// Manejador del evento Load para el formulario: Cargar el listado de usuarios del sistema en el combo
        /// </summary>
        /// <creo>Roberto González Oseguera</creo>
        /// <fecha_creo>22-may-2014</fecha_creo>
        /// <modifico></modifico>
        /// <fecha_modifico></fecha_modifico>
        /// <causa_modificacion></causa_modificacion>
        ///*******************************************************************************************************
        private void Frm_Rep_Log_Load(object sender, EventArgs e)
        {
            try
            {
                // consultar la lista de usuario activos
                Cls_Apl_Usuarios_Negocio Neg_Usuario = new Cls_Apl_Usuarios_Negocio();
                Neg_Usuario.P_Estatus     = "ACTIVO";
                Cmb_Usuario.ValueMember   = Apl_Usuarios.Campo_Nombre_Usuario;
                Cmb_Usuario.DisplayMember = Apl_Usuarios.Campo_Nombre_Usuario;
                DataTable Dt_Usuarios = Neg_Usuario.Consultar_Usuario();
                // si la consulta regresó resultados, agregar una fila vacía
                if (Dt_Usuarios != null && Dt_Usuarios.Rows.Count > 0)
                {
                    DataRow Dr = Dt_Usuarios.NewRow();
                    Dr[Apl_Usuarios.Campo_Nombre_Usuario] = "";
                    Dt_Usuarios.Rows.InsertAt(Dr, 0);
                }
                // asignar la fuente de datos
                Cmb_Usuario.DataSource = Dt_Usuarios;

                // consultar la lista de tablas en la base de datos que tienen log
                Cls_Tablas_Negocio Neg_Tablas = new Cls_Tablas_Negocio();
                DataTable          Dt_Tablas  = Neg_Tablas.Listar_Tablas_Con_Log();
                Cmb_Tabla.DisplayMember = "table_name";
                Cmb_Tabla.DataSource    = Dt_Tablas;
            }
            catch { }
        }
예제 #3
0
 ///*******************************************************************************************************
 /// <summary>
 /// Manejador del evento Load del formulario: carga del listado de tablas en la base de datos
 /// </summary>
 /// <creo>Roberto González Oseguera</creo>
 /// <fecha_creo>21-may-2014</fecha_creo>
 /// <modifico></modifico>
 /// <fecha_modifico></fecha_modifico>
 /// <causa_modificacion></causa_modificacion>
 ///*******************************************************************************************************
 private void Frm_Apl_Bitacora_Load(object sender, EventArgs e)
 {
     try
     {
         Cls_Tablas_Negocio Tablas = new Cls_Tablas_Negocio();
         Grd_Tablas.DataSource = Tablas.Listar_Tablas();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
예제 #4
0
        ///*******************************************************************************************************
        /// <summary>
        /// Consulta el log de eventos para una tabla y regresa un datatable con el resultado
        /// </summary>
        /// <param name="Neg_Tablas">Instancia de la clase de negocio con los filtros para la consulta</param>
        /// <returns>una tabla con el resultado de la consulta</returns>
        /// <creo>Roberto González Oseguera</creo>
        /// <fecha_creo>22-may-2014</fecha_creo>
        /// <modifico></modifico>
        /// <fecha_modifico></fecha_modifico>
        /// <causa_modificacion></causa_modificacion>
        ///*******************************************************************************************************
        public static DataTable Consultar_Bitacora(Cls_Tablas_Negocio Neg_Tablas)
        {
            try
            {
                DataTable Dt_Log = null;
                string    Mi_Sql;
                Conexion.Iniciar_Helper();
                Conexion.HelperGenerico.Conexion_y_Apertura();

                // formar consulta
                Mi_Sql = "SELECT * FROM btc_" + Neg_Tablas.P_Nombre_Tabla + " WHERE 1=1";
                // validar filtros opcionales
                if (!string.IsNullOrEmpty(Neg_Tablas.P_Operacion))
                {
                    Mi_Sql += " AND Operacion = '" + Neg_Tablas.P_Operacion + "'";
                }
                if (!string.IsNullOrEmpty(Neg_Tablas.P_Usuario))
                {
                    Mi_Sql += " AND (usuario_creo = '" + Neg_Tablas.P_Usuario + "' OR usuario_modifico = '" + Neg_Tablas.P_Usuario + "')";
                }
                // agregar filtros opcionales de fecha
                if (Neg_Tablas.P_Fecha_Inicio != DateTime.MinValue)
                {
                    Mi_Sql += " AND cast(btc_fecha_reg as date) >=" + Cls_Ayudante_Sintaxis.Insertar_Fecha(Neg_Tablas.P_Fecha_Inicio);
                }
                if (Neg_Tablas.P_Fecha_Final != DateTime.MinValue)
                {
                    Mi_Sql += " AND cast(btc_fecha_reg as date) <=" + Cls_Ayudante_Sintaxis.Insertar_Fecha(Neg_Tablas.P_Fecha_Final);
                }

                // ejecutar la consulta
                Dt_Log = Conexion.HelperGenerico.Obtener_Data_Table(Mi_Sql);

                return(Dt_Log);
            }
            catch (Exception e)
            {
                throw new Exception("Respaldar_Bitacora : " + e.Message);
            }
            finally
            {
                Conexion.HelperGenerico.Cerrar_Conexion();
            }
        }
예제 #5
0
        ///*******************************************************************************************************
        /// <summary>
        /// Obtiene un listado de registros del log y lo carga en el grid resultado
        /// </summary>
        /// <creo>Roberto González Oseguera</creo>
        /// <fecha_creo>22-may-2014</fecha_creo>
        /// <modifico></modifico>
        /// <fecha_modifico></fecha_modifico>
        /// <causa_modificacion></causa_modificacion>
        ///*******************************************************************************************************
        private void Consulta_Log()
        {
            try
            {
                Cls_Tablas_Negocio Neg_Tablas = new Cls_Tablas_Negocio();
                Neg_Tablas.P_Nombre_Tabla = Cmb_Tabla.Text;
                // si hay un tipo de operación seleccionada, asignar
                if (Cmb_Operacion.SelectedIndex > 0)
                {
                    Neg_Tablas.P_Operacion = Cmb_Operacion.Text;
                }
                // si hay un usuario seleccionado, asignar
                if (Cmb_Usuario.SelectedIndex > 0)
                {
                    Neg_Tablas.P_Usuario = Cmb_Usuario.Text;
                }
                // validar selección de fecha inicial
                if (true == Dtp_Fecha_Inicio.Checked)
                {
                    Neg_Tablas.P_Fecha_Inicio = Dtp_Fecha_Inicio.Value;
                }
                // validar selección de fecha final
                if (true == Dtp_Fecha_Termino.Checked)
                {
                    Neg_Tablas.P_Fecha_Final = Dtp_Fecha_Termino.Value;
                }
                DataTable Dt_Resultado = Neg_Tablas.Consultar_Bitacora();
                // si la primera columna es el id de bitácora, quitarlo
                if (Dt_Resultado != null && Dt_Resultado.Columns.Count > 0 && Dt_Resultado.Columns[0].ColumnName.StartsWith("btc_"))
                {
                    Dt_Resultado.Columns.RemoveAt(0);
                }

                Grd_Resultado.DataSource = Dt_Resultado;
            }
            catch (Exception Ex)
            {
                throw new Exception("[Consulta_Log]: " + Ex.Message);
            }
        }
예제 #6
0
        ///*******************************************************************************************************
        /// <summary>
        /// Manejador del evento CellEndEdit del Grid tablas: valida las operaciones en los checkbox
        /// </summary>
        /// <creo>Roberto González Oseguera</creo>
        /// <fecha_creo>21-may-2014</fecha_creo>
        /// <modifico></modifico>
        /// <fecha_modifico></fecha_modifico>
        /// <causa_modificacion></causa_modificacion>
        ///*******************************************************************************************************
        private void Grd_Tablas_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            var Check_Box_Servicio = ((DataGridView)sender)["Log", e.RowIndex] as DataGridViewCheckBoxCell;
            var Check_Box_Bitacora = ((DataGridView)sender)["Bitacora", e.RowIndex] as DataGridViewCheckBoxCell;

            string Tabla = ((DataGridView)sender).CurrentRow.Cells["Nombre"].Value.ToString();

            try
            {
                // validar la bandera Edicion
                if (true == Edicion)
                {
                    Cls_Tablas_Negocio Tablas = new Cls_Tablas_Negocio();
                    // realizar operación de acuerdo con el nombre de la columna seleccionada
                    switch (Grd_Tablas.Columns[e.ColumnIndex].Name)
                    {
                    case "Bitacora":
                        // validar que la tabla no sea bitácora
                        if (Tabla.StartsWith("btc_"))
                        {
                            MessageBox.Show("No se puede crear bitácora para esta tabla.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            Check_Box_Bitacora.Value = 0;
                            break;
                        }
                        // si se activó el checkbox bitácora, crearla y mostrar mensaje
                        if (Convert.ToInt16(Check_Box_Bitacora.Value) == 1)
                        {
                            Tablas.Crear_Bitacora(Tabla);

                            MessageBox.Show("La Bitácora btc_" + Tabla + " ha sido creada.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        else
                        {
                            // si no hay un Log activo para esta tabla, llamar al método que elimina la bitácora y mostrar mensaje
                            if (Convert.ToInt16(Check_Box_Servicio.Value) == 0)
                            {
                                Tablas.Eliminar_Bitacora(Tabla);

                                MessageBox.Show("La Bitácora btc_" + Tabla + " ha sido eliminada.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            else     // mostrar mensaje indicando que no se puede eliminar la bitácora porque el Log está activado
                            {
                                MessageBox.Show("No se puede eliminar la bitácora debido que tiene activado el Log.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                Check_Box_Bitacora.Value = 1;
                            }
                        }
                        break;

                    case "Log":
                        // si se activó el checkbox, intentar crear el Log
                        if (Convert.ToInt16(Check_Box_Servicio.Value) == 1)
                        {
                            // validar que haya una bitácora antes de crear el Log
                            if ((Int64)Check_Box_Bitacora.Value == 1)
                            {
                                Tablas.Crear_Servicio(Tabla);

                                MessageBox.Show("El Log para la tabla " + Tabla + " ha sido creado.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            else
                            {
                                MessageBox.Show("No se puede crear el Log debido a que no tiene bitácora creada.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                Check_Box_Servicio.Value = 0;
                            }
                        }
                        else
                        {
                            Tablas.Eliminar_Servicio(Tabla);

                            MessageBox.Show("El Log para la tabla " + Tabla + " ha sido eliminado.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                // en caso de error, regresar el checkbox a su valor anterior y mostrar mensaje de error
                ((DataGridView)sender).CurrentCell.Value = Valor_Original;
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }