public void Inicializar(Admin oAdmin)
        {
            _Campo  = "";
            _oAdmin = oAdmin;
            _oAdmin.FiltroCampos   = oAdmin.FiltroCampos != null?oAdmin.FiltroCampos:"";
            _oAdmin.FiltroValores  = oAdmin.FiltroValores != null?oAdmin.FiltroValores:"";
            _oAdmin.FiltroOperador = oAdmin.FiltroOperador != null ? oAdmin.FiltroOperador : "";
            _dtCombo = new DataTable();
            _dtCombo.Columns.Add("DctColumna", typeof(string));
            _dtCombo.Columns.Add("DctDescripcion", typeof(string));
            _dtComboA = new DataTable();
            _dtComboA.Columns.Add("DctColumna", typeof(string));
            _dtComboA.Columns.Add("DctDescripcion", typeof(string));
            DetallesColumnasTablasBus     oDetalleBus = new DetallesColumnasTablasBus();
            List <DetallesColumnasTablas> ListDetalle = oDetalleBus.DetallesColumnasTablasGetByCodigo(oAdmin.TabCodigo);

            foreach (DetallesColumnasTablas oDetalle in ListDetalle)
            {
                _Campo = _Campo + ' ' + oDetalle.DctColumna + ' ' + oDetalle.DctDescripcion + ',';
                if ((oDetalle.DctFiltroBusqueda == "S") && (oDetalle.DctTipoControl != "FECHA") && oDetalle.DctTipoControl != "ESTADO")
                {
                    _dtCombo.Rows.Add(oDetalle.DctColumna, oDetalle.DctDescripcion);
                    _dtComboA.Rows.Add(oDetalle.DctColumna, oDetalle.DctDescripcion);
                }
                if ((oDetalle.DctFiltroBusqueda == "S") && (oDetalle.DctTipoControl == "FECHA"))
                {
                    _vista.grupoFecha    = true;
                    _vista.fechaDesde    = DateTime.Now.Date.AddMonths(-1);
                    _vista.fechaHasta    = DateTime.Now.Date;
                    _oAdmin.FiltroCampos = _oAdmin.FiltroCampos + oDetalle.DctColumna + "&";
                    _Fecha = oDetalle.DctColumna + "&";
                    _oAdmin.FiltroValores = _oAdmin.FiltroValores + _vista.fechaDesde.ToString("dd/MM/yyyy") + "%" + _vista.fechaHasta.ToString("dd/MM/yyyy") + "&";
                }
                if ((oDetalle.DctFiltroBusqueda == "S") && (oDetalle.DctTipoControl == "ESTADO"))
                {
                    _vista.grupoEstado    = true;
                    _oAdmin.FiltroCampos  = _oAdmin.FiltroCampos + oDetalle.DctColumna + "&";
                    _oAdmin.FiltroValores = _oAdmin.FiltroValores + _vista.comboEstado.Text + "&";
                }
            }


            oUtil.CargarCombo(_vista.comboBuscar, _dtCombo, "DctColumna", "DctDescripcion", "SELECCIONE..");
            InicializarTabAvanzado();
            if (_Campo.Length > 0)
            {
                _Campo = _Campo.Substring(0, _Campo.Length - 1);
            }
            TablasBus oTablasBus = new TablasBus();
            DataTable dt         = new DataTable();

            dt = oTablasBus.TablasBusquedaGetAllFilter(_Campo, _oAdmin);
            _vista.cantidad = "Se encontraron " + oUtil.CargarGrilla(_vista.grilla, dt) + " registros";
            _vista.grilla.Columns["CODIGO"].Visible = false;
        }
        public void Inicializar(string tabla)
        {
            _filtroCampos  = "";
            _filtroValores = "";
            _dtCombo       = new DataTable();
            _dtCombo.Columns.Add("DctColumna", typeof(string));
            _dtCombo.Columns.Add("DctDescripcion", typeof(string));
            DetallesColumnasTablasBus     oDetalleBus = new DetallesColumnasTablasBus();
            List <DetallesColumnasTablas> ListDetalle = oDetalleBus.DetallesColumnasTablasGetByCodigo(tabla);

            foreach (DetallesColumnasTablas oDetalle in ListDetalle)
            {
                _Campo = _Campo + ' ' + oDetalle.DctColumna + ' ' + oDetalle.DctDescripcion + ',';
                if ((oDetalle.DctFiltroBusqueda == "S") && (oDetalle.DctTipoControl != "FECHA") && oDetalle.DctTipoControl != "ESTADO")
                {
                    _dtCombo.Rows.Add(oDetalle.DctColumna, oDetalle.DctDescripcion);
                }

                if ((oDetalle.DctFiltroBusqueda == "S") && (oDetalle.DctTipoControl == "FECHA"))
                {
                    _vista.grupoFecha = true;
                    _vista.fechaDesde = DateTime.Now.Date.AddMonths(-1);
                    _vista.fechaHasta = DateTime.Now.Date;
                    _filtroCampos     = _filtroCampos + oDetalle.DctColumna + "&";
                    _Fecha            = oDetalle.DctColumna + "&";
                    _filtroValores    = _filtroValores + _vista.fechaDesde.ToString("dd/MM/yyyy") + "%" + _vista.fechaHasta.ToString("dd/MM/yyyy") + "&";
                }
                if ((oDetalle.DctFiltroBusqueda == "S") && (oDetalle.DctTipoControl == "ESTADO"))
                {
                    _vista.grupoEstado = true;
                    _filtroCampos      = _filtroCampos + oDetalle.DctColumna + "&";
                    _filtroValores     = _filtroValores + _vista.comboEstado.Text + "&";
                }
            }

            if (_Campo.Length > 0)
            {
                _Campo = _Campo.Substring(0, _Campo.Length - 1);
            }
            TablasBus oTablasBus = new TablasBus();
            DataTable dt         = oTablasBus.TablasBusquedaGetAllFilter(tabla, _Campo, _filtroCampos, _filtroValores);

            _vista.cantidad = "Se encontraron " + oUtil.CargarGrilla(_vista.grilla, dt) + " registros";
        }
Exemple #3
0
        public void CargarGrilla(Controles.datos.grdGrillaAdmin grilla, string tabla, string camposFiltro, string valoresFiltro)
        {
            string _Campo = "";
            DetallesColumnasTablasBus     oDetalleBus = new DetallesColumnasTablasBus();
            List <DetallesColumnasTablas> ListDetalle = oDetalleBus.DetallesColumnasTablasGetByCodigo(tabla);

            foreach (DetallesColumnasTablas oDetalle in ListDetalle)
            {
                _Campo = _Campo + ' ' + oDetalle.DctColumna + ' ' + oDetalle.DctDescripcion + ',';
            }
            if (_Campo.Length > 0)
            {
                _Campo = _Campo.Substring(0, _Campo.Length - 1);
            }

            TablasBus oTablasBus = new TablasBus();
            DataTable dt         = oTablasBus.TablasBusquedaGetAllFilter(tabla, _Campo, camposFiltro, valoresFiltro);

            oUtil.CargarGrilla(grilla, dt);
            grilla.Columns["CODIGO"].Visible = false;
        }
        //PRIMER METODO EN EJECUTARCE AL CREARCE EL FORMULARIO
        //ENCARGADO DE ADAPTAR LA GRILLA PARA CONTENER TODO TIPO DE TABLAS
        public void Inicializar(string tabla, bool claveSecuencia)
        {
            Tabla          = tabla;
            ClaveSecuencia = claveSecuencia;

            _filtroCampos  = "";
            _filtroValores = "";
            _Campo         = "";
            _Checks        = "";
            _Combos        = "";

            _dtCombo = new DataTable();

            _dtCombo.Columns.Add("DctColumna", typeof(string));
            _dtCombo.Columns.Add("DctDescripcion", typeof(string));

            DetallesColumnasTablasBus oDetalleBus = new DetallesColumnasTablasBus();

            /*
             *  SE RECUPERA LAS COLUMAS DE LA TABLA QUE SE VA A CARGAR
             *  DETALLES COLUMNAS TABLAS TRAE MUCHA INFORMACION
             *  DE LOS CAMPOS DE LA BASE DE DATOS Y DE LAS TABLAS
             *  A TRABAJAR, CONTROLAR BIEN CUALES SON ESOS DATOS,
             *  Y INDICAR PARA QUE SIRVE CADA CAMPO, COMO VA A MODIFICAR LA EJECUCION DEL PROGRAMA?
             */
            ListDetalle = oDetalleBus.DetallesColumnasTablasGetByCodigo(tabla);

            /*  DE LAS COLUMAS QUE SE RECUPERAN DE LA BD, SE CONTROLA QUE TIPO DE CONTROL ES
             *  EN EL CASO DE SER COMBO O CHECK
             *
             *  NO SE QUE SE HACE CON LAS VARIABLES _Combos y _Check
             *  TAMBIEN SE HACE LA CARGA DE LA QUERY QUE LUEGO BUSCARA LOS DATOS
             */
            foreach (DetallesColumnasTablas oDetalle in ListDetalle)
            {
                if (oDetalle.DctNroOrden == 1)
                {
                    // ESTO ES PARA PODER GUARDAR EL NOMBRE DE LA COLUMNA
                    ColumnaClave = oDetalle.DctDescripcion;
                }

                //ACA SE PUEDEN CARGAR MAS CONTROLES PARA DARLE VERSATILIDAD A LA GRILLA
                switch (oDetalle.DctTipoControl)
                {
                //          ESTO ESTOY MUY SEGURO QUE SE PUEDE OMITIR TOTAL MENTE......
                case "COMBO":
                {
                    _Combos += ' ' + oDetalle.DctColumna + ' ' + oDetalle.DctDescripcion + ',';
                    break;
                }

                case "CHECK":
                {
                    _Checks += ' ' + oDetalle.DctColumna + ' ' + oDetalle.DctDescripcion + ',';
                    break;
                }
                }
                _Campo = _Campo + ' ' + oDetalle.DctColumna + ' ' + oDetalle.DctDescripcion + ',';
                if ((oDetalle.DctFiltroBusqueda == "S") && (oDetalle.DctTipoControl != "FECHA") && oDetalle.DctTipoControl != "ESTADO")
                {
                    _dtCombo.Rows.Add(oDetalle.DctColumna, oDetalle.DctDescripcion);
                }
                if ((oDetalle.DctFiltroBusqueda == "S") && (oDetalle.DctTipoControl == "FECHA"))
                {
                    _vista.grupoFecha = true;
                    _vista.fechaDesde = DateTime.Now.Date.AddMonths(-1);
                    _vista.fechaHasta = DateTime.Now.Date;
                    _filtroCampos     = _filtroCampos + oDetalle.DctColumna + "&";
                    _Fecha            = oDetalle.DctColumna + "&";
                    _filtroValores    = _filtroValores + _vista.fechaDesde.ToString("dd/MM/yyyy") + "%" + _vista.fechaHasta.ToString("dd/MM/yyyy") + "&";
                }
                if ((oDetalle.DctFiltroBusqueda == "S") && (oDetalle.DctTipoControl == "ESTADO"))
                {
                    _vista.grupoEstado = true;
                    _filtroCampos      = _filtroCampos + oDetalle.DctColumna + "&";
                    _filtroValores     = _filtroValores + _vista.comboEstado.Text + "&";
                }
            }
            //FIN DEL FOREACH

            /*
             * HASTA ACA SE ENCARGO DE PREPARAR LOS DATOS PARA DESPUES CARGAR LA GRILLA
             */
            //SE CARGA EL COMBO DE BUSQUEDA
            oUtil.CargarCombo(_vista.comboBuscar, _dtCombo, "DctColumna", "DctDescripcion");
            if (_Campo.Length > 0)
            {
                _Campo = _Campo.Substring(0, _Campo.Length - 1);
            }

            /*
             * ACA HACE LA BUSQUEDA EN LA BASE DE DATOS
             */
            TablasBus oTablasBus = new TablasBus();
            DataTable dt         = oTablasBus.TablasBusquedaGetAllFilter(tabla, _Campo, _filtroCampos, _filtroValores);

            //CARGAR GRILLA
            _vista.grilla.AutoGenerateColumns = false;
            _vista.cantidad = oUtil.CargarGrilla(_vista.grilla, dt) + " registros";

            //SUBRUTINA ENCARGADA DE QUE LA GRILLA TENGA LAS COLUMNAS DEL TIPO NECESARIA
            generarDT(ListDetalle);
            //SUBRUTINA QUE ENLAZA LOS DATOS RECUPERADOS CON LA GRILLA YA PREPARADA
            vincularDT(_vista.grilla);


            //LA ULTIMA COLUMNA ES EL CONTROL PARA SABER SI LA FILA FUE CREADA, MODIFICADA O ELIMINADA
            _vista.grilla.Columns.Add("ALTERADO", "");
            _vista.grilla.Columns["ALTERADO"].Visible = false;

            if (claveSecuencia)
            {
                _vista.grilla.Columns[ColumnaClave].ReadOnly = true;
            }
            //ESTE METODO SE UTILIZARA PARA ACOMODAR LAS COLUMNAS, CELDAS O CUALQUEIR OTRA PROPIEDAD VISUAL
            //DE LA GRILLA, ORIENTADA A PERSONALIZAR MAS LA GRILLA DEPENDIENDO LA TABLA QUE SE LE PIDA
            // TRABAJAR
            presonalizarGrilla(_vista.grilla, tabla);

            //SETEA TODAS LAS ROWS EN ESTADO SIN MODIFICACION
            foreach (DataGridViewRow row in _vista.grilla.Rows)
            {
                if (!row.IsNewRow)
                {
                    row.Cells["ALTERADO"].Value = "0";
                }
            }

            // Obtengo nombre de la tabla
            Tablas otabla = new Tablas();

            otabla = oTablasBus.TablasGetById(tabla);

            // Obtengo la estructura de la tabla con la que cargue la grilla
            //LA ESTRUCTURA SE ENCARGA DESPUES DE AYUDAR A PASAR LOS VALORES A LA CLASE BISSNES DE TABLAS PARA REALIZAR LOS CAMBIOS EN LA BASE DE DATOS
            _estructuraTablaGrilla = oTablasBus.Estructura(otabla.TabNombre);

            // Si la clave es secuencia no permito editarla, caso contrario si
            // La clave se edita unicamente cuando se agrega un nuevo registro, esto se habilita en addnew
            // cuando doy confirmar cambios se debe validar cada uno de los campos teniendo en cuenta los tipos de datos de la tabla y el mapeo
        }
        //ESTE METODO SE ENCARGA DE IMPACTAR LOS NUEVOS CAMBIOS A LA BASE DE DATOS
        public void ActualizaTabla(string Tabla, string campoClave, bool claveSecuencia)
        {
            // Obtener de DetallesColumnasTablas todos los campos de la tabla menos el campo clave
            // Pasar esos campos a un arreglo de campos y valores
            // actualizar
            bool      datosOK   = true;
            Tablas    otabla    = new Tablas();
            TablasBus tablasGrd = new TablasBus();

            otabla = tablasGrd.TablasGetById(Tabla);


            if (ListDetalle == null)
            {
                DetallesColumnasTablasBus oDetalleGrd = new DetallesColumnasTablasBus();
                ListDetalle = oDetalleGrd.DetallesColumnasTablasGetByCodigo(Tabla);
            }

            //ACA SE RECORREN TODAS LAS ROWS DE LA GRILLA
            foreach (DataGridViewRow row in _vista.grilla.Rows)
            {
                if (!row.IsNewRow)
                {
                    string caso = row.Cells["ALTERADO"].Value.ToString();
                    if (caso != "0")
                    {
                        string[] nombreCampos  = { };
                        string[] valoresCampos = { };
                        string   valorClave    = "";
                        string   columnaClave  = "";
                        int      posicion      = 0;

                        // Actualizar tabla
                        foreach (DetallesColumnasTablas oDetalle in ListDetalle)
                        {
                            posicion++;
                            if (oDetalle.DctDescripcion != campoClave || (row.Cells[_vista.grilla.ColumnCount - 1].Value.ToString() == "3" && oDetalle.DctDescripcion == campoClave && !claveSecuencia))
                            {
                                Array.Resize(ref nombreCampos, nombreCampos.Length + 1);
                                Array.Resize(ref valoresCampos, valoresCampos.Length + 1);
                                nombreCampos[nombreCampos.Length - 1] = oDetalle.DctColumna;

                                if (row.Cells[posicion - 1].Visible)
                                {
                                    if (row.Cells[posicion - 1].ValueType == typeof(DateTime))
                                    {
                                        String fechatmp;
                                        fechatmp = row.Cells[posicion - 1].FormattedValue.ToString();
                                        valoresCampos[valoresCampos.Length - 1] = fechatmp;
                                    }
                                    else
                                    {
                                        if (row.Cells[posicion - 1].Value != null)
                                        {
                                            valoresCampos[valoresCampos.Length - 1] = row.Cells[posicion - 1].Value.ToString();
                                        }
                                        else
                                        {
                                            if (oDetalle.DctTipoControl == "CHKCK")
                                            {
                                                valoresCampos[valoresCampos.Length - 1] = ((DataGridViewCheckBoxCell)row.Cells[posicion - 1]).FalseValue.ToString();
                                            }
                                        }
                                    }
                                }

                                else
                                // Si la columna a actualizar no es visible tiene una homonima visible
                                // Busco la homonima visible y tomo su valor que es el que debo tener en cuenta para actualizar
                                //ACA TENDRIA QUE RECUPERAR EL VALOR DEL cmbLista, pero no lo hace!!!!!!!!!!!!

                                {
                                    object celda = row.Cells[oDetalle.DctColumna];

                                    switch (oDetalle.DctTipoControl)
                                    {
                                    case "COMBO":
                                    {
                                        valoresCampos[valoresCampos.Length - 1] = ((DataGridViewComboBoxCell)celda).Value.ToString();
                                        break;
                                    }

                                    case "CHKCK":
                                    {
                                        valoresCampos[valoresCampos.Length - 1] = ((DataGridViewCheckBoxCell)celda).Value.ToString();

                                        break;
                                    }

                                    case "FECHA":
                                    {
                                        valoresCampos[valoresCampos.Length - 1] = ((DataGridViewTextBoxCell)celda).Value.ToString();
                                        valoresCampos[valoresCampos.Length - 1] = valoresCampos[valoresCampos.Length - 1].Substring(0, 9);
                                        break;
                                    }
                                    }
                                }
                            }
                            else
                            {
                                if (row.Cells[posicion - 1].Value != null)
                                {
                                    valorClave = row.Cells[posicion - 1].Value.ToString();
                                }
                                columnaClave = oDetalle.DctColumna;
                            }
                        }
                        ;
                        //FIN FOREACH DE DETALLES COLUMNA
                        // Para cada registro deberia actualizar su estado si se pudo actualizar
                        switch (caso)
                        {
                        case "1":
                        {
                            // Update
                            // Para cada campo validar que tenga el tipo de dato adecuado
                            // contra la estructura de la tabla que esta en _estructuraTablaGrilla datatable
                            // Si todos los campos menos la clave son validos actualizo
                            foreach (DataRow oCampo in _estructuraTablaGrilla.Rows)
                            {
                                int pos;
                                pos = Array.IndexOf(nombreCampos, oCampo.ItemArray[2]);
                                if (pos >= 0 && datosOK)
                                {
                                    datosOK = (oUtil.TipoDatoValido(valoresCampos[pos], oCampo.ItemArray[4].ToString()));
                                }
                                //MessageBox.Show(oCampo.ItemArray[2].ToString()); // campo
                            }
                            if (datosOK && tablasGrd.TablaActualizaGrid(otabla.TabNombre, nombreCampos, valoresCampos, columnaClave + "='" + valorClave + "'", "U"))
                            {
                                row.Cells[_vista.grilla.ColumnCount - 1].Value = "0";
                            }
                            break;
                        }

                        case "2":
                        {
                            // Delete
                            if (datosOK && tablasGrd.TablaActualizaGrid(otabla.TabNombre, nombreCampos, valoresCampos, columnaClave + "='" + valorClave + "'", "D"))
                            {
                                _vista.grilla.Rows.Remove(row);
                                row.Cells[_vista.grilla.ColumnCount - 1].Value = "0";
                            }
                            break;
                        }

                        case "3":
                        {
                            // Insert
                            // Para cada campo validar que tenga el tipo de dato adecuado
                            // contra la estructura de la tabla que esta en _estructuraTablaGrilla datatable
                            // Si todos los campos inclusive la clave, si no es secuencia, son validos actualizo
                            foreach (DataRow oCampo in _estructuraTablaGrilla.Rows)
                            {
                                int pos;
                                pos = Array.IndexOf(nombreCampos, oCampo.ItemArray[2]);
                                if (pos >= 0 && datosOK)
                                {
                                    datosOK = (oUtil.TipoDatoValido(valoresCampos[pos], oCampo.ItemArray[4].ToString()));
                                    if (valoresCampos[pos] != null)
                                    {
                                        datosOK = valoresCampos[pos].Length > 0 || oCampo.ItemArray[8].ToString() == "Y";
                                    }
                                }
                            }
                            if (claveSecuencia)
                            {
                                if (datosOK && tablasGrd.TablaActualizaGrid(otabla.TabNombre, nombreCampos, valoresCampos, columnaClave + "='" + valorClave + "'", "IN"))
                                {
                                    row.Cells[_vista.grilla.ColumnCount - 1].Value = "0";
                                }
                            }
                            else
                            {
                                if (datosOK && tablasGrd.TablaActualizaGrid(otabla.TabNombre, nombreCampos, valoresCampos, columnaClave + "='" + valorClave + "'", "I"))
                                {
                                    row.Cells[_vista.grilla.ColumnCount - 1].Value = "0";
                                }
                            }


                            break;
                        }
                        }
                    }
                    ;
                    if (!datosOK)
                    {
                        MessageBox.Show("Error al actualizar los datos, Revice las filas resaltadas.");
                    }
                }
            }
        }
Exemple #6
0
        public void Inicializar(string tabla, string campoClave, bool claveSecuencia)
        {
            _filtroCampos  = "";
            _filtroValores = "";
            _Campo         = "";
            _Checks        = "";
            _Combos        = "";
            _dtCombo       = new DataTable();
            _dtCombo.Columns.Add("DctColumna", typeof(string));
            _dtCombo.Columns.Add("DctDescripcion", typeof(string));
            DetallesColumnasTablasBus     oDetalleBus = new DetallesColumnasTablasBus();
            List <DetallesColumnasTablas> ListDetalle = oDetalleBus.DetallesColumnasTablasGetByCodigo(tabla);

            foreach (DetallesColumnasTablas oDetalle in ListDetalle)
            {
                if (oDetalle.DctTipoControl == "COMBO")
                {
                    _Combos += ' ' + oDetalle.DctColumna + ' ' + oDetalle.DctDescripcion + ',';
                }
                if (oDetalle.DctTipoControl == "CHECK")
                {
                    _Checks += ' ' + oDetalle.DctColumna + ' ' + oDetalle.DctDescripcion + ',';
                }
                //else
                _Campo = _Campo + ' ' + oDetalle.DctColumna + ' ' + oDetalle.DctDescripcion + ',';
                if ((oDetalle.DctFiltroBusqueda == "S") && (oDetalle.DctTipoControl != "FECHA") && oDetalle.DctTipoControl != "ESTADO")
                {
                    _dtCombo.Rows.Add(oDetalle.DctColumna, oDetalle.DctDescripcion);
                }

                if ((oDetalle.DctFiltroBusqueda == "S") && (oDetalle.DctTipoControl == "FECHA"))
                {
                    _vista.grupoFecha = true;
                    _vista.fechaDesde = DateTime.Now.Date.AddMonths(-1);
                    _vista.fechaHasta = DateTime.Now.Date;
                    _filtroCampos     = _filtroCampos + oDetalle.DctColumna + "&";
                    _Fecha            = oDetalle.DctColumna + "&";
                    _filtroValores    = _filtroValores + _vista.fechaDesde.ToString("dd/MM/yyyy") + "%" + _vista.fechaHasta.ToString("dd/MM/yyyy") + "&";
                }
                if ((oDetalle.DctFiltroBusqueda == "S") && (oDetalle.DctTipoControl == "ESTADO"))
                {
                    _vista.grupoEstado = true;
                    _filtroCampos      = _filtroCampos + oDetalle.DctColumna + "&";
                    _filtroValores     = _filtroValores + _vista.comboEstado.Text + "&";
                }
                if (campoClave == oDetalle.DctDescripcion)
                {
                    columnaClave = oDetalle.DctColumna;
                }
            }

            oUtil.CargarCombo(_vista.comboBuscar, _dtCombo, "DctColumna", "DctDescripcion");
            if (_Campo.Length > 0)
            {
                _Campo = _Campo.Substring(0, _Campo.Length - 1);
            }
            TablasBus oTablasBus = new TablasBus();
            DataTable dt         = oTablasBus.TablasBusquedaGetAllFilter(tabla, _Campo, _filtroCampos, _filtroValores);

            _vista.cantidad = oUtil.CargarGrilla(_vista.grilla, dt) + " registros";

            int indice = 0;

            foreach (DetallesColumnasTablas oDetalle in ListDetalle)
            {
                if (oDetalle.DctTipoControl == "COMBO")
                {
                    DataGridViewComboBoxColumn cmb = new DataGridViewComboBoxColumn();
                    cmb.HeaderText = oDetalle.DctDescripcion;
                    cmb.Name       = oDetalle.DctColumna;
                    // CARGAR LA LISTA DE VALORES DEL COMBO
                    switch (oDetalle.DctListaValores)
                    {
                    case "AREAS":
                    {
                        AreasBus oAreaBusCombo = new AreasBus();

                        cmb.DataSource    = oAreaBusCombo.AreasGetAll();
                        cmb.DisplayMember = "AreDescripcion";
                        cmb.ValueMember   = "AreCodigo";
                        break;
                    }

                    default: break;
                    }
                    _vista.grilla.Columns.Add(cmb);
                    foreach (DataGridViewRow row in _vista.grilla.Rows)
                    {
                        row.Cells[_vista.grilla.ColumnCount - 1].Value = row.Cells[indice].Value;
                    }
                    _vista.grilla.Columns[indice].Visible = false;
                }
                if (oDetalle.DctTipoControl == "CHECK")
                {
                    DataGridViewCheckBoxColumn chk = new DataGridViewCheckBoxColumn();
                    chk.HeaderText = oDetalle.DctDescripcion;
                    chk.Name       = oDetalle.DctColumna;
                    _vista.grilla.Columns.Add(chk);
                    foreach (DataGridViewRow row in _vista.grilla.Rows)
                    {
                        row.Cells[_vista.grilla.ColumnCount - 1].Value = Equals(row.Cells[indice].Value, "S");
                    }
                    _vista.grilla.Columns[indice].Visible = false;
                }
                indice++;
            }

            _vista.grilla.Columns.Add("Estado", "");
            _vista.grilla.Columns[campoClave].ReadOnly = true;
            _vista.grilla.Columns[_vista.grilla.ColumnCount - 1].Visible = false;
            foreach (DataGridViewRow row in _vista.grilla.Rows)
            {
                //  if (!row.IsNewRow)
                row.Cells[_vista.grilla.ColumnCount - 1].Value = "0";
            }
            // Obtengo nombre de la tabla
            Tablas otabla = new Tablas();

            otabla = oTablasBus.TablasGetById(tabla);
            // Obtengo la estructura de la tabla con la que cargue la grilla
            _estructuraTablaGrilla = oTablasBus.Estructura(otabla.TabNombre);
            // Si la clave es secuencia no permito editarla, caso contrario si
            // La clave se edita unicamente cuando se agrega un nuevo registro, esto se habilita en addnew
            // cuando doy confirmar cambios se debe validar cada uno de los campos teniendo en cuenta los tipos de datos de la tabla y el mapeo
        }
Exemple #7
0
        public void ActualizaTabla(string Tabla, string campoClave, bool claveSecuencia)
        {
            // Obtener de DetallesColumnasTablas todos los campos de la tabla menos el campo clave
            // Pasar esos campos a un arreglo de campos y valores
            // actualizar
            bool      datosOK   = true;
            Tablas    otabla    = new Tablas();
            TablasBus tablasGrd = new TablasBus();

            otabla = tablasGrd.TablasGetById(Tabla);
            DetallesColumnasTablasBus     oDetalleGrd = new DetallesColumnasTablasBus();
            List <DetallesColumnasTablas> ListDetalle = oDetalleGrd.DetallesColumnasTablasGetByCodigo(Tabla);

            foreach (DataGridViewRow row in _vista.grilla.Rows)
            {
                if (!row.IsNewRow)
                {
                    string[] nombreCampos  = { };
                    string[] valoresCampos = { };
                    string   valorClave    = "";
                    string   columnaClave  = "";
                    int      posicion      = 0;
                    // Actualizar tabla
                    foreach (DetallesColumnasTablas oDetalle in ListDetalle)
                    {
                        posicion++;
                        if (oDetalle.DctDescripcion != campoClave ||
                            (row.Cells[_vista.grilla.ColumnCount - 1].Value.ToString() == "3" && oDetalle.DctDescripcion == campoClave && !claveSecuencia))
                        {
                            Array.Resize(ref nombreCampos, nombreCampos.Length + 1);
                            Array.Resize(ref valoresCampos, valoresCampos.Length + 1);
                            nombreCampos[nombreCampos.Length - 1] = oDetalle.DctColumna;

                            if (row.Cells[posicion - 1].Visible)
                            {
                                if (row.Cells[posicion - 1].ValueType == typeof(DateTime))
                                {
                                    String fechatmp;
                                    fechatmp = row.Cells[posicion - 1].FormattedValue.ToString();
                                    valoresCampos[valoresCampos.Length - 1] = fechatmp;
                                }
                                else
                                {
                                    valoresCampos[valoresCampos.Length - 1] = row.Cells[posicion - 1].Value.ToString();
                                }
                            }
                            else
                            // Si la columna a actualizar no es visible tiene una homonima visible
                            // Busco la homonima visible y tomo su valor que es el que debo tener en cuenta para actualizar
                            {
                                for (int pos = posicion; pos < row.Cells.Count; pos++)
                                {
                                    if (_vista.grilla.Columns[posicion - 1].Name == _vista.grilla.Columns[pos].Name)
                                    {
                                        if (_vista.grilla.Columns[pos].ValueType == typeof(string))
                                        {
                                            valoresCampos[valoresCampos.Length - 1] = row.Cells[pos].Value.ToString();
                                        }
                                        else //Es un checkbox
                                        {
                                            valoresCampos[valoresCampos.Length - 1] = row.Cells[pos].Value.Equals(true) ? "S" : "N";
                                        }
                                    }
                                }
                            }
                        }
                        else
                        //Agrego un registro y la clave no es secuencia
                        {
                            valorClave   = row.Cells[posicion - 1].Value.ToString();
                            columnaClave = oDetalle.DctColumna;
                        }
                    }
                    ;
                    // Para cada registro deberia actualizar su estado si se pudo actualizar
                    if (row.Cells[_vista.grilla.ColumnCount - 1].Value.ToString() == "1" && !row.IsNewRow)
                    {
                        // Update
                        // Para cada campo validar que tenga el tipo de dato adecuado
                        // contra la estructura de la tabla que esta en _estructuraTablaGrilla datatable
                        // Si todos los campos menos la clave son validos actualizo
                        foreach (DataRow oCampo in _estructuraTablaGrilla.Rows)
                        {
                            int pos;
                            pos = Array.IndexOf(nombreCampos, oCampo.ItemArray[2]);
                            if (pos >= 0 && datosOK)
                            {
                                datosOK = (oUtil.TipoDatoValido(valoresCampos[pos], oCampo.ItemArray[4].ToString()));
                            }
                            //MessageBox.Show(oCampo.ItemArray[2].ToString()); // campo
                        }
                        if (datosOK && tablasGrd.TablaActualizaGrid(otabla.TabNombre, nombreCampos, valoresCampos, columnaClave + "='" + valorClave + "'", "U"))
                        {
                            row.Cells[_vista.grilla.ColumnCount - 1].Value = "0";
                        }
                    }
                    else if (row.Cells[_vista.grilla.ColumnCount - 1].Value.ToString() == "2" && !row.IsNewRow)
                    {
                        // Delete
                        tablasGrd.TablaActualizaGrid(otabla.TabNombre, nombreCampos, valoresCampos, columnaClave + "='" + valorClave + "'", "D");
                    }
                    else if (row.Cells[_vista.grilla.ColumnCount - 1].Value.ToString() == "3" && !row.IsNewRow)
                    {
                        // Insert
                        // Para cada campo validar que tenga el tipo de dato adecuado
                        // contra la estructura de la tabla que esta en _estructuraTablaGrilla datatable
                        // Si todos los campos inclusive la clave, si no es secuencia, son validos actualizo
                        foreach (DataRow oCampo in _estructuraTablaGrilla.Rows)
                        {
                            int pos;
                            pos = Array.IndexOf(nombreCampos, oCampo.ItemArray[2]);
                            if (pos >= 0 && datosOK)
                            {
                                datosOK = (oUtil.TipoDatoValido(valoresCampos[pos], oCampo.ItemArray[4].ToString()));
                                datosOK = valoresCampos[pos].Length > 0 || oCampo.ItemArray[8].ToString() == "Y";
                            }
                        }
                        if (datosOK && tablasGrd.TablaActualizaGrid(otabla.TabNombre, nombreCampos, valoresCampos, columnaClave + "='" + valorClave + "'", "I"))
                        {
                            row.Cells[_vista.grilla.ColumnCount - 1].Value = "0";
                        }
                    }
                    ;
                }
            }
            ;
            if (!datosOK)
            {
                MessageBox.Show("Error al actualizar los datos, Revice las filas resaltadas.");
            }
        }
Exemple #8
0
        private void Inicializar()
        {
            int x = 120;
            int y = 40;
            DetallesColumnasTablasBus     oDetalleBus = new DetallesColumnasTablasBus();
            List <DetallesColumnasTablas> ListDetalle = oDetalleBus.DetallesColumnasTablasGetByCodigo(_Tabla);

            foreach (DetallesColumnasTablas oDetalle in ListDetalle)
            {
                Label lblELabel = new System.Windows.Forms.Label();
                lblELabel.Location = new System.Drawing.Point(x - 100, y);
                lblELabel.Name     = "lblE" + oDetalle.DctColumna;
                lblELabel.Size     = new System.Drawing.Size(88, 21);
                lblELabel.TabIndex = 0;
                lblELabel.Text     = oDetalle.DctDescripcion + ":";
                Controls.Add(lblELabel);

                if (oDetalle.DctTipoControl == "TEXTO")
                {
                    TextBox txtTexto = new System.Windows.Forms.TextBox();
                    txtTexto.Location = new System.Drawing.Point(x, y);
                    txtTexto.Name     = "txt" + oDetalle.DctColumna;
                    txtTexto.Size     = new System.Drawing.Size(88, 21);
                    txtTexto.TabIndex = 0;
                    txtTexto.Text     = "";
                    Controls.Add(txtTexto);
                }

                if (oDetalle.DctTipoControl == "LABEL")
                {
                    Label lblLabel = new System.Windows.Forms.Label();
                    lblLabel.Location = new System.Drawing.Point(x, y);
                    lblLabel.Name     = "txt" + oDetalle.DctColumna;
                    lblLabel.Size     = new System.Drawing.Size(88, 21);
                    lblLabel.TabIndex = 0;
                    lblLabel.Text     = "";
                    Controls.Add(lblLabel);
                }


                if (oDetalle.DctTipoControl == "COMBO")
                {
                    ComboBox cmbCombo = new System.Windows.Forms.ComboBox();
                    cmbCombo.Location = new System.Drawing.Point(x, y);
                    cmbCombo.Name     = "cmb" + oDetalle.DctColumna;
                    cmbCombo.Size     = new System.Drawing.Size(88, 21);
                    cmbCombo.TabIndex = 0;
                    Controls.Add(cmbCombo);
                }


                if (oDetalle.DctTipoControl == "FECHA")
                {
                    DateTimePicker dtpDate = new System.Windows.Forms.DateTimePicker();
                    dtpDate.Location = new System.Drawing.Point(x, y);
                    dtpDate.Name     = "dtp" + oDetalle.DctColumna;
                    dtpDate.Size     = new System.Drawing.Size(88, 21);
                    dtpDate.TabIndex = 0;
                    Controls.Add(dtpDate);
                }

                y += 70;
            }

            Button btnBotonGuardar = new System.Windows.Forms.Button();

            btnBotonGuardar.Location = new System.Drawing.Point(x, y);
            btnBotonGuardar.Name     = "btnGuardar";
            btnBotonGuardar.Size     = new System.Drawing.Size(80, 30);
            btnBotonGuardar.Text     = "Guardar";
            btnBotonGuardar.TabIndex = 0;
            Controls.Add(btnBotonGuardar);

            Button btnBotonCancelar = new System.Windows.Forms.Button();

            btnBotonCancelar.Location = new System.Drawing.Point(x + 100, y);
            btnBotonCancelar.Name     = "btnCancelar";
            btnBotonCancelar.Text     = "&Cancelar";
            btnBotonCancelar.Size     = new System.Drawing.Size(80, 30);
            btnBotonCancelar.TabIndex = 0;
            Controls.Add(btnBotonCancelar);
        }
        public void Inicializar(string tabla, string tabla2, string nexoTablas, string campoClave1, string campoClave2)

        /*
         *  CONSIDERANDO LA NUEVA IDEA EN TABLA2 VA A ESTAR EL NEXO DE CAMPOS
         */
        {
            tablaPrimaria      = tabla;
            tablaSecundaria    = tabla2;
            tablaNexo          = nexoTablas;
            _camposPrimarios   = campoClave1;
            _camposSecundarios = campoClave2;
            _dtCombo           = new DataTable();
            _dtCombo.Columns.Add("DctColumna", typeof(string));
            _dtCombo.Columns.Add("DctDescripcion", typeof(string));

            DataTable dt = new DataTable();
            DetallesColumnasTablasBus     oDetalleBus = new DetallesColumnasTablasBus();
            List <DetallesColumnasTablas> list        = oDetalleBus.DetallesColumnasTablasGetByCodigo(tablaSecundaria);

            foreach (DetallesColumnasTablas oDetalle in list)
            {
                foreach (string a in _camposSecundarios.Split('&'))
                {
                    if (oDetalle.DctColumna == a)
                    {
                        _Campo = _Campo + ' ' + oDetalle.DctColumna + ' ' + oDetalle.DctDescripcion + ',';
                        dt.Columns.Add(oDetalle.DctDescripcion);
                        if ((oDetalle.DctFiltroBusqueda == "S") && (oDetalle.DctTipoControl != "FECHA") && oDetalle.DctTipoControl != "ESTADO")
                        {
                            _dtCombo.Rows.Add(oDetalle.DctColumna, oDetalle.DctDescripcion);
                        }
                    }
                }
            }
            if (_Campo.Length > 0)
            {
                _Campo = _Campo.Substring(0, _Campo.Length - 1);
            }
            //SE CARGA EL COMBO DE BUSQUEDA
            oUtil.CargarCombo(_vista.busquedaSecundaria, _dtCombo, "DctColumna", "DctDescripcion");

            _dtCombo = new DataTable();
            _dtCombo.Columns.Add("DctColumna", typeof(string));
            _dtCombo.Columns.Add("DctDescripcion", typeof(string));

            dt     = new DataTable();
            _Campo = "";
            list   = oDetalleBus.DetallesColumnasTablasGetByCodigo(tablaPrimaria);
            foreach (DetallesColumnasTablas oDetalle in list)
            {
                foreach (string a in _camposPrimarios.Split('&'))
                {
                    if (oDetalle.DctColumna == a)
                    {
                        _Campo = _Campo + ' ' + oDetalle.DctColumna + ' ' + oDetalle.DctDescripcion + ',';
                        dt.Columns.Add(oDetalle.DctDescripcion);
                        if ((oDetalle.DctFiltroBusqueda == "S") && (oDetalle.DctTipoControl != "FECHA") && oDetalle.DctTipoControl != "ESTADO")
                        {
                            _dtCombo.Rows.Add(oDetalle.DctColumna, oDetalle.DctDescripcion);
                        }
                    }
                }
            }

            if (_Campo.Length > 0)
            {
                _Campo = _Campo.Substring(0, _Campo.Length - 1);
            }
            //SE CARGA EL COMBO DE BUSQUEDA
            oUtil.CargarCombo(_vista.busquedaPrimaria, _dtCombo, "DctColumna", "DctDescripcion");
            TablasBus oTablasBus = new TablasBus();

            _vista.lblEtiqueta1.Text = oTablasBus.TablasGetById(tabla).TabNombre;
            _vista.lblEtiqueta2.Text = oTablasBus.TablasGetById(tabla2).TabNombre;
            dt = oTablasBus.TablasBusquedaGetAllFilter(tabla, _Campo, _filtroCampos, _filtroValores);
            _vista.cantidadPrimaria = "Se encontraron: " + oUtil.CargarGrilla(_vista.grillaPrimaria, dt) + " registros";
        }
        public void CargarGrillaSecundaria()
        {
            try
            {
                clavePrimaria  = _vista.grillaPrimaria.SelectedCells[0].Value.ToString();
                _filtroCampos  = "";
                _filtroValores = "";
                _Campo         = "";
                string[]  columnas = _camposSecundarios.Split('&');
                DataTable dt       = new DataTable();
                DetallesColumnasTablasBus     oDetalleBus = new DetallesColumnasTablasBus();
                List <DetallesColumnasTablas> list        = oDetalleBus.DetallesColumnasTablasGetByCodigo(tablaSecundaria);
                foreach (DetallesColumnasTablas oDetalle in list)
                {
                    foreach (string a in columnas)
                    {
                        if (oDetalle.DctColumna == a)
                        {
                            _Campo = _Campo + ' ' + oDetalle.DctColumna + ' ' + oDetalle.DctDescripcion + ',';
                            dt.Columns.Add(oDetalle.DctDescripcion);
                            if ((oDetalle.DctFiltroBusqueda == "S") && (oDetalle.DctTipoControl != "FECHA") && oDetalle.DctTipoControl != "ESTADO")
                            {
                                //    _dtCombo.Rows.Add(oDetalle.DctColumna, oDetalle.DctDescripcion);
                            }
                        }
                    }
                }
                if (_Campo.Length > 0)
                {
                    _Campo = _Campo.Substring(0, _Campo.Length - 1);
                }
                //SE CARGA EL COMBO DE BUSQUEDA

                /*   oUtil.CargarCombo(_vista.comboBuscar, _dtCombo, "DctColumna", "DctDescripcion");
                 * if (_Campo.Length > 0)
                 *     _Campo = _Campo.Substring(0, _Campo.Length - 1);
                 */
                TablasBus oTablasBus = new TablasBus();
                Tablas    oTabla     = oTablasBus.TablasGetById(tablaSecundaria);
                string    codigo1    = _camposPrimarios.Split('&')[0];
                string    codigo2    = _camposSecundarios.Split('&')[0];
                switch (tablaNexo)
                {
                case "FUNCIONALIDADES_ROLES":
                {
                    FuncionalidadesRolesBus     oFuncionalidadesRol = new FuncionalidadesRolesBus();
                    List <FuncionalidadesRoles> listaRF             = oFuncionalidadesRol.FuncionalidadesGetById(clavePrimaria);
                    FuncionalidadesBus          oFunBus             = new FuncionalidadesBus();
                    Funcionalidades             oFuncionalidades    = new Funcionalidades();

                    foreach (FuncionalidadesRoles a in listaRF)
                    {
                        oFuncionalidades = oFunBus.FuncionalidadesGetById(a.FunCodigo);
                        cargarDT(dt, oFuncionalidades);
                        //dt.Rows.Add(oFuncionalidades.FunCodigo, oFuncionalidades.FunDescripcion, oFuncionalidades.FunFuncionalidad, oFuncionalidades.ffoCodigo);
                    }
                    break;
                }

                case "FUNCIONALIDADES_USUARIOS":
                {
                    FuncionalidadesUsuariosBus     oFuncionalidadesUsr = new FuncionalidadesUsuariosBus();
                    List <FuncionalidadesUsuarios> listaUF             = oFuncionalidadesUsr.FuncionalidadesUsuariosGetById(clavePrimaria);
                    FuncionalidadesBus             oFunBus             = new FuncionalidadesBus();
                    Funcionalidades oFuncionalidades = new Funcionalidades();

                    foreach (FuncionalidadesUsuarios a in listaUF)
                    {
                        oFuncionalidades = oFunBus.FuncionalidadesGetById(a.FunCodigo);
                        cargarDT(dt, oFuncionalidades);
                        //dt.Rows.Add(oFuncionalidades.FunCodigo, oFuncionalidades.FunDescripcion, oFuncionalidades.FunFuncionalidad, oFuncionalidades.ffoCodigo);
                    }
                    break;
                }
                }
                _vista.cantidadSecundaria = "Se encontraron: " + oUtil.CargarGrilla(_vista.grillaSecundaria, dt) + " registros";
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }