示例#1
0
        public bool BuscaRelatorio()
        {
            //BUSCA O CAD REPORT SE NÃO TIVER
            if ((!string.IsNullOrEmpty(Cad_Report.NM_Classe)) ||
                (!string.IsNullOrEmpty(Cad_Report.ID_RDC)))
            {
                TList_Cad_Report lista = TCN_Cad_Report.Buscar(0,
                                                               string.Empty,
                                                               Cad_Report.Modulo,
                                                               Cad_Report.NM_Classe,
                                                               Cad_Report.Ident,
                                                               0,
                                                               Cad_Report.ID_RDC,
                                                               false,
                                                               false,
                                                               false);

                if (lista.Count > 0)
                {
                    Cad_Report = lista[0];
                    return(true);
                }
                return(false);
            }
            return(false);
        }
示例#2
0
        private void bb_Menu_Click(object sender, EventArgs e)
        {
            if (BS_Relatorio.Current != null)
            {
                //GRAVA O MENU
                TFEscolha_Menu fMenu = new TFEscolha_Menu();
                fMenu.Cad_Report = (BS_Relatorio.Current as TRegistro_Cad_Report);

                if (fMenu.ShowDialog() == DialogResult.OK)
                {
                    string retornomenu = TCN_Cad_Report.GravarReportXMenu((BS_Relatorio.Current as TRegistro_Cad_Report), fMenu.Reg_CadMenu, null);

                    if (!BIntelegence)
                    {
                        //CARREGA NOVAMENTE O MENU
                        Type t = Application.OpenForms["FMenuPrin"].GetType();
                        t.GetMethod("CarregaMenu").Invoke(Application.OpenForms["FMenuPrin"], new object[] { "MASTER", true });
                    }
                    else
                    {
                        //CARREGA NOVAMENTE O MENU
                        Type t = Application.OpenForms["TFBInteligence"].GetType();
                        t.GetMethod("DefineDadosConexao").Invoke(Application.OpenForms["TFBInteligence"], new object[] { "C" });
                        t.GetMethod("PopulaMenus").Invoke(Application.OpenForms["TFBInteligence"], null);
                    }
                }
            }
        }
示例#3
0
        public override void excluirRegistro()
        {
            try
            {
                if ((this.vTP_Modo == TTpModo.tm_Standby) || (this.vTP_Modo == TTpModo.tm_busca))
                {
                    if (MessageBox.Show("Confirma Exclusão do Registro?", "Mensagem",
                                        MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) ==
                        System.Windows.Forms.DialogResult.Yes)
                    {
                        TCN_Cad_Report.DeletarReport(BS_Relatorio.Current as TRegistro_Cad_Report, null);
                        BS_Relatorio.RemoveCurrent();
                        afterBusca();

                        if (!BIntelegence)
                        {
                            //CARREGA NOVAMENTE O MENU
                            Type t = Application.OpenForms["FMenuPrin"].GetType();
                            t.GetMethod("CarregaMenu").Invoke(Application.OpenForms["FMenuPrin"], new object[] { "MASTER", true });
                        }
                    }
                }
            }
            catch (Exception erro)
            {
                MessageBox.Show("ERRO: " + erro.Message, "Mensagem");
            }
        }
示例#4
0
        public static void AtualizarVersaoRDC(TRegistro_Cad_Report Reg_Report)
        {
            TRegistro_Cad_RDC Reg_RDC = ServiceRest.DataService.BuscarRDCAtualizar(Reg_Report);

            if (Reg_RDC != null)
            {
                decimal id_report = Reg_Report.ID_Report;
                Reg_Report = ConvertRDCparaReport(Reg_RDC);
                if (Reg_Report.ID_Report == 0)
                {
                    Reg_Report.ID_Report = id_report;
                }
                //GRAVA O REPORT
                TCN_Cad_Report.GravarReportConsulta(Reg_Report, null);
            }
        }
示例#5
0
        public override void afterExclui()
        {
            //DELETA MENU
            if (treeMenu.SelectedNode != null)
            {
                if (MessageBox.Show("Confirma Exclusão do Item do Menu?", "Mensagem",
                                    MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) ==
                    System.Windows.Forms.DialogResult.Yes)
                {
                    //excluir
                    TreeNode nodeMenu = treeMenu.SelectedNode;
                    if (nodeMenu.Nodes.Count == 0)
                    {
                        List <TRegistro_CadMenu> RegMenuVar = CacheListaMenu.Where(p => (p.id_menu == nodeMenu.Name)).ToList <TRegistro_CadMenu>();

                        if (RegMenuVar.Count > 0)
                        {
                            TRegistro_CadMenu regMenu = (RegMenuVar[0] as TRegistro_CadMenu);

                            if (regMenu.tp_evento.Trim() == "R")
                            {
                                TCN_Cad_Report.AtualizaMenuReport(regMenu.id_menu, null);
                            }
                            TCN_CadMenu.DeletarMenuAcesso(regMenu, null);

                            CarregaDados();
                        }
                        else
                        {
                            MessageBox.Show("Não foi possível excluir o menu, tente novamente!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Não é possível excluir menu que tem filhos!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            else
            {
                MessageBox.Show("É necessário selecionar um item do menu!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#6
0
        public override string gravarRegistro()
        {
            try
            {
                if ((BS_Relatorio.Current as TRegistro_Cad_Report).Versao == 0)
                {
                    (BS_Relatorio.Current as TRegistro_Cad_Report).Versao = 1;
                }

                (BS_Relatorio.Current as TRegistro_Cad_Report).Sistema = TP_Sistema;

                //FAZ VALIDAÇÕES
                if (cbModulo.SelectedItem == null)
                {
                    throw new Exception("É obrigatório informar o Módulo!");
                }
                else if (DS_Report.Text.Trim() == "")
                {
                    throw new Exception("É obrigatório informar o nome do relatório!");
                }
                else if (treeConsulta.Nodes.Count <= 0)
                {
                    throw new Exception("É obrigatório informar a pelo menos uma consulta no relatório!");
                }
                else
                {
                    return(TCN_Cad_Report.GravarReportConsulta(BS_Relatorio.Current as TRegistro_Cad_Report, null));
                }
            }
            catch (Exception erro)
            {
                MessageBox.Show("ERRO: " + erro.Message, "Mensagem");
            }

            return("");
        }
示例#7
0
        public static void GravarRDC(TRegistro_Cad_Report Reg_Report, CamadaDados.WS_RDC.TList_Cad_ParamClasse lCad_Param, string ST_RDC)
        {
            //CARREGA O OBJECT DO WS
            TRegistro_Cad_RDC Reg_RDC = new TRegistro_Cad_RDC();

            Reg_RDC.ID_RDC      = Reg_Report.ID_RDC;
            Reg_RDC.Modulo      = Reg_Report.Modulo;
            Reg_RDC.Ident       = Reg_Report.Ident;
            Reg_RDC.NM_Classe   = Reg_Report.NM_Classe;
            Reg_RDC.Versao      = Reg_Report.Versao;
            Reg_RDC.Code_Report = Reg_Report.Code_Report;
            Reg_RDC.ST_RDC      = ST_RDC;
            Reg_RDC.DS_RDC      = Reg_Report.DS_Report;

            //A LISTA DE DTS
            TList_Cad_DataSource lDTS = new TList_Cad_DataSource();

            if (Reg_Report.lConsulta != null)
            {
                foreach (TRegistro_Cad_Consulta reg_Consulta in Reg_Report.lConsulta)
                {
                    TRegistro_Cad_DataSource Reg_DTS = new TRegistro_Cad_DataSource();

                    Reg_DTS.DS_DataSource = reg_Consulta.DS_Consulta;
                    Reg_DTS.DS_SQL        = reg_Consulta.DS_SQL;
                    Reg_DTS.ID_DataSource = reg_Consulta.ID_Consulta;

                    CamadaDados.Consulta.Cadastro.TList_Cad_ParamClasse listParam = TCN_Cad_ParamClasse.BuscaParamClasseSQLString(Reg_DTS.DS_SQL);

                    //CARREGA A LISTA DE PARAMETROS
                    CamadaDados.WS_RDC.TList_Cad_ParamClasse lReg_ParamRDCL = new CamadaDados.WS_RDC.TList_Cad_ParamClasse();

                    if (listParam != null)
                    {
                        foreach (CamadaDados.Consulta.Cadastro.TRegistro_Cad_ParamClasse reg_Param in listParam)
                        {
                            CamadaDados.WS_RDC.TRegistro_Cad_ParamClasse RegParamRDC = new CamadaDados.WS_RDC.TRegistro_Cad_ParamClasse();

                            RegParamRDC.CodigoCMP       = reg_Param.CodigoCMP;
                            RegParamRDC.CondicaoBusca   = reg_Param.CondicaoBusca;
                            RegParamRDC.NM_CampoFormat  = reg_Param.NM_CampoFormat;
                            RegParamRDC.NM_Classe       = reg_Param.NM_Classe;
                            RegParamRDC.NM_DLL          = reg_Param.NM_DLL;
                            RegParamRDC.NM_Param        = reg_Param.NM_Param;
                            RegParamRDC.NomeCMP         = reg_Param.NomeCMP;
                            RegParamRDC.RadioCheckGroup = reg_Param.RadioCheckGroup;
                            RegParamRDC.St_Null         = reg_Param.St_Null;
                            RegParamRDC.St_Obrigatorio  = reg_Param.St_Obrigatorio;
                            RegParamRDC.TP_Dado         = reg_Param.TP_Dado;

                            lReg_ParamRDCL.Add(RegParamRDC);
                        }
                    }

                    Reg_DTS.lCad_ParamClasse = lReg_ParamRDCL;

                    lDTS.Add(Reg_DTS);
                }
            }

            //ADD A LISTA DO REGISTRO
            Reg_RDC.lCad_DataSource = lDTS;
            //GRAVA E FECHA A CONEXÃO COM O WS
            string result = ServiceRest.DataService.GravarRDC(Reg_RDC);

            try
            {
                if (result.Replace("\"", string.Empty).Substring(0, 1).Equals("0"))
                {
                    Reg_Report.ID_RDC  = result.Replace("\"", string.Empty).Split(new char[] { '|' })[1];
                    Reg_Report.Versao += 1;
                    TCN_Cad_Report.GravarReport(Reg_Report, null);
                    throw new Exception("Relatório publicado com sucesso!");
                }
                else
                {
                    throw new Exception(result);
                }
            }
            catch (Exception erro)
            {
                throw new Exception(erro.Message);
            }
        }
示例#8
0
        public void Editar()
        {
            try
            {
                //CHAMA A CLASSE Q DEFINE O MODELO DO RELATORIO
                string modeloRelatorio = DefineDesigner();

                //GRAVA O REPORT
                if ((modeloRelatorio != "") && (!Homologacao))
                {
                    bool gravarRelatorio = false;
                    bool verificar       = false;

                    if (Cad_Report.Code_Report == null)
                    {
                        verificar = true;
                    }
                    else
                    if (System.Text.ASCIIEncoding.UTF8.GetString(Utils.Compact_Data.Descompactar(Cad_Report.Code_Report, string.Empty)) != modeloRelatorio)
                    {
                        verificar = true;
                    }

                    //VERIFICA SE FOR MASTER
                    if (verificar)
                    {
                        //GRAVA O REPORT JÁ
                        if (CamadaNegocio.Diversos.TCN_Usuario_RegraEspecial.ValidaRegra(Utils.Parametros.pubLogin, "PERMITIR ALTERAR RELATÓRIO", null))
                        {
                            gravarRelatorio = true;
                        }
                        else
                        {
                            if (MessageBox.Show("Deseja realmente salvar a alteração neste relatório?\nAtenção, ao salvar a alteração PERDERÁ o suporte de versão deste relatório!", "Mensagem",
                                                MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) ==
                                System.Windows.Forms.DialogResult.Yes)
                            {
                                Cad_Report.ID_RDC = "";
                                gravarRelatorio   = true;
                            }
                            else
                            {
                                gravarRelatorio = false;
                            }
                        }

                        //GRAVA O REPORT
                        if (gravarRelatorio)
                        {
                            if (Cad_Report.DS_Report != "")
                            {
                                if (Cad_Report.Versao == 0)
                                {
                                    Cad_Report.Versao = 1;
                                }

                                Cad_Report.Code_Report = Utils.Compact_Data.Compactar(System.Text.ASCIIEncoding.UTF8.GetBytes(modeloRelatorio));
                                string ret_report = TCN_Cad_Report.GravarReport(Cad_Report, null);
                                Cad_Report.ID_Report = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_report, "@P_ID_REPORT"));
                            }
                        }

                        if ((Utils.Parametros.pubLogin == "MASTER") || (Utils.Parametros.pubLogin == "DESENV"))
                        {
                            if (MessageBox.Show("Deseja publicar esta versão?\nAtenção, ao publicar a versão já será homologada automaticamente!", "Mensagem",
                                                MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                            {
                                Cad_Report.Versao++;
                                Cad_Report.lConsulta = TCN_Cad_Consulta.Busca(decimal.Zero,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              Cad_Report.ID_Report);
                                AtualizarRDC.GravarRDC(Cad_Report, null, "P");
                            }
                        }
                    }
                }
                else
                {
                    Cad_Report.Code_Report = Compact_Data.Compactar(System.Text.ASCIIEncoding.UTF8.GetBytes(modeloRelatorio));
                }
            }
            catch (Exception erro)
            {
                MessageBox.Show(erro.Message, "Mensagem");
            }
        }
示例#9
0
        public bool Gera_DataCube(string Documento,
                                  bool St_imprimir,
                                  bool St_visualizar,
                                  bool St_enviaremail,
                                  List <string> Destinatarios,
                                  string Titulo,
                                  string Mensagem)
        {
            bool retorno = false;
            TFPreviewDataCube fDataCube = new TFPreviewDataCube();

            fDataCube.Text = Cad_Report.DS_Report;

            //AQUI A CLASSE PARA VISUALIZAçÂO DO GRAFICO
            //BUSCA O CAD REPORT SE NÃO TIVER
            if ((Cad_Report.ID_Report == 0) && (NM_Classe != ""))
            {
                TList_Cad_Report lista = TCN_Cad_Report.Buscar(0,
                                                               string.Empty,
                                                               Modulo,
                                                               NM_Classe,
                                                               Ident,
                                                               0,
                                                               string.Empty,
                                                               false,
                                                               false,
                                                               false);

                if (lista.Count > 0)
                {
                    Cad_Report = lista[0];
                }
            }

            XmlDocument docXMLRelatorio = new XmlDocument();

            fDataCube.bsCubo.DataSource = DTS_CuboDados;

            if (Cad_Report.Code_DataCube != null)
            {
                docXMLRelatorio.LoadXml(System.Text.ASCIIEncoding.UTF8.GetString(Utils.Compact_Data.Descompactar(Cad_Report.Code_DataCube, string.Empty)));
                fDataCube.dataCube.Layout = docXMLRelatorio.InnerXml;
            }

            //ADD O LAYOUT
            fDataCube.dcGrid.RefreshDataCubeGrid();
            try
            {
                fDataCube.dataCube.Recalculate();
            }
            catch { }

            if (Cad_Report.Code_DataCube != null)
            {
                if (Altera_CuboDados == false)
                {
                    fDataCube.dcGrid.ShowOpen   = false;
                    fDataCube.dcGrid.ShowSave   = false;
                    fDataCube.dcGrid.ShowWizard = true;

                    if (St_imprimir)
                    {
                        fDataCube.dcGrid.PrintPreview();
                    }
                    else if (St_visualizar)
                    {
                        fDataCube.WindowState = FormWindowState.Maximized;
                        fDataCube.ShowDialog();
                        retorno = true;
                    }
                }
                else
                {
                    //CHAMA A CLASSE Q DEFINE O MODELO DO RELATORIO
                    string modeloRelatorio = DefineDesigner(fDataCube);

                    if (modeloRelatorio != "")
                    {
                        Cad_Report.Code_DataCube = Utils.Compact_Data.Compactar(System.Text.ASCIIEncoding.UTF8.GetBytes(modeloRelatorio));
                    }

                    //GRAVA O REPORT
                    if ((Cad_Report.DS_Report) != "" && (!Homologacao))
                    {
                        TCN_Cad_Report.GravarReport(Cad_Report, null);
                    }
                }
            }
            else
            {
                //VERIFICA SE JÁ TEM O ITEM LANÇADO
                if (Cad_Report.ID_Report == 0)
                {
                    Cad_Report.Modulo    = Modulo;
                    Cad_Report.NM_Classe = NM_Classe;
                    Cad_Report.DS_Report = NM_Classe;
                    Cad_Report.Ident     = Ident;
                    Cad_Report.Versao    = 1;

                    //CHAMA A CLASSE Q DEFINE O MODELO DO RELATORIO
                    string modeloRelatorio = DefineDesigner(fDataCube);

                    if (modeloRelatorio != "")
                    {
                        Cad_Report.Code_DataCube = Utils.Compact_Data.Compactar(System.Text.ASCIIEncoding.UTF8.GetBytes(modeloRelatorio));
                    }

                    //GRAVA O REPORT
                    if ((Cad_Report.DS_Report) != "" && (!Homologacao))
                    {
                        TCN_Cad_Report.GravarReport(Cad_Report, null);
                    }
                }
                else
                {
                    Cad_Report.Code_DataCube = Utils.Compact_Data.Compactar(System.Text.ASCIIEncoding.UTF8.GetBytes(DefineDesigner(fDataCube)));
                }
            }
            return(retorno);
        }
示例#10
0
        public bool Gera_Grafico(string Documento,
                                 bool St_imprimir,
                                 bool St_visualizar,
                                 bool St_enviaremail,
                                 List <string> Destinatarios,
                                 string Titulo,
                                 string Mensagem)
        {
            bool retorno = false;

            //AQUI A CLASSE PARA VISUALIZAçÂO DO GRAFICO
            //BUSCA O CAD REPORT SE NÃO TIVER
            if ((Cad_Report.ID_Report == 0) && (NM_Classe != ""))
            {
                TList_Cad_Report lista = TCN_Cad_Report.Buscar(0,
                                                               string.Empty,
                                                               Modulo,
                                                               NM_Classe,
                                                               Ident,
                                                               0,
                                                               string.Empty,
                                                               false,
                                                               false,
                                                               false);

                if (lista.Count > 0)
                {
                    Cad_Report = lista[0];
                }
            }

            ChartViewer.DataSources.Add(new ChartDataSource(DTS_Grafico, "DTS"));

            XmlDocument docXMLRelatorio = new XmlDocument();

            if (Cad_Report.Code_Chart != null)
            {
                docXMLRelatorio.LoadXml(System.Text.ASCIIEncoding.UTF8.GetString(Utils.Compact_Data.Descompactar(Cad_Report.Code_Chart, string.Empty)));
            }

            if (Cad_Report.Code_Chart != null)
            {
                if (Altera_Grafico == false)
                {
                    TFPreviewChart fChart = new TFPreviewChart();
                    fChart.Text = Cad_Report.DS_Report;
                    fChart.chartViewer.ChartStream = docXMLRelatorio.InnerXml;
                    fChart.chartViewer.DataSources.Add(new ChartDataSource(DTS_Grafico, "DTS"));
                    fChart.chartViewer.ShowNew      = false;
                    fChart.chartViewer.ShowSave     = false;
                    fChart.chartViewer.ShowDesigner = false;
                    fChart.chartViewer.ResumeLayout(true);

                    if (St_imprimir)
                    {
                        fChart.chartViewer.PrintDialog();
                    }
                    else if (St_visualizar)
                    {
                        fChart.WindowState = FormWindowState.Maximized;
                        fChart.ShowDialog();
                        retorno = true;
                    }
                }
                else
                {
                    //ADICIONA O STREAM DO RELATORIO (XML)
                    ChartViewer.ChartStream = docXMLRelatorio.InnerXml;

                    //DEFINE O DESIGNER
                    ChartViewer.RunDesigner();

                    //BUSCA OS DADOS DO DESIGNER EM XML +E GRAVA EM BINARY
                    if (ChartViewer.ChartStream != "")
                    {
                        docXMLRelatorio.LoadXml(ChartViewer.ChartStream);

                        //INCREMENTA NOVAMENTE OS DADOS
                        Cad_Report.Code_Chart = Utils.Compact_Data.Compactar(System.Text.ASCIIEncoding.UTF8.GetBytes(docXMLRelatorio.InnerXml));

                        //grava o report
                        if ((Cad_Report.DS_Report) != "" && (!Homologacao))
                        {
                            TCN_Cad_Report.GravarReport(Cad_Report, null);
                        }
                    }
                }
            }
            else
            {
                //VERIFICA SE JÁ TEM O ITEM LANÇADO
                if (Cad_Report.ID_Report == 0)
                {
                    Cad_Report.Modulo    = Modulo;
                    Cad_Report.NM_Classe = NM_Classe;
                    Cad_Report.DS_Report = NM_Classe;
                    Cad_Report.Ident     = Ident;
                    Cad_Report.Versao    = 1;

                    //CHAMA A CLASSE Q DEFINE O MODELO DO RELATORIO
                    string modeloRelatorio = DefineDesigner(null);

                    if (modeloRelatorio != "")
                    {
                        Cad_Report.Code_Chart = Utils.Compact_Data.Compactar(System.Text.ASCIIEncoding.UTF8.GetBytes(modeloRelatorio));
                    }

                    //GRAVA O REPORT
                    if ((Cad_Report.DS_Report) != "" && (!Homologacao))
                    {
                        TCN_Cad_Report.GravarReport(Cad_Report, null);
                    }
                }
                else
                {
                    Cad_Report.Code_Chart = Utils.Compact_Data.Compactar(System.Text.ASCIIEncoding.UTF8.GetBytes(DefineDesigner(ChartViewer)));
                }
            }

            return(retorno);
        }
示例#11
0
        private void BB_Download_Click(object sender, EventArgs e)
        {
            if (BS_Download.Current != null)
            {
                try
                {
                    object obj = new TCD_Cad_Report().BuscarEscalar(
                        new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = "a.ID_RDC",
                            vOperador = "=",
                            vVL_Busca = "'" + (BS_Download.Current as CamadaDados.WS_RDC.TRegistro_Cad_RDC).ID_RDC + "'"
                        }
                    }, "1");
                    if (obj != null)
                    {
                        if (obj.ToString().Trim().ToUpper().Equals("1"))
                        {
                            throw new Exception("Atenção, este relatório já esta cadastrado!");
                        }
                    }

                    //FAZ O DOWNLOAD DO MESMO RELATORIO
                    TCD_Cad_Report qtb_Report = new TCD_Cad_Report();
                    try
                    {
                        qtb_Report.CriarBanco_Dados(true);
                        TObjetoBanco banco = qtb_Report.Banco_Dados;

                        //BUSCA O RELATORIO SELECIONADO
                        CamadaDados.WS_RDC.TRegistro_Cad_RDC lista = ServiceRest.DataService.BuscarDetalhesRDC((BS_Download.Current as CamadaDados.WS_RDC.TRegistro_Cad_RDC).ID_RDC);

                        if (lista != null)
                        {
                            (BS_Download.Current as CamadaDados.WS_RDC.TRegistro_Cad_RDC).Code_Report = lista.Code_Report;
                            BS_Download.ResetCurrentItem();
                        }
                        else
                        {
                            throw new Exception("Atenção, houve erro ao fazer o download do relatório, por favor tente novamente!");
                        }

                        //o rel já esta cadastrado diretamente
                        TRegistro_Cad_Report Cad_Report = FormRelPadrao.AtualizarRDC.ConvertRDCparaReport(lista);

                        //GRAVA O RELATORIO
                        string retorno = TCN_Cad_Report.GravarReportConsulta(Cad_Report, banco);
                        Cad_Report.ID_Report = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_ID_REPORT"));

                        //GRAVA O MENU
                        TFEscolha_Menu fMenu = new TFEscolha_Menu();
                        fMenu.Cad_Report = Cad_Report;
                        fMenu.banco      = banco;

                        if (fMenu.ShowDialog() == DialogResult.OK)
                        {
                            string retornomenu = TCN_Cad_Report.GravarReportXMenu(Cad_Report, fMenu.Reg_CadMenu, banco);

                            //GRAVA ACESSO PARA O USUARIO
                            TRegistro_CadAcesso regAcesso = new TRegistro_CadAcesso();
                            regAcesso.Id_menu = fMenu.Reg_CadMenu.id_menu;
                            regAcesso.Login   = Parametros.pubLogin;

                            TCN_CadAcesso.GravarAcesso(regAcesso, banco);
                        }
                        else
                        {
                            throw new Exception("Atenção, é necessário informar o menu!");
                        }

                        qtb_Report.Banco_Dados.Commit_Tran();

                        //CARREGA NOVAMENTE O MENU
                        Type t = Application.OpenForms["FMenuPrin"].GetType();
                        t.GetMethod("CarregaMenu").Invoke(Application.OpenForms["FMenuPrin"], new object[] { "MASTER", true });
                    }
                    catch (Exception ex)
                    {
                        qtb_Report.Banco_Dados.RollBack_Tran();
                        throw new Exception(ex.Message);
                    }
                    finally
                    {
                        qtb_Report.deletarBanco_Dados();
                    }
                }
                catch (Exception erro)
                {
                    MessageBox.Show(erro.Message, "Mensagem");
                }
            }
        }