private string borrarAsunto(string sIdAsunto) { string sResul; try { if (sIdAsunto != "") { ASUNTO.Delete(tr, int.Parse(sIdAsunto)); } sResul = "OK@#@" + sIdAsunto; } catch (Exception e) { sResul = "error@#@" + e.Message; } return(sResul); }
private void ObtenerDatosAsunto(int nPSN) { StringBuilder sb = new StringBuilder(); string sIdAsunto, sDesAsunto, sFecha; sb.Append("<table id='tblDatos1' class='texto MA' style='width:940px; text-align:left;'>"); sb.Append("<colgroup><col style='width:300px;' /><col style='width:190px;' /><col style='width:87px;' /><col style='width:90px;' /><col style='width:88px;' /><col style='width:90px;' /><col style='width:95px;' /></colgroup>"); sb.Append("<tbody>"); SqlDataReader dr = ASUNTO.Catalogo(nPSN, "", null, null, null, null, null, null, null, null, "", null, "", null, null, null, "", null, 8, 0); while (dr.Read()) { sIdAsunto = dr["t382_idasunto"].ToString(); sDesAsunto = HttpUtility.HtmlEncode(dr["t382_desasunto"].ToString()); sb.Append("<tr id='" + sIdAsunto + "' ondblclick=\"mDetAsunto(this.id)\" onclick=\"ms(this);obtenerAcciones(" + sIdAsunto + ")\" style='height:16px;' onmouseover='TTip(event)'>"); sb.Append("<td><nobr class='NBR W300' style='padding-left:3px;'>" + sDesAsunto + "</nobr></td>"); sb.Append("<td><nobr class='NBR W180'>" + dr["t384_destipo"].ToString() + "</nobr></td>"); sb.Append("<td>" + dr["t382_severidad"].ToString() + "</td>"); sb.Append("<td>" + dr["t382_prioridad"].ToString() + "</td>"); sFecha = dr["t382_flimite"].ToString(); if (sFecha != "") { sFecha = DateTime.Parse(dr["t382_flimite"].ToString()).ToShortDateString(); } sb.Append("<td>" + sFecha + "</td>"); sFecha = dr["t382_fnotificacion"].ToString(); if (sFecha != "") { sFecha = DateTime.Parse(dr["t382_fnotificacion"].ToString()).ToShortDateString(); } sb.Append("<td>" + sFecha + "</td>"); sb.Append("<td>" + dr["t382_estado"].ToString() + "</td>"); sb.Append("</tr>"); } dr.Close(); dr.Dispose(); sb.Append("</tbody>"); sb.Append("</table>"); strTablaHtmlAsunto = sb.ToString(); }
private string obtenerAsuntos(string sPE, string sOrden, string sAscDesc, byte iEstado, int iTipo) { StringBuilder sb = new StringBuilder(); int nPSN; string sIdAsunto, sDesAsunto, sFecha, sIdResponsable;// sb.Append("<table id='tblDatos1' class='texto MA' style='width:940px; text-align:left;'>"); sb.Append("<colgroup><col style='width:300px;' /><col style='width:190px;' /><col style='width:87px;' /><col style='width:90px;' /><col style='width:88px;' /><col style='width:90px;' /><col style='width:95px;' /></colgroup>"); sb.Append("<tbody>"); if (sPE != "") { nPSN = int.Parse(sPE); //Session["NUM_PROYECTO"] = nPE.ToString(); //if (Session["NUM_PROYECTO"].ToString() == "") //{ // string sCad = PROYECTO.flGetNumProy(null, nPE); // string[] aArgs = Regex.Split(sCad, "@"); // if (Session["NodoActivo"].ToString() == aArgs[1]) // { // Session["NUM_PROYECTO"] = aArgs[0]; // } //} SqlDataReader dr = ASUNTO.Catalogo(nPSN, "", iEstado, null, null, null, null, null, null, null, "", null, "", null, null, null, "", iTipo, byte.Parse(sOrden), byte.Parse(sAscDesc)); while (dr.Read()) { sIdAsunto = dr["t382_idasunto"].ToString(); sDesAsunto = HttpUtility.HtmlEncode(dr["t382_desasunto"].ToString()); sIdResponsable = dr["t382_responsable"].ToString(); sb.Append("<tr id='" + sIdAsunto + "' idR='" + sIdResponsable + "' "); sb.Append("ondblclick='mDetAsunto(this.id)' "); sb.Append("onclick='ms(this);obtenerAcciones(" + sIdAsunto + ")' "); sb.Append(" style='height:16px;' onmouseover='TTip(event)'>"); sb.Append("<td><nobr class='NBR W300' style='padding-left:3px;'>" + sDesAsunto + "</nobr></td>"); sb.Append("<td><nobr class='NBR W180'>" + dr["t384_destipo"].ToString() + "</nobr></td>"); sb.Append("<td>" + dr["t382_severidad"].ToString() + "</td>"); sb.Append("<td>" + dr["t382_prioridad"].ToString() + "</td>"); sFecha = dr["t382_flimite"].ToString(); if (sFecha != "") { sFecha = DateTime.Parse(dr["t382_flimite"].ToString()).ToShortDateString(); } sb.Append("<td>" + sFecha + "</td>"); sFecha = dr["t382_fnotificacion"].ToString(); if (sFecha != "") { sFecha = DateTime.Parse(dr["t382_fnotificacion"].ToString()).ToShortDateString(); } sb.Append("<td>" + sFecha + "</td>"); sb.Append("<td>" + dr["t382_estado"].ToString() + "</td>"); sb.Append("</tr>"); } dr.Close(); dr.Dispose(); } sb.Append("</tbody>"); sb.Append("</table>"); strTablaHtmlAsunto = sb.ToString(); //Ademas del html de los asuntos devuelvo el html de los PTs del PE return("OK@#@" + strTablaHtmlAsunto + ObtenerPTs(sPE)); }
protected string Grabar(string strDatosTarea, string slIntegrantes) { string sResul = "", sAccionBD, sIdRecurso; int iCodAsunto; byte iEstadoAnt, iEstadoAct; double dEtp, dEtr; bool bNotificable = false, bEnviarAlerta = true, bAlta = false; try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccionSerializable(oConn); } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } try { #region Datos asunto string[] aDatosTarea = Regex.Split(strDatosTarea, "##"); // 0 -> id asunto (si -1 es un alta) // 1 -> descripcion corta // 2 -> descripcion larga // 3 -> referencia externa // 4 -> f/notificación // 5 -> f/fin // 6 -> f/limite // 7 -> alerta // 8 -> departamento // 9 -> tipo // 10-> estado // 11-> severidad // 12-> prioridad // 13-> sistema // 14-> esfuerzo planificado // 15-> esfuerzo real // 16 -> observaciones // 17 -> cod une (vacío) // 18 -> nº proyecto // 19 -> notificador // 20 -> responsable // 21 -> estado anterior // 22 -> desc Responsable // 23 -> desc Tipo // 24 -> desc Estado // 25 -> desc Severidad // 26 -> desc Prioridad // 27 -> Des PE // 28 -> t305_idproyectosubnodo if (aDatosTarea[0] == "") { iCodAsunto = -1; } else { iCodAsunto = int.Parse(aDatosTarea[0]); } //if (aDatosTarea[4] != "") dFno = DateTime.Parse(aDatosTarea[4]); //if (aDatosTarea[5] != "") dFfp = DateTime.Parse(aDatosTarea[5]); //if (aDatosTarea[6] != "") dFLi = DateTime.Parse(aDatosTarea[6]); DateTime dFno = DateTime.Parse(aDatosTarea[4]); DateTime dFfp = DateTime.Parse((aDatosTarea[5] == "") ? "01/01/1900" : aDatosTarea[5]); DateTime dFLi = DateTime.Parse((aDatosTarea[6] == "") ? "01/01/1900" : aDatosTarea[6]); if (aDatosTarea[21] == "") { iEstadoAnt = byte.Parse(aDatosTarea[10]); } else { iEstadoAnt = byte.Parse(aDatosTarea[21]); } iEstadoAct = byte.Parse(aDatosTarea[10]); if (aDatosTarea[14] != "") { dEtp = double.Parse(aDatosTarea[14]); } else { dEtp = 0; } if (aDatosTarea[15] != "") { dEtr = double.Parse(aDatosTarea[15]); } else { dEtr = 0; } if (iCodAsunto == -1) { bAlta = true; iCodAsunto = ASUNTO.Insert(tr, int.Parse(aDatosTarea[28]), Utilidades.unescape(aDatosTarea[7]), Utilidades.unescape(aDatosTarea[1]), Utilidades.unescape(aDatosTarea[2]), Utilidades.unescape(aDatosTarea[8]), iEstadoAct, dEtp, dEtr, dFfp, dFLi, dFno, Utilidades.unescape(aDatosTarea[19]), Utilidades.unescape(aDatosTarea[16]), byte.Parse(aDatosTarea[12]), Utilidades.unescape(aDatosTarea[3]), int.Parse(Session["NUM_EMPLEADO_ENTRADA"].ToString()), int.Parse(Session["NUM_EMPLEADO_ENTRADA"].ToString()), byte.Parse(aDatosTarea[11]), Utilidades.unescape(aDatosTarea[13]), int.Parse(aDatosTarea[9])); ASUNTOESTADO.Insert(tr, iCodAsunto, iEstadoAct, int.Parse(Session["NUM_EMPLEADO_ENTRADA"].ToString())); } else { bAlta = false; ASUNTO.Update(tr, Utilidades.unescape(aDatosTarea[7]), Utilidades.unescape(aDatosTarea[1]), Utilidades.unescape(aDatosTarea[2]), Utilidades.unescape(aDatosTarea[8]), iEstadoAct, dEtp, dEtr, dFfp, dFLi, dFno, iCodAsunto, Utilidades.unescape(aDatosTarea[19]), Utilidades.unescape(aDatosTarea[16]), byte.Parse(aDatosTarea[12]), Utilidades.unescape(aDatosTarea[3]), int.Parse(aDatosTarea[20]), byte.Parse(aDatosTarea[11]), Utilidades.unescape(aDatosTarea[13]), int.Parse(aDatosTarea[9])); if (iEstadoAnt != iEstadoAct) { ASUNTOESTADO.Insert(tr, iCodAsunto, iEstadoAct, int.Parse(Session["NUM_EMPLEADO_ENTRADA"].ToString())); } } #endregion #region Datos integrantes if (slIntegrantes == "") {//Tenemos lista vacía. No hacemos nada } else {//Con la cadena generamos una lista y la recorremos para grabar cada elemento string[] aPersonas = Regex.Split(slIntegrantes, @"///"); for (int i = 0; i < aPersonas.Length - 1; i++) { if (aPersonas[i] != "") { string[] aIntegrante = Regex.Split(aPersonas[i], @"##"); sAccionBD = aIntegrante[0]; sIdRecurso = aIntegrante[1]; if (aIntegrante[2] == "1") { bNotificable = true; } else { bNotificable = false; } switch (sAccionBD) { case "I": ASUNTORECURSOS.Insert(tr, int.Parse(sIdRecurso), iCodAsunto, bNotificable); break; case "D": //delete ASUNTORECURSOS.Delete(tr, iCodAsunto, int.Parse(sIdRecurso)); break; case "U": //update ASUNTORECURSOS.Update(tr, int.Parse(sIdRecurso), iCodAsunto, bNotificable); break; } } }//for } #endregion #region Enviar correos if (bEnviarAlerta) { //if (bAlta) sCad = "I"; //else sCad = "U"; EnviarCorreoAlerta(iCodAsunto.ToString(), strDatosTarea, slIntegrantes, bAlta); } #endregion Conexion.CommitTransaccion(tr); sResul = "OK@#@" + iCodAsunto.ToString(); } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al grabar los datos del asunto", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }
private void ObtenerDatosAsunto() { //Relleno el combo de tipo de asunto this.cboTipo.DataValueField = "t384_idtipo"; this.cboTipo.DataTextField = "t384_destipo"; this.cboTipo.DataSource = TIPOASUNTO.Catalogo("", null, null, 3, 0); this.cboTipo.DataBind(); if (nIdAsunto == -1) { txtValCre.Text = DateTime.Now.ToShortDateString(); txtValNotif.Text = DateTime.Now.ToShortDateString(); this.txtIdResponsable.Text = Session["NUM_EMPLEADO_ENTRADA"].ToString(); this.txtResponsable.Text = Session["APELLIDO1"].ToString() + " " + Session["APELLIDO2"].ToString() + ", " + Session["NOMBRE"].ToString(); this.txtRegistrador.Text = Session["APELLIDO1"].ToString() + " " + Session["APELLIDO2"].ToString() + ", " + Session["NOMBRE"].ToString(); } else { ASUNTO o = ASUNTO.Select(tr, nIdAsunto); hdnT305IdProy.Value = o.t305_idproyectosubnodo.ToString(); txtIdAsunto.Text = o.t382_idasunto.ToString(); //txtDesAsunto.Text = HttpUtility.HtmlEncode(o.t382_desasunto); txtDesAsunto.Text = o.t382_desasunto; txtDescripcion.Text = o.t382_desasuntolong; this.txtEtp.Text = o.t382_etp.ToString("N"); this.txtEtr.Text = o.t382_etr.ToString("N"); if (o.t382_fcreacion.Year > 1900) { txtValCre.Text = o.t382_fcreacion.ToShortDateString(); } if (o.t382_fnotificacion.Year > 1900) { txtValNotif.Text = o.t382_fnotificacion.ToShortDateString(); } if (o.t382_flimite.Year > 1900) { txtValLim.Text = o.t382_flimite.ToShortDateString(); } if (o.t382_ffin.Year > 1900) { txtValFin.Text = o.t382_ffin.ToShortDateString(); } this.txtDpto.Text = o.t382_dpto; this.txtAlerta.Text = o.t382_alerta; this.txtObs.Text = o.t382_obs; this.txtRefExt.Text = o.t382_refexterna; this.txtSistema.Text = o.t382_sistema; this.cboEstado.SelectedValue = o.t382_estado.ToString(); this.cboEstado.Text = o.Estado; this.txtEstadoAnt.Text = o.t382_estado.ToString(); this.cboPrioridad.SelectedValue = o.t382_prioridad.ToString(); this.cboPrioridad.Text = o.Prioridad; this.cboSeveridad.SelectedValue = o.t382_severidad.ToString(); this.cboSeveridad.Text = o.Severidad; this.cboTipo.SelectedValue = o.t384_idtipo.ToString(); this.cboTipo.Text = o.Tipo; this.txtNotificador.Text = o.t382_notificador; this.txtIdResponsable.Text = o.t382_responsable.ToString(); this.txtResponsable.Text = o.Responsable; this.txtRegistrador.Text = o.Registrador; } PROYECTOSUBNODO oPSN = PROYECTOSUBNODO.Obtener(null, int.Parse(this.hdnT305IdProy.Value)); if (oPSN.t305_opd) { lblNumero.Style.Add("display", "none"); txtIdAsunto.Style.Add("display", "none"); lblCreacion.Style.Add("visibility", "hidden"); txtValCre.Style.Add("visibility", "hidden"); tsPestanas.Items[1].Disabled = true; } }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsCallback) { if (Session["IDRED"] == null) { try { Response.Redirect("~/SesionCaducadaModal.aspx", true); } catch (System.Threading.ThreadAbortException) { return; } } //if (!(bool)Session["FORANEOS"]) //{ // this.imgForaneo.Visible = false; // this.lblForaneo.Visible = false; //} sErrores = ""; sLectura = "false"; sNodo = Estructura.getDefCorta(Estructura.sTipoElem.NODO); nIdAccion = int.Parse(Utilidades.decodpar(Request.QueryString["a"].ToString())); //nIdAccion txtIdAsunto.Text = Utilidades.decodpar(Request.QueryString["as"].ToString()); //idAsunto //txtDesAsunto.Text = Utilidades.unescape(Request.QueryString["desAsunto"].ToString()); ASUNTO oAsto = ASUNTO.Select(null, int.Parse(txtIdAsunto.Text)); txtDesAsunto.Text = oAsto.t382_desasunto; this.hdnAcceso.Text = Utilidades.decodpar(Request.QueryString["p"].ToString());//Permiso nIdPE = int.Parse(quitaPuntos(Request.QueryString["nPE"].ToString())); this.hdnDesPE.Text = Request.QueryString["desPE"].ToString(); this.txtIdResponsable.Text = oAsto.t382_responsable.ToString(); if (Request.QueryString["r"] != null && Request.QueryString["r"] != "undefined")//sIdResp { if (Request.QueryString["r"] != "") { this.txtIdResponsable.Text = Utilidades.decodpar(Request.QueryString["r"].ToString());//sIdResp } } this.hdnT305IdProy.Value = Utilidades.decodpar(Request.QueryString["ps"].ToString());//sT305IdProy this.hdnNodo.Value = PROYECTOSUBNODO.GetNodo(tr, int.Parse(this.hdnT305IdProy.Value)).ToString(); try { Utilidades.SetEventosFecha(this.txtValLim); Utilidades.SetEventosFecha(this.txtValFin); ObtenerDatosAccion(); } catch (Exception ex) { sErrores += Errores.mostrarError("Error al obtener los datos de la acción", ex); } try { //Datos de las personas asignadas a la acción string strTabla = ObtenerRecursos(nIdAccion.ToString(), this.hdnNodo.Value); string[] aRecursos = Regex.Split(strTabla, "@#@"); if (aRecursos[0] == "OK") { divR.InnerHtml = aRecursos[1]; } //Datos de las tareas asignadas a la acción strTabla = ObtenerTareas(nIdAccion.ToString()); string[] aTareas = Regex.Split(strTabla, "@#@"); if (aTareas[0] == "OK") { divH.InnerHtml = aTareas[1]; } //Datos de los documentos asociados a la acción //strTabla = ObtenerDocumentos(nIdAccion.ToString()); //string[] aTabla = Regex.Split(strTabla, "@#@"); //if (aTabla[0] == "OK") divDoc.InnerHtml = aTabla[1]; string sEstado = PROYECTOSUBNODO.getEstado(null, int.Parse(this.hdnT305IdProy.Value)); divDoc.InnerHtml = Utilidades.ObtenerDocumentos("AC_PE", nIdAccion, this.hdnAcceso.Text, sEstado); } catch (Exception ex) { sErrores += Errores.mostrarError("Error al obtener datos complementarios", ex); } //this.hdnAcceso.Text = Request.QueryString["Permiso"].ToString(); if (this.hdnAcceso.Text == "R") { ModoLectura.Poner(this.Controls); sLectura = "true"; } //1º Se indican (por este orden) la función a la que se va a devolver el resultado // y la función que va a acceder al servidor string cbRespuesta = Page.ClientScript.GetCallbackEventReference(this, "arg", "RespuestaCallBack", "context", false); string cbLlamada = "function RealizarCallBack(arg, context)" + "{" + cbRespuesta + ";" + "}"; //2º Se "registra" la función que va a acceder al servidor. Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "RealizarCallBack", cbLlamada, true); } }
//private string ObtenerDatosBitacoras(string sDesde, string sHasta, string sProyectos) private string ObtenerDatosBitacoras(string sProyectos) { string sResul = ""; StringBuilder sb = new StringBuilder(); sb.Length = 0; //DateTime dtDesde, dtHasta; bool bError = false; try { //if (sDesde == "") sDesde = "01/01/1970"; //if (sHasta == "") sHasta = "31/12/2050"; //if (!Utilidades.isDate(sDesde)) //{ // sResul = "Error@#@La fecha desde no es correcta"; // bError = true; //} //if (!bError && !Utilidades.isDate(sHasta)) //{ // sResul = "Error@#@La fecha hasta no es correcta"; // bError = true; //} if (!bError) { //dtDesde = System.Convert.ToDateTime(sDesde); //dtHasta = System.Convert.ToDateTime(sHasta); 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>Tipo de bitácora</td>"); sb.Append("<td>Nº proyecto económico</td>"); sb.Append("<td>Denominación proyecto económico</td>"); sb.Append("<td>Denominación proyecto técnico</td>"); sb.Append("<td>Nº tarea</td>"); sb.Append("<td>Denominación tarea</td>"); sb.Append("<td>Asunto</td>"); sb.Append("<td>Tipo</td>"); sb.Append("<td>Severidad</td>"); sb.Append("<td>Prioridad</td>"); sb.Append("<td>Fecha notificación</td>"); sb.Append("<td>Fecha límite</td>"); sb.Append("<td>Estado</td>"); sb.Append("<td>Responsable</td>"); sb.Append("</tr>"); sb.Append("</table>"); sb.Append("<TABLE style='font-family:Arial;font-size:8pt;' border=1>"); sb.Append("<COLGROUP>"); sb.Append("<col />"); sb.Append("<col />"); sb.Append("<col />"); sb.Append("<col />"); sb.Append("<col />"); sb.Append("<col />"); sb.Append("<col />"); sb.Append("<col />"); sb.Append("<col />"); sb.Append("<col />"); sb.Append("<col />"); sb.Append("<col />"); sb.Append("<col />"); sb.Append("<col />"); sb.Append("</COLGROUP>"); //SqlDataReader dr = ASUNTO.Masivo(dtDesde, dtHasta, sProyectos); SqlDataReader dr = ASUNTO.Masivo(sProyectos); while (dr.Read()) { sb.Append("<tr style='vertical-align:top;'>"); sb.Append("<td>" + dr["tipo_bitacora"] + "</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["t331_despt"].ToString() + "</td>"); sb.Append("<td style='text-align:rigth;'>" + ((int)dr["t332_idtarea"]).ToString("#,###") + "</td>"); sb.Append("<td>" + dr["t332_destarea"].ToString() + "</td>"); sb.Append("<td>" + dr["asunto"].ToString() + "</td>"); sb.Append("<td>" + dr["t384_destipo"].ToString() + "</td>"); sb.Append("<td>" + dr["severidad"].ToString() + "</td>"); sb.Append("<td>" + dr["prioridad"].ToString() + "</td>"); if (dr["fnotificacion"].ToString() != "") { sb.Append("<td>" + ((DateTime)dr["fnotificacion"]).ToShortDateString() + "</td>"); } else { sb.Append("<td></td>"); } if (dr["flimite"].ToString() != "") { sb.Append("<td>" + ((DateTime)dr["flimite"]).ToShortDateString() + "</td>"); } else { sb.Append("<td></td>"); } sb.Append("<td>" + dr["estado"].ToString() + "</td>"); sb.Append("<td>" + dr["responsable"].ToString() + "</td>"); sb.Append("</tr>"); } dr.Close(); dr.Dispose(); sb.Append("</table>"); sb.Length = 0; //Para liberar memoria string sIdCache = "EXCEL_CACHE_" + Session["IDFICEPI_ENTRADA"].ToString() + "_" + DateTime.Now.ToString(); Session[sIdCache] = sb.ToString();; sResul = "OK@#@cacheado@#@" + sIdCache + "@#@" + sb.ToString(); return(sResul); } } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al obtener los datos de consulta masiva de bitácoras", ex); } return(sResul); }
private string obtenerAsuntos(string sPE, string sOrden, string sAscDesc, byte iEstado, int iTipo, byte iSeveridad, byte iPrioridad, string notifD, string notifH, string limD, string limH, string finD, string finH, string sAcciones, string desAsunto) { try { StringBuilder strBuilder = new StringBuilder(); int i = 0, nT305_idProyectoSubNodo; string sIdAsuntoAnt, sIdAsuntoAct, sFila; nT305_idProyectoSubNodo = int.Parse(sPE); if (Session["NUM_PROYECTO"].ToString() == "") { string sCad = PROYECTO.flGetNumProy(null, nT305_idProyectoSubNodo); string[] aArgs = Regex.Split(sCad, "@"); Session["NUM_PROYECTO"] = aArgs[0]; } strBuilder.Append("<table id='tblDatos1' style='width: 970px;'>"); strBuilder.Append("<colgroup><col style='width:70px' /><col style='width:100px' /><col style='width:270px' /><col style='width:50px' />"); strBuilder.Append("<col style='width:50px' /><col style='width:65px' /><col style='width:65px' /><col style='width:45px' />"); strBuilder.Append("<col style='width:65px' /><col style='width:190px' /></colgroup>"); SqlDataReader dr = ASUNTO.Catalogo2(nT305_idProyectoSubNodo, desAsunto, iEstado, finD, finH, limD, limH, notifD, notifH, iPrioridad, iSeveridad, iTipo, byte.Parse(sOrden), byte.Parse(sAscDesc), sAcciones); sIdAsuntoAnt = "-1"; while (dr.Read()) { if (sAcciones == "N") { sFila = ponerFilaAsunto(dr, i, false); strBuilder.Append(sFila); } else { sIdAsuntoAct = dr["t382_idasunto"].ToString(); if (sIdAsuntoAnt != sIdAsuntoAct) { sFila = ponerFilaAsunto(dr, i, true); strBuilder.Append(sFila); i++; sFila = ponerFilaAccion(dr, i); } else { sFila = ponerFilaAccion(dr, i); } strBuilder.Append(sFila); sIdAsuntoAnt = sIdAsuntoAct; } i++; } dr.Close(); dr.Dispose(); strBuilder.Append("</table>"); strTablaHtmlAsunto = strBuilder.ToString(); } catch (Exception ex) { sErrores += Errores.mostrarError("Error al obtener datos complementarios", ex); } return("OK@#@" + strTablaHtmlAsunto); }