private string ObtenerDatosConsumos(string sDesde, string sHasta, string sProfesionales) { string sResul = ""; StringBuilder sb = new StringBuilder(); sb.Length = 0; try { SqlDataReader dr = Consumo.ObtenerConsumosEconomicosProf(int.Parse(Session["UsuarioActual"].ToString()), int.Parse(sDesde), int.Parse(sHasta), sProfesionales); sb.Append("<TABLE style='font-family:Arial;font-size:8pt;' cellSpacing='2' border=1>"); sb.Append("<tr align='center' style='background-color: #BCD4DF;'>"); sb.Append("<td>Nº profesional</td>"); sb.Append("<td>Profesional</td>"); sb.Append("<td>" + Estructura.getDefLarga(Estructura.sTipoElem.NODO) + "</td>"); sb.Append("<td>Nº proyecto</td>"); sb.Append("<td>Denominación proyecto</td>"); sb.Append("<td>Mes consumo</td>"); sb.Append("<td>Unidades</td>"); sb.Append("<td>Modelo coste</td>"); sb.Append("</tr></table>"); sb.Append("<TABLE style='font-family:Arial;font-size:8pt;' border=1>"); sb.Append("<colgroup>"); sb.Append("<col />"); sb.Append("<col />"); //Profesional sb.Append("<col />"); //Nodo sb.Append("<col />"); //Nº proyecto sb.Append("<col />"); //proyecto sb.Append("<col />"); //mes consumo sb.Append("<col />"); //unidades consumidas sb.Append("<col />"); //modelo de coste sb.Append("</colgroup>"); while (dr.Read()) { sb.Append("<tr style='vertical-align:top;'>"); sb.Append("<td style='text-align:rigth;'>" + ((int)dr["t314_idusuario"]).ToString("#,###") + "</td>"); sb.Append("<td>" + dr["tecnico"].ToString() + "</td>"); sb.Append("<td>" + dr["t303_denominacion"].ToString() + "</td>"); sb.Append("<td style='text-align:rigth;'>" + ((int)dr["t301_idproyecto"]).ToString("#,###") + "</td>"); sb.Append("<td>" + dr["t301_denominacion"].ToString() + "</td>"); sb.Append("<td>" + (dr["descAnomes"]).ToString() + "</td>"); sb.Append("<td style='text-align:rigth;'>" + decimal.Parse(dr["unidades"].ToString()).ToString("N") + "</td>"); sb.Append("<td>" + (dr["ModeloCoste"]).ToString() + "</td>"); sb.Append("</tr>"); } dr.Close(); dr.Dispose(); sb.Append("</table>"); //sResul = "OK@#@" + sb.ToString(); string sIdCache = "EXCEL_CACHE_" + Session["IDFICEPI_ENTRADA"].ToString() + "_" + DateTime.Now.ToString(); Session[sIdCache] = sb.ToString();; sResul = "OK@#@cacheado@#@" + sIdCache + "@#@" + sb.ToString(); sb.Length = 0; //Para liberar memoria } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al obtener los datos de consulta masiva de profesionales", ex); } return(sResul); }