private void ObtenerTablas(int nOpcion)
    {
        sb = new StringBuilder();
        try
        {
            sb.Append("<table id='tblTablas' style='width: 700px;'>");
            sb.Append("<colgroup>");
            sb.Append("<col style='width:700px;' />");
            sb.Append("</colgroup>");
            sb.Append("<tbody>");

            string sTabla = "";

            SqlDataReader dr = TABLASAUDITSUPER.ObtenerTablas(nOpcion);

            while (dr.Read())
            {
                if (sTabla != dr["t300_tabla"].ToString())
                {
                    sTabla = dr["t300_tabla"].ToString();
                    CrearTabla(dr);
                }
                else
                {
                    CrearCampo(dr);
                }
            }
            dr.Close();
            dr.Dispose();

            sb.Append("</tbody>");
            sb.Append("</table>");

            strTablaHTML = sb.ToString();
        }
        catch (Exception ex)
        {
            sErrores += Errores.mostrarError("Error al obtener las tablas auditadas", ex);
        }
    }
    public string obtenerTablas()
    {
        StringBuilder sb = new StringBuilder();

        try
        {
            SqlDataReader dr = TABLASAUDITSUPER.CatalogoTablas();
            sb.Append("<table id='tblTablas' style='width:390px;' mantenimiento='1'>");
            sb.Append("<colgroup>");
            sb.Append(" <col style='width:15px;' />");
            sb.Append(" <col style='width:320px;' />");
            sb.Append(" <col style='width:30px;' />");
            sb.Append("</colgroup>");
            sb.Append("<tbody>");
            while (dr.Read())
            {
                sb.Append("<tr id='" + dr["t300_tabla"].ToString() + "' bd='' style='height:20px;' onclick='mm(event)'>");
                sb.Append(" <td style='padding-left:5px;'><img src='../../../images/imgFN.gif'></td>");
                sb.Append(" <td><nobr class='NBR' style='width:300px'>" + dr["t300_tabladenusuario"].ToString() + "</nobr></td>");
                sb.Append(" <td style='padding-left:5px;'><input type='checkbox' style='width:15px;' class='check' onclick='activarGrabar();fm(event);' ");
                if (bool.Parse(dr["t300_auditar"].ToString()))
                {
                    sb.Append("checked=true");
                }
                sb.Append("></td>");
                sb.Append("</tr>" + (char)10);
            }
            dr.Close();
            dr.Dispose();
            sb.Append("</tbody>");
            sb.Append("</table>");

            return("OK@#@" + sb.ToString());
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener el catálogo de tablas", ex));
        }
    }
    public string grabar(string sParametrizacion, string sTabla)
    {
        string         sResul = "";
        SqlConnection  oConn  = null;
        SqlTransaction tr     = null;

        #region abrir conexión y transacción
        try
        {
            oConn = Conexion.Abrir();
            tr    = Conexion.AbrirTransaccion(oConn);
        }
        catch (Exception)
        {
            if (oConn.State == ConnectionState.Open)
            {
                Conexion.Cerrar(oConn);
            }
            throw (new Exception("Error al abrir la conexión."));
        }
        #endregion

        try
        {
            if (sParametrizacion != "")
            {
                //Con la cadena generamos una lista y la recorremos para grabar cada elemento
                string[] aDatos = Regex.Split(sParametrizacion, "#sCad#");
                Session["OCULTAR_AUDITORIA"]   = aDatos[2];
                Session["ALERTASPROY_ACTIVAS"] = (aDatos[5] == "1") ? true : false;
                Session["FORANEOS"]            = (aDatos[6] == "1") ? true : false;
                PARAMETRIZACIONSUPER.Update(tr,
                                            (aDatos[0] == "") ? 0 : decimal.Parse(aDatos[0]),
                                            byte.Parse(aDatos[1]),
                                            (aDatos[2] == "1") ? true : false,
                                            (aDatos[3] == "1") ? true : false,
                                            (aDatos[4] == "") ? 0 : decimal.Parse(aDatos[4]),
                                            (aDatos[5] == "1") ? true : false,
                                            (aDatos[6] == "1") ? true : false,//Mail CIA
                                            (aDatos[7] == "1") ? true : false,
                                            (aDatos[8] == "") ? 0 : int.Parse(aDatos[7])
                                            );
            }
            if (sTabla != "")
            {
                //Con la cadena generamos una lista y la recorremos para grabar cada elemento
                string[] aDatos2 = Regex.Split(sTabla, "#sFin#");
                for (int i = 0; i <= aDatos2.Length - 1; i++)
                {
                    string[] aElem = Regex.Split(aDatos2[i], "#sCad#");
                    TABLASAUDITSUPER.Update(tr,
                                            aElem[0],
                                            (aElem[1] == "1") ? true : false);
                }
            }
            Conexion.CommitTransaccion(tr);
        }
        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            sResul = SUPER.Capa_Negocio.Errores.mostrarError("Error al grabar la parametrización.", ex);
        }
        finally
        {
            Conexion.Cerrar(oConn);
            if (sResul != "")
            {
                throw (new Exception(sResul));
            }
        }
        return(sResul);
    }