protected string ObtenerProyectos(string sSAT, string sSAA, string sIdUser)
    {
        string        sResul = "";
        StringBuilder sb = new StringBuilder();
        bool          bSAT = false, bSAA = false;

        try
        {
            if (sSAT == "S")
            {
                bSAT = true;
            }
            if (sSAA == "S")
            {
                bSAA = true;
            }
            SqlDataReader dr = PROYECTOSUBNODO.ObtenerProyectosUSA(int.Parse(sIdUser), bSAT, bSAA, int.Parse(Session["UsuarioActual"].ToString()));

            sb.Append("<table id='tblDatos' class='texto MANO' style='width:960px;'>");
            sb.Append("<colgroup>");
            sb.Append("    <col style='width:20px;' />");
            sb.Append("    <col style='width:20px;' />");
            sb.Append("    <col style='width:20px;' />");
            sb.Append("    <col style='width:20px;' />");
            sb.Append("    <col style='width:300px;' />");
            sb.Append("    <col style='width:290px;' />");
            sb.Append("    <col style='width:290px;' />");
            sb.Append("</colgroup>");
            sb.Append("<tbody>");
            while (dr.Read())
            {
                sb.Append("<tr idPSN='" + dr["t305_idproyectosubnodo"].ToString() + "' ");
                sb.Append("idProy='" + dr["t301_idproyecto"].ToString() + "' ");
                sb.Append("categoria='" + dr["t301_categoria"].ToString() + "' ");
                sb.Append("cualidad='" + dr["t305_cualidad"].ToString() + "' ");
                sb.Append("estado='" + dr["t301_estado"].ToString() + "' ");
                sb.Append("sat='" + dr["t314_idusuario_SAT"].ToString() + "' ");
                sb.Append("saa='" + dr["t314_idusuario_SAA"].ToString() + "' ");

                sb.Append("style='height:20px' >");
                sb.Append("<td><input type='checkbox' style='width:15' class='checkTabla' checked='true' onclick='activarGrabar();'></td>");
                sb.Append("<td></td>");
                sb.Append("<td></td>");
                sb.Append("<td></td>");
                sb.Append("<td style='padding-left:3px;'><nobr class='NBR W290' 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>" + int.Parse(dr["t301_idproyecto"].ToString()).ToString("#,###") + " - " + dr["t301_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["t301_denominacion"].ToString().Replace((char)34, (char)39) + "</nobr></td>");
                sb.Append("<td><nobr class='NBR W280' style='noWrap:true;'>" + dr["denSAT"].ToString() + "</nobr></td>");
                sb.Append("<td><nobr class='NBR W280' style='noWrap:true;'>" + dr["denSAA"].ToString() + "</nobr></td></tr>");
            }

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

            sResul = "OK@#@" + sb.ToString();;
        }
        catch (Exception ex)
        {
            sResul = "Error@#@" + Errores.mostrarError("Error al obtener la relación de proyectos.", ex, false);
        }

        return(sResul);
    }