Ejemplo n.º 1
0
        internal static int DeleteTabela(string nomeTabela)
        {
            int intRetCode = -1;

            SAPbobsCOM.UserTablesMD objUserTablesMD = null;

            try
            {
                //instancia objeto para deletar tabela
                objUserTablesMD = (UserTablesMD)B1AppDomain.Company.GetBusinessObject(BoObjectTypes.oUserTables);
                if (objUserTablesMD.GetByKey(nomeTabela))
                {
                    //deleta tabela
                    intRetCode = objUserTablesMD.Remove();
                    //verifica e retorna erro
                    if (intRetCode != 0 && intRetCode != -2035)
                    {
                        B1Exception.throwException("MetaData.CriaCampos: ", new Exception(B1AppDomain.Company.GetLastErrorDescription()));
                    }
                }
                else
                {
                    B1AppDomain.Application.SetStatusBarMessage("Tabela não localizada no sistema :: " + nomeTabela, BoMessageTime.bmt_Short, true);
                }
            }
            catch (Exception ex)
            {
                B1Exception.throwException("Erro ao Deletar Tabela :: " + nomeTabela + " - ", ex);
            }



            return(intRetCode);
        }
        //Excluir tabela de usuário
        public bool fExcluirTabela(string cTable)
        {
            GC.Collect();
            //SBO_Application.StatusBar.SetText("Removendo tabela [" + cTable + "]", SAPbouiCOM.BoMessageTime.bmt_Medium, SAPbouiCOM.BoStatusBarMessageType.smt_Warning);
            SAPbobsCOM.UserTablesMD objUserTablesMD;
            objUserTablesMD           = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserTables);
            objUserTablesMD.TableName = cTable;
            objUserTablesMD.GetByKey(cTable);

            CodErroDB = objUserTablesMD.Remove();
            if (CodErroDB != 0)
            {
                oCompany.GetLastError(out CodErroDB, out string MsgErroDB);
                //SBO_Application.MessageBox("Erro ao remover tabela [" + cTable + "]. Motivo: " + MsgErroDB + "....");
                System.Runtime.InteropServices.Marshal.ReleaseComObject(objUserTablesMD);
                objUserTablesMD = null;
                return(false);
            }
            else
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(objUserTablesMD);
                objUserTablesMD = null;
                return(true);
            }
        }
        public void RemoveUserTable(string UserTableName)
        {
            Log.AppendFormat("Remoção da tabela de usuário {0}: ", UserTableName);
            SAPbobsCOM.UserTablesMD oUserTableMD = (SAPbobsCOM.UserTablesMD)SBOApp.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserTables);

            // Remove a arroba do usertable Name
            UserTableName = UserTableName.Replace("@", "");

            if (oUserTableMD.GetByKey(UserTableName))
            {
                CodErro = oUserTableMD.Remove();
                this.ValidateAction();
            }
            else
            {
                CodErro = 0;
                MsgErro = "";
                Log.AppendLine("OK");
            }
            Marshal.ReleaseComObject(oUserTableMD);
            oUserTableMD = null;
        }