Formulario Lista 2.0.N

De FlexiPymeDocs
Ir a la navegación Ir a la búsqueda

Formulario Lista

Código de Referencia

using FlexiPyme.ui.extras; using FlexiPyme.ui.formularios.especificos.lista; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Web; using FlexiAplicacion.LogicaComun; namespace FlexiAplicacion.##CARPETA## {

   public class ##FORMULARIO## : FlexiLista
   {
       // Este metodo se ejecuta 1 vez para cargar la definición del formulario
       public override void InicializarFormulario()
       {
           // Propiedades que definen el query que se realizara para visualizar los datos
           this.QuerySelect = @"select * ";
           this.QueryFrom = @"from Usuarios";
           this.QueryWhere = "";
           this.QueryOrdeBy = "nombre";
           // Propiedades para configuración general del forumuario
           this.Paginar = true;
           this.ItempsPorPagina = 50;
           this.RecordarFiltros = true;
           this.CodigoNuevo = "frmEjemploEdicion";
           this.ParametroNuevo = "id";
           this.FiltrarAlCargar = true;
           
           // Ejemplos de tipos de columnas para visualizar
           this.AgregarColumnaID();
           this.AgregarColumnaTexto("campo", "Titulo");
           this.AgregarColumnaMoneda("campo", "Titulo");
           this.AgregarColumnaEntero("campo", "Titulo");
           this.AgregarColumnaFecha("campo", "Titulo");
           // Ejemplo de columna de redireccion a otro formulario
           this.AgregarColumnaAccion("nombre", "frmFormuEdicion", "id", "id");
           // Ejemplo de columna de tipo accion que dispara el evento: "EjecutarAccionFila"
           this.AgregarColumnaAccionTipoEvento("nombre acc", "id");
           // Ejemplo de Filtros.
           this.AgregarFiltroSeleccionAjax("idCliente", "o.idCliente = @idCliente", "Cliente", "Clientes", "id", "razonSocial");
           this.AgregarFiltroSeleccionSimple("idCliente", "o.idCliente = @idCliente", "Cliente", "Clientes", "id", "razonSocial");
           this.AgregarFiltroLibre("numero", "o.numero = @numero", "Número");
           this.AgregarFiltroFecha("fechaDesde", "fecha <= @fechaDesde", "Fecha Desde");
           this.AgregarFiltroEtiqueta("parametro", "Titulo");
           this.AgregarFiltroTilde("vencidos", "fechaVeencimietno is null", "Vencidos");
           // Accion de tipo columna
           this.AgregarColumnaAccionTipoEvento("resumen", "id");
           // Accion que se ejecuta en todo el formulario.
           this.AgregarAccionFormulario("Ejecutar Acción", true);
       }
       
       
       // Se ejecuta la primera vez que se carga el formulario
       public override void AntesDeCargarFormulario()
       {
           // Ej: se precarga un filtro con un valor por defecto.
           this.BuscarFiltro("fechaDesde").Valor = DateTime.Today;
           // Ej: controlar acceso por perfil
           if (Seguridad.UsuarioLogueado.NombreGrupo != "Administracion")
               throw new Exception("Perfil no autorizado.");
       }
       // Se ejecuta cada vez que se presiona Filtrar
       public override void AntesDeVisualizarLista()
       {
           // Generalmente se utiliza este evento cuando se generan los datos programáticamente.
           int idUsuarioGrupo = this.BuscarFiltro("idUsuarioGrupo").ValorEntero;
           string sql = @"select * from Usuarios where idUsuarioGrupo = @idUsuarioGrupo";
           Dictionary pars = new Dictionary();
           pars.Add("@idUsuarioGrupo", idUsuarioGrupo);
           this.DatosAVisualizar = FlexiDb.Listar(sql, pars);
       }
       // Cuando se agrega una columna de tipo accion y se presion a el boton en cada fila, 
       // se ejecuta este método.
       public override void EjecutarAccionFila(string accion, int id)
       {
           if (accion == "estado piezas")
           {
               VariablesDeEntorno.GuardarValorEnVariable(this.WorkflowId, "idObra", id);
               Dictionary pars = new Dictionary();
               pars.Add("id", "0");
               Navegacion.Redireccionar(this.WorkflowId, "frmEstadoPiezasLista", pars);
           }
       }
       // Cuando se definen acciones a nivel formulario y se presionan los botones se ejecuta este método.
       public override void EjecutarAccion(string accion)
       {
           if (accion == "Accion Formulario")
           {
               Dictionary pars = new Dictionary();
               pars.Add("id", "0");
               Navegacion.Redireccionar(this.WorkflowId, "frmEstadoPiezasLista", pars);
           }
       }
   }

}