private string ObtenerTabla(string sDisponibilidad, string sMisProyectos, string sFechaDesde, string sFechaHasta, string sRol, string sSupervisor, string sCentroTrab, string sOficina, string sProfesional, string sResponsable, string sEstructuraNodos) { int nWidthTabla = 400; int nColumnasACrear = 0; int nIndiceColPrimerMes = 19; string sComun = ""; StringBuilder sbA = new StringBuilder(); //body fijo StringBuilder sbB = new StringBuilder(); //body móvil StringBuilder sbColgroupTitulo = new StringBuilder(); StringBuilder sbTitulo = new StringBuilder(); string sTablaTituloMovil = ""; string sTablaBodyMovil = ""; //string sTablaResultado = ""; try { sbA.Append("<table id='tblBodyFijo' style='width:400px; text-align:left;' cellpadding='0' cellspacing='0' border='0'>"); sbA.Append("<colgroup>"); sbA.Append("<col style='width:20px;'/>"); //Icono (EXPANDIR/CONTRAER) sbA.Append("<col style='width:20px;'/>"); //Icono tipo recurso/sexo sbA.Append("<col style='width:360px;'/>"); //Profesional/Concepto sbA.Append("</colgroup>"); //sbA.Append("<tbody>"); DataSet ds = USUARIO.ConsultaDisponibilidad((int)Session["UsuarioActual"], int.Parse(sFechaDesde), int.Parse(sFechaHasta), sDisponibilidad, (sMisProyectos == "1")? true: false, sRol, sSupervisor, sCentroTrab, sOficina, sProfesional, sResponsable, sEstructuraNodos); bool bTitulos = false; int i = 0; int iUsuario = 0; int iContUsu = 0; DataRow oFilaCal = null; if (ds.Tables[0].Rows.Count != 0) { foreach (DataRow oFila in ds.Tables[0].Rows) { if (!bTitulos) { sbTitulo.Append("<tr class='TBLINI'>"); for (int x = nIndiceColPrimerMes; x < ds.Tables[0].Columns.Count; x++) { if (x < nIndiceColPrimerMes) { continue; } sbColgroupTitulo.Append("<col style='width:60px;' />"); sbTitulo.Append("<td align='center'>" + Fechas.AnnomesAFechaDescCorta(int.Parse(ds.Tables[0].Columns[x].ColumnName)) + "</td>"); nColumnasACrear++; } sbTitulo.Append("</tr>"); bTitulos = true; } if (oFila["tipodato"].ToString() == "0") { oFilaCal = oFila; continue; } ; sComun = "<tr id='" + oFila["t314_idusuario"].ToString() + "/" + oFila["t305_idproyectosubnodo"].ToString() + "/" + oFila["tipodato"].ToString() + "' "; if (iUsuario != int.Parse(oFila["t314_idusuario"].ToString())) { iUsuario = int.Parse(oFila["t314_idusuario"].ToString()); iContUsu++; } string sClass = ""; if (iContUsu % 2 == 0) { sClass += "FA"; } else { sClass += "FB"; } sbA.Append(sComun); sbB.Append(sComun); sbA.Append(" usu='" + oFila["t314_idusuario"].ToString() + "' "); sbA.Append(" cr=\"" + Utilidades.escape(oFila["t303_denominacion"].ToString()) + "\" "); sbA.Append(" supervisor=\"" + Utilidades.escape(oFila["supervisor"].ToString()) + "\" "); sbA.Append(" centro=\"" + Utilidades.escape(oFila["centroTrab"].ToString()) + "\" "); sbA.Append(" oficina=\"" + Utilidades.escape(oFila["oficina"].ToString()) + "\" "); sbA.Append(" rol=\"" + Utilidades.escape(oFila["rol"].ToString()) + "\" "); sbA.Append(" responsable=\"" + Utilidades.escape(oFila["responsable"].ToString()) + "\" "); sbA.Append(" cliente=\"" + Utilidades.escape(oFila["t302_denominacion"].ToString()) + "\" "); sbA.Append(" tipo='" + oFila["tipo"].ToString() + "'"); sbA.Append(" sexo='" + oFila["sexo"].ToString() + "'"); sbA.Append(" tipodato='" + oFila["tipodato"].ToString() + "'"); sbA.Append(" calendario=\"" + Utilidades.escape(oFila["t066_descal"].ToString()) + "\" "); sbA.Append(" falta='" + oFila["faltaEmp"].ToString() + "'"); if (oFila["fbajaEmp"] == DBNull.Value) { sbA.Append(" fbaja='000000' "); } else { sbA.Append(" fbaja='" + oFila["fbajaEmp"].ToString() + "' "); } if (oFila["tipodato"].ToString() == "1") { sComun = " class='" + sClass + "' nivel='1' desplegado='1' style='display:table-row;"; } else { sComun = " nivel='2' desplegado='0' class='" + sClass + " htr"; } //else sComun = " nivel='2' desplegado='0' style='display:none;' class='" + sClass; if (oFila["tipodato"].ToString() == "1" && i != 0) { sComun += "border-top: solid 1px #A6C3D2;"; } sComun += "' "; sbA.Append(sComun); //sbA.Append("onclick='setFilaFija(this)'"); sbB.Append(sComun); //sbB.Append("onclick='setFilaMovil(this)'"); if (oFila["tipodato"].ToString() == "1") { //sbA.Append("><td><IMG class=NSEG1 onclick=mostrar(this) src='../../../../images/plus.gif' style='cursor:pointer;'></td>"); sbA.Append("><td></td>"); sbA.Append("<td></td><td align='left' class='tdbr' style='padding-left:3px;font-weight: bold'>"); //sTooltip = Utilidades.escape("<label style='width:70px'>" + sNodo + ":</label>" + oFila["t303_denominacion"].ToString() + "<br/><label style='width:70px'>Supervisor:</label>" + oFila["supervisor"].ToString() + "<br/><label style='width:70px'>Centro:</label>" + oFila["centroTrab"].ToString() + "<br/><label style='width:70px'>Oficina:</label>" + oFila["oficina"].ToString() + "<br/><label style='width:70px'>Rol:</label>" + oFila["rol"].ToString() + "<br/><label style='width:70px'>Calendario:</label>" + oFila["t066_descal"].ToString()); //sbA.Append("<nobr style='font-weight: bold' class='NBR W360' onmouseover=showTTE(\"" + sTooltip + "\") onMouseout=\"hideTTE()\">" + oFila["descripcion"].ToString() + "</nobr>"); sbA.Append(oFila["descripcion"].ToString() + "</td>"); } else { sbA.Append("><td></td><td></td>"); sbA.Append("<td align='left' class='tdbr' style='padding-left:10px;white-space:nowrap;'>"); if (oFila["tipodato"].ToString() == "3") { //sTooltip = Utilidades.escape("<label style='width:70px'>" + sNodo + ":</label>" + oFila["t303_denominacion"].ToString() + "<br/><label style='width:70px'>Responsable:</label>" + oFila["responsable"].ToString() + "<br/><label style='width:70px'>Cliente:</label>" + oFila["t302_denominacion"].ToString()); //sbA.Append("<nobr class='NBR W360' onmouseover=showTTE(\"" + sTooltip + "\") onMouseout=\"hideTTE()\">" + oFila["descripcion"].ToString() + "</nobr>"); sbA.Append(oFila["descripcion"].ToString() + "</td>"); } else { //sbA.Append("<nobr class='NBR W360'>" + oFila["descripcion"].ToString() + "</nobr></td>"); sbA.Append(oFila["descripcion"].ToString() + "</td>"); } } sbB.Append(">"); for (int x = nIndiceColPrimerMes; x < ds.Tables[0].Columns.Count; x++) { if (x < nIndiceColPrimerMes) { continue; } sbB.Append("<td align='right'"); if (x == nIndiceColPrimerMes) { sbB.Append(" class='tdbrl'"); } if (oFila["tipodato"].ToString() == "1") { if (decimal.Parse(oFilaCal.ItemArray[x].ToString()) == 0) { sbB.Append(" style='background-color: #F58D8D;font-weight: bold;'"); } else { sbB.Append(" style='font-weight: bold'"); } } sbB.Append(">"); sbB.Append(decimal.Parse(oFila.ItemArray[x].ToString()).ToString("N")); sbB.Append("</td>"); } sbA.Append("</tr>"); sbB.Append("</tr>"); i++; } } sbA.Append("</table>"); ds.Dispose(); nWidthTabla = nColumnasACrear * 60; sTablaTituloMovil = "<table id='tblTituloMovil' class='texto' style='width:" + nWidthTabla.ToString() + "px;' cellpadding='0'>"; sTablaTituloMovil += "<colgroup>"; sTablaTituloMovil += sbColgroupTitulo.ToString(); sTablaTituloMovil += "</colgroup>"; sTablaTituloMovil += sbTitulo.ToString(); sTablaTituloMovil += "</table>"; sTablaBodyMovil = "<table id='tblBodyMovil' class='texto' style='width:" + nWidthTabla.ToString() + "px; ' mantenimiento='1' cellpadding='0' cellspacing='0' border='0'>"; sTablaBodyMovil += "<colgroup>"; sTablaBodyMovil += sbColgroupTitulo.ToString(); sTablaBodyMovil += "</colgroup>"; sTablaBodyMovil += sbB.ToString(); sTablaBodyMovil += "</table>"; return("OK@#@" + sTablaTituloMovil + "@#@" + sTablaBodyMovil + "@#@" + sbA.ToString()); } catch (Exception ex) { return("Error@#@" + Errores.mostrarError("Error al obtener los proyectos técnicos", ex)); } }