private string ObtenerPSN()
    {
        StringBuilder sb = new StringBuilder();

        try
        {
            sb.Append("<table id='tblDatos' class='texto' style='WIDTH: 600px;'>");
            sb.Append("<tbody>");

            //SqlDataReader dr = Consumo.ObtenerTareasImpMasiva_PSN((hdnIdUsuario.Text != "0") ? int.Parse(hdnIdUsuario.Text) : (int)Session["UsuarioActual"], Fechas.AnnomesAFecha((int)Session["UMC_IAP"]).AddMonths(1).AddDays(-1));
            //SqlDataReader dr = Consumo.ObtenerTareasImpMasiva_PSN((hdnIdUsuario.Text != "0") ? int.Parse(hdnIdUsuario.Text) : (int)Session["UsuarioActual"], Fechas.AnnomesAFecha((int)Session["UMC_IAP"]));

            SqlDataReader dr = Consumo.ObtenerTareasImpMasiva_PSN((hdnIdUsuario.Text != "0") ? int.Parse(hdnIdUsuario.Text) : (int)Session["UsuarioActual"], Fechas.AnnomesAFecha((int)Session["UMC_IAP"]), (hdnInicioImpu.Text == "") ? null : (DateTime?)DateTime.Parse(hdnInicioImpu.Text), (hdnFinImpu.Text == "") ? null : (DateTime?)DateTime.Parse(hdnFinImpu.Text));

            while (dr.Read())
            {
                #region Creación tabla HTML
                sb.Append("<tr id='" + dr["t305_idproyectosubnodo"].ToString() + "' ");
                sb.Append("tipo='PSN' PSN=" + dr["t305_idproyectosubnodo"].ToString() + " ");
                sb.Append("PT=0 F=0 A=0 T=0 style='height:22px;' bd='' desplegado=0 nivel=1 exp=1>");

                sb.Append("<td style='text-align:left;padding-left:3px;'><IMG class=N1 onclick=mostrar(this) src='../../../../images/plus.gif' style='cursor:pointer;'>");
                if (dr["t301_estado"].ToString() == "A")
                {
                    sb.Append("<IMG class='ICO' src='../../../../images/imgIconoProyAbierto.gif' title='Proyecto abierto'>");
                }
                else
                {
                    sb.Append("<IMG class='ICO' src='../../../../images/imgIconoProyCerrado.gif' title='Proyecto cerrado'>");
                }
                sb.Append("<nobr class='NBR W490' style='noWrap:true;' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../../images/info.gif' style='vertical-align:middle' />  Información] body=[<label style='width:70px'>Proyecto:</label>" + dr["t301_denominacion"].ToString().Replace((char)34, (char)39) + "<br><label style='width:70px'>Responsable:</label>" + dr["responsable"].ToString().Replace((char)34, (char)39) + "<br><label style='width:70px'>" + Estructura.getDefCorta(Estructura.sTipoElem.NODO) + ":</label>" + dr["t303_denominacion"].ToString().Replace((char)34, (char)39) + "<br><label style='width:70px'>Cliente:</label>" + dr["t302_denominacion"].ToString().Replace((char)34, (char)39) + "] hideselects=[off]\">" + int.Parse(dr["t301_idproyecto"].ToString()).ToString("#,###") + " - " + dr["t305_seudonimo"].ToString().Replace((char)34, (char)39) + "</nobr></td>");

                sb.Append("</tr>" + (char)10);

                #endregion
            }
            dr.Close();
            dr.Dispose();
            sb.Append("</tbody>");
            sb.Append("</table>");

            return("OK@#@" + sb.ToString());
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener los proyectos.", ex));
        }
    }