public string ObtenerResumen(DateTime dDesde, DateTime dHasta, string sProfesionales, string sIDEstructura, int nTareasVencidas, bool bMiEquipoDirecto, bool bTareasFueraPlazoSinHacer)
    {
        StringBuilder sb = new StringBuilder();

        try
        {
            if (HttpContext.Current.Cache["Incumplimientos_MiEquipo-" + Session["IDFICEPI_CVT_ACTUAL"].ToString()] != null)
            {
                HttpContext.Current.Cache.Remove("Incumplimientos_MiEquipo-" + Session["IDFICEPI_CVT_ACTUAL"].ToString());
            }


            DataSet ds = Incumplimientos.DeMiEquipo(null, (int)Session["IDFICEPI_CVT_ACTUAL"], dDesde, dHasta, sProfesionales, sIDEstructura, nTareasVencidas, bMiEquipoDirecto, bTareasFueraPlazoSinHacer);

            HttpContext.Current.Cache.Insert("Incumplimientos_MiEquipo-" + Session["IDFICEPI_CVT_ACTUAL"].ToString(), ds, null, DateTime.Now.AddMinutes(10), TimeSpan.Zero);

            sb.Append("<table id='tblDatos' style='text-align:left;width: 970px' border='0'>");
            sb.Append("<colgroup><col width='230px'/><col style='width: 20px' /><col width='230px'/><col width='250px'/><col width='80px'/><col width='80px'/><col width='80px'/></colgroup>");

            foreach (DataRow oFila in ds.Tables[0].Rows)
            {
                sb.Append("<tr id='" + oFila["t001_idficepi"].ToString() + "'");
                sb.Append(" tipo='" + oFila["tipo"].ToString() + "' ");
                sb.Append(" sexo ='" + oFila["t001_sexo"].ToString() + "'");
                //sb.Append(" baja ='" + oFila["baja"].ToString() + "'");
                sb.Append("style='height:20px'>");

                sb.Append("<td style='padding-left:5px;'>" + oFila["CR"].ToString() + "</td>");
                sb.Append("<td></td>");
                sb.Append("<td><nobr class='NBR W230' onmouseover='TTip(event)'>" + oFila["Evaluado"].ToString() + "</nobr></td>");
                sb.Append("<td><nobr class='NBR W250' onmouseover='TTip(event)'>" + oFila["Evaluador"].ToString() + "</nobr></td>");
                sb.Append("<td style='text-align:right'>" + int.Parse(oFila["Realizadas"].ToString()).ToString("###,###,##0") + "</td>");
                sb.Append("<td style='text-align:right'>" + int.Parse(oFila["RealizadasFueraPlazo"].ToString()).ToString("###,###,##0") + "</td>");
                sb.Append("<td style='text-align:right;padding-right:5px;'>" + int.Parse(oFila["TareasFueraPlazoSinHacer"].ToString()).ToString("###,###,##0") + "</td>");
                sb.Append("</tr>");
            }

            sb.Append("</table>@#@");

            ds.Dispose();
            return("OK@#@" + sb.ToString());
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener los datos de incumplimientos de mi equipo.", ex));
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        string   prefijo = Constantes.sPrefijo;
        DateTime dFInicio, dFFin;
        string   sProfesionales = "", sIdEstructura = "";
        bool     bMiEquipoDirecto = false, bTareasFueraPlazoSinHacer = false;
        int      nTareasVencidas = 0;

        DataSet ds = null;

        try{
            dFInicio                  = DateTime.Parse(Request.Form[prefijo + "txtFechaInicio"].ToString());
            dFFin                     = DateTime.Parse(Request.Form[prefijo + "txtFechaFin"].ToString());
            sProfesionales            = Request.Form[prefijo + "hdnProfesionales"].ToString();
            sIdEstructura             = Request.Form[prefijo + "hdnIdEstructura"].ToString();
            bMiEquipoDirecto          = (Request.Form[prefijo + "chkMiEquipoDirecto"] == "on") ? true : false;
            bTareasFueraPlazoSinHacer = (Request.Form[prefijo + "chkTareasFueraPlazoSinHacer"] == "on") ? true : false;
            nTareasVencidas           = int.Parse(Request.Form[prefijo + "txtTareasVencidas"].ToString());

            if (HttpContext.Current.Cache["Incumplimientos_MiEquipo_" + Session["IDFICEPI_CVT_ACTUAL"].ToString()] != null)
            {
                ds = (DataSet)HttpContext.Current.Cache["Incumplimientos_MiEquipo_" + Session["IDFICEPI_CVT_ACTUAL"].ToString()];
            }
            else
            {
                ds = Incumplimientos.DeMiEquipo(null, (int)Session["IDFICEPI_CVT_ACTUAL"], dFInicio, dFFin,
                                                sProfesionales, sIdEstructura, nTareasVencidas, bMiEquipoDirecto, bTareasFueraPlazoSinHacer);
            }

            if (Request.QueryString["descargaToken"] != null)
            {
                Response.AppendCookie(new HttpCookie("fileDownloadToken", Request.QueryString["descargaToken"].ToString())); //downloadTokenValue will have been provided in the form submit via the hidden input field
            }
            ds.Tables[0].Columns.Remove(ds.Tables[0].Columns[4]);
            ds.Tables[0].Columns.Remove(ds.Tables[0].Columns[3]);
            ds.Tables[0].Columns.Remove(ds.Tables[0].Columns[2]);
            getExcel(ds);
        }
        catch (Exception ex)
        {
            this.hdnErrores.Value = Errores.mostrarError("Error al cargar los datos", ex);
        }
    }