private string ObtenerIntegrantes(int nIdPE, string sCodCR, string sVista) { StringBuilder sb = new StringBuilder(); DateTime dt; string sDias = "";//, sFecha=""; int idProfAnt = -1, idProfAct = -1; int iMesAnt = -1, iMesAct = -1; try { SqlDataReader dr = PROYECTOSUBNODO.Vacaciones(nIdPE, sVista); if (sVista == "P") { #region ordenación por profesional sb.Append("<table id='tblOpciones2' class='texto MANO' style='width: 855px;'>"); sb.Append("<colgroup><col style='width:20px;' /><col style='width:60px;' /><col style='width:100px;' /><col style='width:675px;' /></colgroup>"); while (dr.Read()) { idProfAct = int.Parse(dr["t314_idusuario"].ToString()); //dt = getFecha(dr["t187_fechavacacion"].ToString()); dt = DateTime.Parse(dr["t187_fechavacacion"].ToString()); iMesAct = (dt.Year * 100) + dt.Month; if (idProfAnt != idProfAct) { if (sDias != "")//Pongo el último mes del profesional anterior { sb.Append(PonerMes(iMesAnt, sDias)); } sDias = dt.Day.ToString() + ", "; sb.Append(PonerProfesional(dr, sCodCR)); iMesAnt = iMesAct; } else { if (iMesAnt != iMesAct) { sb.Append(PonerMes(iMesAnt, sDias)); sDias = dt.Day.ToString() + ", "; } else { sDias += dt.Day.ToString() + ", "; } } iMesAnt = iMesAct; idProfAnt = idProfAct; } if (sDias != "") { sb.Append(PonerMes(iMesAct, sDias)); } #endregion } else { #region ordenación por mes string sUserAnt = "", sSexoAnt = "", sNodoAnt = "", sProfAnt = ""; string sUserAct = "", sSexoAct = "", sNodoAct = "", sProfAct = ""; sb.Append("<table id='tblOpciones2' class='texto MANO' style='width: 855px;'>"); sb.Append("<colgroup><col style='width:60px' /><col style='width:20px;' /><col style='width:300px;' /><col style='width:475px;' /></colgroup>"); while (dr.Read()) { idProfAct = int.Parse(dr["t314_idusuario"].ToString()); //dt = getFecha(dr["t187_fechavacacion"].ToString()); dt = DateTime.Parse(dr["t187_fechavacacion"].ToString()); iMesAct = (dt.Year * 100) + dt.Month; sUserAct = dr["t314_idusuario"].ToString(); sSexoAct = dr["t001_sexo"].ToString(); sNodoAct = dr["t303_idnodo"].ToString(); sProfAct = dr["Profesional"].ToString(); if (iMesAnt != iMesAct) { if (sDias != "")//Pongo el último mes del profesional anterior { sb.Append(PonerProfesional2(sUserAnt, sSexoAnt, sNodoAnt, sProfAnt, sCodCR, sDias)); } sDias = ""; sb.Append(PonerMes2(iMesAct)); } else { if (idProfAnt != idProfAct) { sb.Append(PonerProfesional2(sUserAnt, sSexoAnt, sNodoAnt, sProfAnt, sCodCR, sDias)); sDias = ""; } } sDias += dt.Day.ToString() + ", "; sUserAnt = sUserAct; sSexoAnt = sSexoAct; sNodoAnt = sNodoAct; sProfAnt = sProfAct; iMesAnt = iMesAct; idProfAnt = idProfAct; } sb.Append(PonerProfesional2(sUserAct, sSexoAct, sNodoAct, sProfAct, sCodCR, sDias)); #endregion } sb.Append("</table>"); dr.Close(); dr.Dispose(); strTablaHTMLIntegrantes = sb.ToString(); return("OK@#@" + sb.ToString()); } catch (Exception e) { //Master.sErrores = Errores.mostrarError("Error al obtener las personas", ex); return("error@#@" + e.Message); } }