protected override void SubmitAction()
        {
            if (!GetSettings())
            {
                _action_result = DialogResult.Ignore;
                return;
            }

            PgMng.Reset(3, 1, Face.Resources.Messages.RETRIEVING_DATA, this);
            Library.Invoice.QueryConditions conditions = new Library.Invoice.QueryConditions();
            conditions.Year     = AnoActivo_DTP.Value.Year;
            conditions.FechaIni = FInicial_DTP.Value;
            conditions.FechaFin = FFinal_DTP.Value;
            conditions.Modelo   = _t_modelo;

            string title  = GetTitle();
            string filtro = GetFilterValues();

            try
            {
                switch (_modelo)
                {
                case EModelo.Modelo420:
                {
                    conditions.Producto     = ProductInfo.New();
                    conditions.Producto.Oid = Library.Invoice.ModulePrincipal.GetImpuestosImportacion();

                    conditions.Modelo.ETipoModelo = ETipoModelo.Soportado;
                    ModeloList soportado = ModeloList.GetList(conditions, false);

                    conditions.Modelo.ETipoModelo = ETipoModelo.Repercutido;
                    ModeloList repercutido = ModeloList.GetList(conditions, false);

                    PgMng.Grow(Face.Resources.Messages.BUILDING_REPORT);

                    CommonReportMng rptMng = new CommonReportMng(AppContext.ActiveSchema, title, filtro);

                    Modelo420Rpt report = rptMng.GetModelo420Report(soportado, repercutido);

                    PgMng.FillUp();
                    ShowReport(report);
                }

                break;

                case EModelo.Modelo111:
                {
                    conditions.Modelo.ETipoModelo = ETipoModelo.EmpleadosTrabajo;
                    ModeloList empleados_trabajo = ModeloList.GetList(conditions, false);

                    conditions.Modelo.ETipoModelo = ETipoModelo.EmpleadosEspecie;
                    ModeloList empleados_especie = ModeloList.GetList(conditions, false);

                    conditions.Modelo.ETipoModelo = ETipoModelo.Profesionales;
                    ModeloList profesionales = ModeloList.GetList(conditions, false);

                    InputInvoiceList facturas = InputInvoiceList.GetListByModelo(EModelo.Modelo111, conditions.FechaIni, conditions.FechaFin, false);

                    PgMng.Grow(Face.Resources.Messages.BUILDING_REPORT);

                    CommonReportMng rptMng = new CommonReportMng(AppContext.ActiveSchema, title, filtro);

                    Modelo111Rpt report = rptMng.GetModelo111Report(empleados_trabajo, empleados_especie, profesionales, facturas);

                    PgMng.FillUp();
                    ShowReport(report);
                }

                break;

                case EModelo.Modelo347:
                {
                    decimal efectivo = conditions.Modelo.MinEfectivo;
                    conditions.Modelo.MinEfectivo = 0;
                    ModeloList f_emitidas = ModeloList.GetList(Library.Invoice.QueryConditions.ConvertTo(conditions), false);

                    decimal importe = conditions.Modelo.MinImporte;
                    conditions.Modelo.MinImporte  = 0;
                    conditions.Modelo.MinEfectivo = efectivo;
                    ModeloList f_emitidas_efectivo = ModeloList.GetList(Library.Invoice.QueryConditions.ConvertTo(conditions), false);

                    PgMng.Grow(Face.Resources.Messages.BUILDING_REPORT);

                    CommonReportMng rptMng = new CommonReportMng(AppContext.ActiveSchema, title, filtro);

                    _t_modelo.MinImporte  = importe;
                    _t_modelo.MinEfectivo = efectivo;

                    Modelo347Rpt report = rptMng.GetModelo347Report(f_emitidas, f_emitidas_efectivo, _t_modelo);

                    PgMng.FillUp();
                    ShowReport(report);
                }
                break;
                }

                _action_result = DialogResult.Ignore;
            }
            catch (Exception ex)
            {
                PgMng.FillUp();
                MessageBox.Show(iQExceptionHandler.GetAllMessages(ex));

                _action_result = DialogResult.Ignore;
            }
        }