public override string RenderControl() { if (!Crud.NegocioActivo || !(bool)ElementoDto.ValorDelAtributo(typeof(TElemento), nameof(IUDtoAttribute.OpcionDeCrear))) { MenuCreacion.QuitarOpcionDeMenu(TipoDeAccionDeCreacion.NuevoElemento); } string htmContenedorCreacion; if (AbrirEnModal) { htmContenedorCreacion = RendelModalDeCreacion(); } else { htmContenedorCreacion = $@" <div id=¨{IdHtml}¨ class=¨{Css.Render(enumCssDiv.DivOculto)} {Css.Render(enumCssCreacion.CuerpoDeCrearcion)}¨ controlador=¨{Crud.Controlador}¨> {RenderContenedorDeCreacionCabecera()} {RenderContenedorDeCreacionCuerpo()} {RenderContenedorDeCreacionPie()} </div> "; } return(htmContenedorCreacion.Render()); }
private static string RenderListaDinamica(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl, double ancho) { var atributos = descriptorControl.atributos; var valores = ValoresDeAtributosComunes(tabla, descriptorControl, atributos); //throw new Exception($"no se ha definido el atributo {nameof(atributos.MostrarExpresion)} para la lista dinámica de la propiedad {descriptorControl.propiedad}"); valores["CssContenedor"] = Css.Render(enumCssControlesDto.ContenedorListaDinamica); valores["Css"] = Css.Render(enumCssControlesDto.ListaDinamica); valores["ClaseElemento"] = atributos.SeleccionarDe.Name; valores["MostrarExpresion"] = atributos.MostrarExpresion.IsNullOrEmpty() ? ElementoDto.ValorDelAtributo(atributos.SeleccionarDe, nameof(IUDtoAttribute.MostrarExpresion)) : atributos.MostrarExpresion; valores["BuscarPor"] = atributos.BuscarPor; valores["Longitud"] = 3; valores["Cantidad"] = 10; valores["CriterioDeFiltro"] = atributos.CriterioDeBusqueda; valores["OnInput"] = $"Crud.{GestorDeEventos.EventosDeListaDinamica}('{TipoAccionDeListaDinamica.cargar}',this)"; valores["OnChange"] = $"Crud.{GestorDeEventos.EventosDeListaDinamica}('{TipoAccionDeListaDinamica.perderFoco}',this)"; valores["Placeholder"] = $"Seleccionar ({atributos.CriterioDeBusqueda}) ..."; valores["GuardarEn"] = atributos.GuardarEn; valores["RestringidoPor"] = atributos.RestringidoPor.ToLower(); valores["ContenidoEn"] = tabla.IdHtmlContenedor; var a = PlantillasHtml.Render(PlantillasHtml.listaDinamicaDto, valores); return(a); }
protected virtual void DefinirColumnasDelGrid() { Mnt.Datos.AnadirColumna(new ColumnaDelGrid <TElemento> { Propiedad = "chksel", Titulo = " ", PorAnchoMnt = 4, PorAnchoSel = 10, Tipo = typeof(bool) }); var propiedades = typeof(TElemento).GetProperties(); foreach (var p in propiedades) { var columna = new ColumnaDelGrid <TElemento> { Propiedad = p.Name, Tipo = p.PropertyType }; IUPropiedadAttribute atributos = ElementoDto.ObtenerAtributos(p); if (atributos != null) { columna.Visible = atributos.EsVisible(enumModoDeTrabajo.Mantenimiento); columna.Titulo = atributos.EtiquetaGrid; columna.ConOrdenacion = atributos.Ordenar; columna.OrdenarPor = atributos.OrdenarPor; columna.Alineada = atributos.Alineada == Aliniacion.no_definida ? columna.Tipo.Alineada() : atributos.Alineada; columna.PorAnchoMnt = atributos.PorAnchoMnt; columna.PorAnchoSel = atributos.PorAnchoSel == 0 ? atributos.PorAnchoMnt : atributos.PorAnchoSel; Mnt.Datos.InsertarColumna(columna, atributos.PosicionEnGrid); } } }
internal void AnadirOpcionDeEnviareMail() { if (!(bool)ElementoDto.ValorDelAtributo(typeof(TElemento), nameof(IUDtoAttribute.OpcionDeEnviar))) { return; } var enviarElementos = new EnviarElementos(); if (Mnt.Crud.Negocio == enumNegocio.No_Definido) { enviarElementos.NumeroMaximoEnLaMultiseleccion = 1; } else { if (Mnt.Crud.Negocio.EsUnNegocio()) { //Todo--> añadir variable de correos a enviar y variables de entidades de negocio var negocioDtm = GestorDeNegocios.LeerNegocio(Mnt.Crud.Contexto, Mnt.Crud.Negocio); } enviarElementos.NumeroMaximoEnLaMultiseleccion = 5; } var opcion = new OpcionDeMenu <TElemento>(Menu, enviarElementos, $"Enviar", enumModoDeAccesoDeDatos.Consultor); Menu.Add(opcion); }
private static string RenderControlesParaMapearElDto(DescriptorDeTabla tabla, short i, short j) { var porcentajeDeEtiqueta = (short)ElementoDto.ValorDelAtributo(typeof(TElemento), nameof(IUDtoAttribute.AnchoEtiqueta)); var pocentajeDeControl = 100 - porcentajeDeEtiqueta; var porcentajeDelSeparador = (short)ElementoDto.ValorDelAtributo(typeof(TElemento), nameof(IUDtoAttribute.AnchoSeparador)); var columna = tabla.ObtenerFila(i).ObtenerColumna(j); var htmlControles = ""; double anchoEtiqueta = columna.NumeroDeEtiquetasVisibles == 0 ? 0 : porcentajeDeEtiqueta / columna.NumeroDeEtiquetasVisibles; double anchoControl = columna.NumeroControlesVisibles == 0 ? 0 : (pocentajeDeControl - (porcentajeDelSeparador * (columna.NumeroControlesVisibles - 1))) / columna.NumeroControlesVisibles; var anadirSeparador = false; if (columna.ColSpan > 1) { var ajuste = anchoEtiqueta / columna.ColSpan; anchoEtiqueta = anchoEtiqueta - ajuste; anchoControl = anchoControl + ajuste; } double anchoTotal = 0; for (short z = 0; z <= columna.PosicionMaxima; z++) { var descriptorControl = columna.ObtenerControlEnLaPosicion(z); if (descriptorControl == null || !descriptorControl.atributos.EsVisible(tabla.ModoDeTrabajo)) { continue; } if (anadirSeparador) { htmlControles = htmlControles + $"<div id=¨{tabla.IdHtml}-{i}-{j}-separador¨ class=¨div-separardor-propiedad¨ style=¨width:2%¨></div>"; anchoTotal += 2; } if (!descriptorControl.atributos.Etiqueta.IsNullOrEmpty()) { htmlControles = htmlControles + RenderEtiquetaDelDto(tabla, descriptorControl, i, j, anchoEtiqueta); anchoTotal = anchoTotal + anchoEtiqueta; } else { anchoControl = 100; } if (z == columna.PosicionMaxima) { anchoControl = 100 - anchoTotal; } htmlControles = htmlControles + RenderDescriptorControlDto(tabla, descriptorControl, anchoControl); anchoTotal = anchoTotal + anchoControl; anadirSeparador = true; } return(htmlControles); }
internal void AnadirOpcionDeIrACrear() { if (!(bool)ElementoDto.ValorDelAtributo(typeof(TElemento), nameof(IUDtoAttribute.OpcionDeCrear))) { return; } var crearElemento = new CrearElemento(); var opcion = new OpcionDeMenu <TElemento>(Menu, crearElemento, $"Nuevo", enumModoDeAccesoDeDatos.Gestor); Menu.Add(opcion); }
internal void AnadirOpcionDeIrAExportar() { if (!(bool)ElementoDto.ValorDelAtributo(typeof(TElemento), nameof(IUDtoAttribute.OpcionDeExportar))) { return; } var exportarElemento = new ExportarElementos(); var opcion = new OpcionDeMenu <TElemento>(Menu, exportarElemento, $"Exportar", enumModoDeAccesoDeDatos.Consultor); Menu.Add(opcion); }
private void AnadirPropiedad(PropertyInfo propiedad) { IUPropiedadAttribute atributos = ElementoDto.ObtenerAtributos(propiedad); if (atributos != null) { var descriptorColumna = ObtenerColumna(atributos.Fila, atributos.Columna); if (NumeroDeColumnas <= atributos.Columna) { NumeroDeColumnas = (short)(atributos.Columna + 1); } descriptorColumna.AnadirControl(atributos.Posicion, propiedad); } }
private static string RenderListaDeElemento(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl, double ancho) { var atributos = descriptorControl.atributos; Dictionary <string, object> valores = ValoresDeAtributosComunes(tabla, descriptorControl, atributos); valores["CssContenedor"] = Css.Render(enumCssControlesDto.ContenedorListaDeElementos); valores["Css"] = Css.Render(enumCssControlesDto.ListaDeElementos); valores["ClaseElemento"] = atributos.SeleccionarDe.Name; valores["MostrarExpresion"] = atributos.MostrarExpresion.IsNullOrEmpty() ? ElementoDto.ValorDelAtributo(atributos.SeleccionarDe, nameof(IUDtoAttribute.MostrarExpresion)) : atributos.MostrarExpresion; valores["GuardarEn"] = atributos.GuardarEn; var htmlSelect = PlantillasHtml.Render(PlantillasHtml.listaDeElementosDto, valores); return(htmlSelect); }
private string RenderZonaDeDatos() { var mostrarExpresion = $"{(string)ElementoDto.ValorDelAtributo(typeof(TElemento), nameof(IUDtoAttribute.MostrarExpresion))}"; var expresionElemento = typeof(TElemento).GetField("ExpresionElemento"); if (expresionElemento != null) { mostrarExpresion = $"[{expresionElemento.GetValue(typeof(TElemento))}]"; } else if (typeof(TElemento).BaseType.Name != nameof(ElementoDto) && typeof(TElemento).BaseType.Name != nameof(AuditoriaDto)) { GestorDeErrores.Emitir($"Debe definir los campos que componen la 'exprexión del elemento' para el objeto {typeof(TElemento).Name}"); } var idHtmlZonaFiltro = ((DescriptorDeMantenimiento <TElemento>)Padre).Filtro.IdHtml; var htmlDiv = @$ " <!-- ******************** grid de datos ******************** --> <div id = ¨{IdHtml}¨
public FilaDelGrid(ZonaDeDatos <TElemento> datos, ElementoDto elemento) { Datos = datos; var columna = datos.ObtenerColumna("chksel"); if (columna != null) { AnadirCelda(new CeldaDelGrid <TElemento>(columna) { Valor = false }); } columna = datos.ObtenerColumna(nameof(elemento.Id)); if (columna != null) { AnadirCelda(new CeldaDelGrid <TElemento>(columna) { Valor = elemento.Id }); } }
private string RenderCuerpoCabecera(string htmlTitulo, string htmlMenu) { if (OrdenacionInicial.IsNullOrEmpty() && typeof(TElemento).TienenLaPropiedad(ltrFiltros.Nombre)) { OrdenacionInicial = $"{ltrFiltros.Nombre}:{ltrFiltros.Nombre}:{enumModoOrdenacion.ascendente.Render()}"; } var clausulaDeOrdenInicial = ""; if (!OrdenacionInicial.IsNullOrEmpty()) { clausulaDeOrdenInicial = $"{Environment.NewLine}orden-inicial='{OrdenacionInicial.ToLower()}'"; } var propiedades = $@" id='{IdHtml}' class='{Css.Render(enumCssCuerpo.CuerpoCabecera)}' grid-del-mnt='{Datos.IdHtml}' zona-de-filtro='{Filtro.IdHtml}' zona-de-menu='{ZonaMenu.IdHtml}' controlador='{Crud.Controlador}' negocio='{Crud.RenderNegocio}' dto='{Crud.RenderDto}' permite-crear = {(bool)ElementoDto.ValorDelAtributo(typeof(TElemento), nameof(IUDtoAttribute.OpcionDeCrear))} permite-editar = {(bool)ElementoDto.ValorDelAtributo(typeof(TElemento), nameof(IUDtoAttribute.OpcionDeEditar))} permite-borrar = {(bool)ElementoDto.ValorDelAtributo(typeof(TElemento), nameof(IUDtoAttribute.OpcionDeBorrar))} id-negocio='{Crud.RenderIdDeNegocio}'{clausulaDeOrdenInicial}> "; return(ModoDescriptor.Mantenimiento == ((DescriptorDeCrud <TElemento>)Padre).Modo ? $@"<div {propiedades} {htmlTitulo} {htmlMenu} </div> " : $@"<div {propiedades}> </div>"); }