//SE ENCARGA DE GENERAR LA ESTRUCTURA DE LA GRILLA VISIBLE PARA PODER CONTENER LAS DISTINTAS TABLAS private void generarDT(List <DetallesColumnasTablas> lista) { grdGrillaEdit salidass = new grdGrillaEdit(); salidass.AutoGenerateColumns = false; DataTable salida = new DataTable(); foreach (DetallesColumnasTablas dct in lista) { switch (dct.DctTipoControl) { case "TEXTO": { DataGridViewTextBoxColumn txt = new DataGridViewTextBoxColumn(); txt.Name = dct.DctDescripcion; _vista.grilla.Columns.Add(txt); break; } case "NUMERO": { DataGridViewTextBoxColumn txt = new DataGridViewTextBoxColumn(); txt.Name = dct.DctDescripcion; _vista.grilla.Columns.Add(txt); break; } case "COMBO": { #region LISTAS DEL COMBO // DataGridViewComboBoxCell cmb = new DataGridViewComboBoxCell(); DataGridViewComboBoxColumn cmb = new DataGridViewComboBoxColumn(); cmb.HeaderText = dct.DctDescripcion; cmb.Name = dct.DctColumna; // CARGAR LA LISTA DE VALORES DEL COMBO // EN CASO DE QUERER AGREGAR MAS PCIONES DE COMBO SOLO SE TIENE QUE HACER REFERENCIA // A SUS CLASES BISSNES switch (dct.DctListaValores) { case "AREAS": { AreasBus oAreaBusCombo = new AreasBus(); cmb.DataSource = oAreaBusCombo.AreasGetAll(); cmb.DisplayMember = "AreDescripcion"; cmb.ValueMember = "AreCodigo"; break; } case "SUBSISTEMAS": { SubsistemaBus oSubsistemaBus = new SubsistemaBus(); cmb.DataSource = oSubsistemaBus.SubsistemaGetAll(); cmb.DisplayMember = "SbsNombre"; cmb.ValueMember = "SbsCodigo"; break; } case "LOCALIDADES": { LocalidadesBus oLocalidadesBus = new LocalidadesBus(); cmb.DataSource = oLocalidadesBus.LocalidadesGetAll(); cmb.DisplayMember = "LocDescripcion"; cmb.ValueMember = "LocNumero"; break; } case "TIPOS_BARRIOS_LOCALIDADES": { TiposBarriosLocalidadesBus oLocalidadesBus = new TiposBarriosLocalidadesBus(); cmb.DataSource = oLocalidadesBus.TiposBarriosLocalidadesGetAll(); cmb.DisplayMember = "TblDescripcion"; cmb.ValueMember = "TblCodigo"; break; } case "TIPOS_COMPROBANTE": { TiposComprobanteBus oTiposComprobantes = new TiposComprobanteBus(); cmb.DataSource = oTiposComprobantes.TiposComprobanteGetAll(); cmb.DisplayMember = "TcoDescripcion"; cmb.ValueMember = "TcoCodigo"; break; } case "PUNTOS_VENTAS": { PuntosVentasBus oPV = new PuntosVentasBus(); cmb.DataSource = oPV.PuntosVentasGetAll(); cmb.DisplayMember = "PvtDescripcion"; cmb.ValueMember = "PvtNumero"; break; } //case "GRUPOS_CONCEPTOS_IMPUESTOS": // { // GruposConceptosImpuestosBus oGCI = new GruposConceptosImpuestosBus(); // cmb.DataSource = oGCI.GruposConceptosImpuestosGetAll(); // cmb.DisplayMember = "GciDescripcion"; // cmb.ValueMember = "GciCodigo"; // break; // } case "TIPOS_GRUPOS_CONCEPTOS": { TiposGruposConceptosBus oTGC = new TiposGruposConceptosBus(); cmb.DataSource = oTGC.TiposGruposConceptosGetAll(); cmb.DisplayMember = "TgcDescripcion"; cmb.ValueMember = "TgcCodigo"; break; } default: break; } _vista.grilla.Columns.Add(cmb); // salidass.Columns.Add(cmb); break; #endregion } case "CHKCK": { DataGridViewCheckBoxColumn chk = new DataGridViewCheckBoxColumn(); chk.HeaderText = dct.DctDescripcion; chk.Name = dct.DctColumna; // COMO CADA TABLA VA A TENER SU PROPIO VAOR DE REFERENCIA SI SU ESTADO O OTRO VALOR QUE REQUIERA CHKCK // EN ESTA SECCION SE CONFIGURA PARA CADA TABLA QUE VALOR VALOR CORRESPONDE A VERDADERO switch (Tabla) { case "PVC": { chk.TrueValue = "H"; chk.FalseValue = "I"; break; } default: { chk.TrueValue = "S"; chk.FalseValue = "N"; break; } } _vista.grilla.Columns.Add(chk); // salidass.Columns.Add(chk); break; } case "FECHA": { ColumnaCalendario col = new ColumnaCalendario(); col.HeaderText = dct.DctDescripcion; col.Name = dct.DctColumna; _vista.grilla.Columns.Add(col); // salidass.Columns.Add(col); break; } } } salida = (DataTable)salidass.DataSource; }
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 }