private string Grabar(string strDatos)
    {
        string sResul = "";

        #region Abrir conexión y transacción
        try
        {
            oConn = Conexion.Abrir();
            tr    = Conexion.AbrirTransaccionSerializable(oConn);
        }
        catch (Exception ex)
        {
            if (oConn.State == ConnectionState.Open)
            {
                Conexion.Cerrar(oConn);
            }
            sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex);
            return(sResul);
        }
        #endregion
        try
        {
            #region Datos Límites de Facturación
            if (strDatos != "")
            {
                string[] aFilas = Regex.Split(strDatos, "{sepreg}");
                foreach (string oFila in aFilas)
                {
                    if (oFila == "")
                    {
                        continue;
                    }
                    string[] aDatos = Regex.Split(oFila, "{sep}");
                    ///aDatos[0] = añomes
                    ///aDatos[1] = Límite Facturación   t637_fecha
                    ///aDatos[2] = Límite Respuesta     t828_limitealertas
                    ///aDatos[3] = Previsión cierre ECO t855_prevcierreeco

                    LIMITEFACTURACION.Update(tr, int.Parse(aDatos[0]), (aDatos[1] == "") ? null : (DateTime?)DateTime.Parse(aDatos[1]));
                    SUPER.Capa_Datos.LIMITEALERTAS.Update(tr, int.Parse(aDatos[0]), (aDatos[2] == "") ? null : (DateTime?)DateTime.Parse(aDatos[2]));
                    SUPER.DAL.MESESCIERRE.UpdatePrevCierreECO(tr, int.Parse(aDatos[0]), (aDatos[3] == "") ? null : (DateTime?)DateTime.Parse(aDatos[3]));
                }
            }

            #endregion

            Conexion.CommitTransaccion(tr);
            sResul = "OK@#@";
        }
        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            sResul = "Error@#@" + Errores.mostrarError("Error al grabar los meses de cierre", ex);
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }
        return(sResul);
    }
    private string Grabar(string strLimiteFactura)
    {
        string sResul = "", sElementosInsertados = "";

        #region Abrir conexión y transacción
        try
        {
            oConn = Conexion.Abrir();
            tr    = Conexion.AbrirTransaccionSerializable(oConn);
        }
        catch (Exception ex)
        {
            if (oConn.State == ConnectionState.Open)
            {
                Conexion.Cerrar(oConn);
            }
            sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex);
            return(sResul);
        }
        #endregion
        try
        {
            #region Datos Límites de Facturación
            if (strLimiteFactura != "")
            {
                string[] aLimiteFactura = Regex.Split(strLimiteFactura, "///");
                foreach (string oLimiteFactura in aLimiteFactura)
                {
                    if (oLimiteFactura == "")
                    {
                        continue;
                    }
                    string[] aValores = Regex.Split(oLimiteFactura, "##");
                    ///aValores[0] = bd
                    ///aValores[1] = @t637_anomes
                    ///aValores[2] = @t637_fecha
                    ///
                    switch (aValores[0])
                    {
                    case "I":
                        LIMITEFACTURACION.Insert(tr, int.Parse(aValores[1]), DateTime.Parse(aValores[2]));
                        break;

                    case "D":
                        LIMITEFACTURACION.Delete(tr, int.Parse(aValores[1]));
                        break;

                    case "U":
                        LIMITEFACTURACION.Update(tr, int.Parse(aValores[1]), DateTime.Parse(aValores[2]));
                        break;
                    }
                }
            }

            #endregion

            Conexion.CommitTransaccion(tr);
            sResul = "OK@#@" + sElementosInsertados;
        }
        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            sResul = "Error@#@" + Errores.mostrarError("Error al grabar los límites de facturación", ex);
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }
        return(sResul);
    }