private string EliminarGF(string strGrupo)
    {
        string sResul = "OK@#@";
        int    idGF   = -1;

        #region abrir conexión y transacción
        try
        {
            oConn = Conexion.Abrir();
            tr    = Conexion.AbrirTransaccion(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
        {
            string[] aGF = Regex.Split(strGrupo, "##");
            foreach (string oGF in aGF)
            {
                if (oGF != "")
                {
                    idGF = int.Parse(oGF);
                    GrupoFun.BorrarGrupo(tr, int.Parse(oGF));
                }
            }
            Conexion.CommitTransaccion(tr);
            sResul = "OK@#@";
        }
        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            Master.sErrores = Errores.mostrarError("Error al eliminar el grupo funcional " + idGF.ToString(), ex);
            sResul          = "Error@#@No se ha podido eliminar el grupo funcional " + idGF.ToString() + ".\n" + ex.Message;
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }
        return(sResul);
    }