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;
            this.TotalesPrimeraFila = true;

            this.ColoresFilas.Campo = "estado";
            this.ColoresFilas.AgregarCondicion("SI", Color.Red);
            
            // 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");
            // Ocular una columna de datos
            this.BuscarColumna("campo").Visible = false;

            // Para cuando lo llama un formulario en un campo Ajax
            this.BuscarColumna("nombre").EsTextoPopUp = true;

            // Alineacion
            this.BuscarColumna("campo").TextAlign = "center"; // center, left right
            this.BuscarColumna("campo").TituloAlign = "center"; // center, left right

            // 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");

            // Deshabilitar Loading al ejecutar Acción
            this.BuscarAccion("nombre acc").MostrarLoading = false;

            // 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);

            // Ubicar filtros en misma fila
            this.BuscarFiltro("idCliente").EstablecerAnchoGrid(2, 4, false);
            this.BuscarFiltro("cuit").EstablecerAnchoGrid(2, 4, true);

            // Deshabilitar Campo
            this.BuscarFiltro("dni").Habilitado = false;

            this.CambiarCamposCabeceraAnchosGridTitulos(3);
            this.CambiarCamposCabeceraAnchosGridCampos(9);

        }
        
        
        // 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<string, object> pars = new Dictionary<string, object>();
            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<string, string> pars = new Dictionary<string, string>();
                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<string, string> pars = new Dictionary<string, string>();
                pars.Add("id", "0");
                Navegacion.Redireccionar(this.WorkflowId, "frmEstadoPiezasLista", pars);
            }
        }
    }
}