/// <summary>Imprime la lista del objetos
        /// <returns>void</returns>
        /// </summary>
        public override void PrintList()
        {
            InformesReportMng reportMng = new InformesReportMng(AppContext.ActiveSchema);

            NotaPracticasRpt report  = null;
            bool             defecto = moleQule.Library.Instruction.ModulePrincipal.GetImpresionEmpresaDefaultBoolSetting();
            CompanyInfo      empresa = null;

            if (defecto)
            {
                empresa = CompanyInfo.Get(moleQule.Library.Instruction.ModulePrincipal.GetImpresionEmpresaDefaultOidSetting(), false);
            }
            while (empresa == null)
            {
                moleQule.Face.Common.CompanySelectForm form = new Common.CompanySelectForm(this);
                DialogResult result = form.ShowDialog();

                try
                {
                    if (result == DialogResult.OK)
                    {
                        empresa = form.Selected as CompanyInfo;
                    }
                }
                catch
                { empresa = null; }
            }

            switch (FilterType)
            {
            case IFilterType.None:
                report = reportMng.GetDetailReport(empresa, _sorted_list);
                break;

            case IFilterType.Filter:
                report = reportMng.GetDetailReport(empresa, _filter_results);
                break;
            }

            if (report != null)
            {
                report.SetParameterValue("Empresa", empresa.Name);
                if (empresa.Oid == 2)
                {
                    ((CrystalDecisions.CrystalReports.Engine.TextObject)(report.Section5.ReportObjects["Text1"])).Color = System.Drawing.Color.FromArgb(13, 176, 46);
                }
                ReportViewer.SetReport(report);
                ReportViewer.ShowDialog();
            }
            else
            {
                MessageBox.Show(Resources.Messages.NO_DATA_REPORTS,
                                moleQule.Face.Resources.Labels.ADVISE_TITLE,
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Exclamation);
            }
        }
        public NotaPracticasRpt GetDetailReport(CompanyInfo empresa,
                                                SortedBindingList <NotaPracticasInfo> registros)
        {
            if (registros == null)
            {
                return(null);
            }
            NotaPracticasRpt doc = new NotaPracticasRpt();

            List <CompanyInfo>       pList  = new List <CompanyInfo>();
            List <NotaPracticasInfo> faltas = new List <NotaPracticasInfo>();

            foreach (NotaPracticasInfo info in registros)
            {
                faltas.Add(info);
            }

            //Si no existen conceptos, no tiene sentido un informe detallado. Además, falla en Crystal Reports
            if (faltas.Count <= 0)
            {
                return(null);
            }

            pList.Add(empresa);

            doc.SetDataSource(pList);
            doc.SetParameterValue("Empresa", empresa.Name);
            if (empresa.Oid == 2)
            {
                ((CrystalDecisions.CrystalReports.Engine.TextObject)(doc.Section5.ReportObjects["Text1"])).Color = System.Drawing.Color.FromArgb(13, 176, 46);
            }

            doc.Subreports["NotaPracticasListSubRpt"].SetDataSource(registros);

            //FormatReport(doc);

            return(doc);
        }