private string obtenerDatos(string sPSN, string sFechaDesde, string sFechaHasta) { string sResul = ""; StringBuilder sb = new StringBuilder(); try { SqlDataReader dr = Consumo.ObtenerImputacionesIAP((int)Session["UsuarioActual"], (sPSN == "")?null:(int?)int.Parse(sPSN), DateTime.Parse(sFechaDesde), DateTime.Parse(sFechaHasta)); nIndice = 0; int nPE = 0, nPT = 0, nF = 0, nA = 0, nT = 0, nNivel = 0; int nFactual = 0, nAactual = 0; string sHTML = ""; sb.Append("<table id='tblDatos' style='width:950px;text-align:right;'>"); sb.Append("<colgroup><col style='width:700px;'/><col style='width:125px;' /><col style='width:125px;'/></colgroup>"); while (dr.Read()) { sHTML = ""; nFactual = int.Parse(dr["t334_idfase"].ToString()); nAactual = int.Parse(dr["t335_idactividad"].ToString()); if (nPE != int.Parse(dr["t301_idproyecto"].ToString())) { //Crear PE, PT, F, A, T y consumo nT = int.Parse(dr["t332_idtarea"].ToString()); nA = int.Parse(dr["t335_idactividad"].ToString()); nF = int.Parse(dr["t334_idfase"].ToString()); nPT = int.Parse(dr["t331_idpt"].ToString()); nPE = int.Parse(dr["t301_idproyecto"].ToString()); sHTML = CrearProyEco(dr); } else if (nPT != int.Parse(dr["t331_idpt"].ToString())) { //Crear PT, F, A, T y consumo nT = int.Parse(dr["t332_idtarea"].ToString()); nA = int.Parse(dr["t335_idactividad"].ToString()); nF = int.Parse(dr["t334_idfase"].ToString()); nPT = int.Parse(dr["t331_idpt"].ToString()); sHTML = CrearProyTec(dr); } else if ((nF != nFactual) && (nFactual != 0)) { //Crear F, A, T y consumo nT = int.Parse(dr["t332_idtarea"].ToString()); nA = int.Parse(dr["t335_idactividad"].ToString()); nF = int.Parse(dr["t334_idfase"].ToString()); nPT = int.Parse(dr["t331_idpt"].ToString()); sHTML = CrearFase(dr); } else if ((nA != nAactual) && (nAactual != 0)) { //Crear A, T y consumo nT = int.Parse(dr["t332_idtarea"].ToString()); nA = int.Parse(dr["t335_idactividad"].ToString()); nF = int.Parse(dr["t334_idfase"].ToString()); nPT = int.Parse(dr["t331_idpt"].ToString()); if (nFactual == 0) { nNivel = 3; } else { nNivel = 4; } sHTML = CrearActividad(dr, nNivel); } else if (nT != int.Parse(dr["t332_idtarea"].ToString())) { //Crear T y consumo if (nFactual == 0) { if (nAactual == 0) { nNivel = 3; } else { nNivel = 4; } } else { nNivel = 5; } nT = int.Parse(dr["t332_idtarea"].ToString()); sHTML = CrearTarea(dr, nNivel); } else { //Crear consumo if (nFactual == 0) { if (nAactual == 0) { nNivel = 4; } else { nNivel = 5; } } else { nNivel = 6; } sHTML = CrearConsumo(dr, nNivel); } sb.Append(sHTML); i++; } dr.Close(); dr.Dispose(); sb.Append("</table>"); sResul = "OK@#@" + sb.ToString(); //sResul += "@#@" + txtHorasReportadas.Text + "@#@" + txtJornadasReportadas.Text + "@#@" + txtJornadasEconomicas.Text + "@#@" + hdnFechaDesde.Text + "@#@" + hdnFechaHasta.Text; //sResul += "@#@" + hdnFechaDesde.Text + "@#@" + hdnFechaHasta.Text; sb.Length = 0; //Para liberar memoria } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al obtener los datos de consulta de proyectos", ex); } return(sResul); }