private string ObtenerTabla(int nPSN) { int nWidthTabla = 400; int nColumnasACrear = 0; int nIndiceColPrimerMes = 13; 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 = ""; DataRow rowTipoDato3; //string sTablaResultado = ""; try { sbA.Append("<table id='tblBodyFijo' style='width:400px; text-align:left;'>"); sbA.Append("<colgroup>"); sbA.Append("<col style='width:20px;'/>"); //Icono sbA.Append("<col style='width:280px;'/>"); //Profesional sbA.Append("<col style='width:100px;'/>"); //Concepto sbA.Append("</colgroup>"); //sbA.Append("<tbody>"); DataSet ds = PROYECTOSUBNODO.Disponibilidad(nPSN); bool bTitulos = false; int i = 0; if (ds.Tables[0].Rows.Count != 0) { rowTipoDato3 = ds.Tables[0].Rows[0]; foreach (DataRow oFila in ds.Tables[0].Rows) { if (oFila["tipodato"].ToString() == "3") { //rowTipoDato3 = oFila; i++; continue; } 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; } sComun = "<tr id='" + oFila["t314_idusuario"].ToString() + oFila["tipodato"].ToString() + "' "; sComun += " usu=" + oFila["t314_idusuario"].ToString(); sComun += " tipo='" + oFila["tipodato"].ToString() + "'"; sComun += " caso='" + oFila["caso"].ToString() + "'"; sComun += " sexo='" + oFila["sexo"].ToString() + "'"; if (oFila["t313_idempresa_nodomes"] == DBNull.Value) { sComun += " empnodo=''"; } else { sComun += " empnodo='" + oFila["t313_idempresa_nodomes"].ToString() + "'"; } if (oFila["t303_idnodo_usuariomes"] == DBNull.Value) { sComun += " nodousumes=''"; } else { sComun += " nodousumes='" + oFila["t303_idnodo_usuariomes"].ToString() + "'"; } sComun += " coste=" + oFila["coste"].ToString(); sComun += " costerep=" + oFila["costerep"].ToString(); sComun += " falta=" + oFila["falta"].ToString(); if (oFila["fbaja"] == DBNull.Value) { sComun += " fbaja='000000' "; } else { sComun += " fbaja='" + oFila["fbaja"].ToString() + "' "; } sComun += " style='height: 20px;"; if (oFila["tipodato"].ToString() == "1") { sComun += "cursor:pointer;"; } sComun += "' "; sbA.Append(sComun); if (oFila["tipodato"].ToString() == "1") { sbA.Append("onclick='setFilaFija(this)'"); } sbB.Append(sComun); if (oFila["tipodato"].ToString() == "1") { sbB.Append("onclick='setFilaMovil(this)'"); } if (oFila["tipodato"].ToString() == "1") { sbA.Append("><td></td>"); sbA.Append("<td align='left' class='tdbr' style='padding-left:3px;'>"); sbA.Append("<nobr class='NBR W280' onmouseover='TTip(event)'>" + oFila["Profesional"].ToString() + "</nobr>"); } else { sbA.Append("><td></td>"); sbA.Append("<td align='left' class='tdbr' style='padding-left:3px;'>"); } sbA.Append("</td><td class='tdbl'><nobr class='NBR W90'>" + oFila["descripcion"].ToString() + "</nobr></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() == "4") { sbB.Append(" jl='" + decimal.Parse(ds.Tables[0].Rows[i - 1].ItemArray[x].ToString()).ToString("#,##0") + "' "); } 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'>"; 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)); } }