Beispiel #1
0
        internal static int DeleteCampo(string nomeTabela, string nomeCampo)
        {
            int intRetCode = -1;

            SAPbobsCOM.UserFieldsMD objUserFieldsMD = null;

            //instancia objeto para criar campo
            objUserFieldsMD = (UserFieldsMD)B1AppDomain.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields);

            if (objUserFieldsMD.GetByKey(nomeTabela, idCampo(nomeCampo, nomeTabela)))
            {
                intRetCode = objUserFieldsMD.Remove();
                //verifica e retorna erro
                if (intRetCode != 0 && intRetCode != -2035)
                {
                    B1Exception.throwException("MetaData.CriaCampos: ", new Exception(B1AppDomain.Company.GetLastErrorDescription()));
                }
            }

            //mata objeto para reutilizar senao trava
            Marshal.FinalReleaseComObject(objUserFieldsMD);
            objUserFieldsMD = null;
            GC.Collect();

            return(0);
        }
        public void RemoveUserField(string TableName, string FieldName)
        {
            Log.AppendFormat("Remoção do Campo {0}.{1}: ", TableName, FieldName);
            SAPbobsCOM.UserFieldsMD oUserFieldsMD = ((SAPbobsCOM.UserFieldsMD)(SBOApp.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields)));

            string Sql = " SELECT FieldId FROM CUFD WHERE TableID = '{0}' AND AliasID = '{1}' ";

            Sql = String.Format(Sql, TableName, FieldName);

            string FieldId = QueryForValue(Sql);

            if (FieldId != null)
            {
                if (oUserFieldsMD.GetByKey(TableName, Convert.ToInt32(FieldId)))
                {
                    CodErro = oUserFieldsMD.Remove();
                    this.ValidateAction();
                }
            }
            else
            {
                MsgErro = "";
                CodErro = 0;
                Log.AppendLine(" Tabela/Campo não encontrado ");
            }

            Marshal.ReleaseComObject(oUserFieldsMD);
            oUserFieldsMD = null;
        }