コード例 #1
0
        //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
        }
コード例 #2
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
        }