Пример #1
0
        internal static int AddCampo(string nomeCampo, string nomeTabela, BoFieldTypes tipoCampo, BoFldSubTypes subTipo, int tamanho, BoYesNoEnum mandatory, string descricao, string valorPadrao, List <ValoresValidos> valoresValidos, Tipos.TipoTabela tipoTabela, string nomeUdoReferencia = "", string nomeTabelaReferencia = "")
        {
            int intRetCode = -1;

            SAPbobsCOM.UserFieldsMD objUserFieldsMD = null;

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

            //seta propriedades
            objUserFieldsMD.Name        = nomeCampo;
            objUserFieldsMD.TableName   = tipoTabela == Tipos.TipoTabela.Usuario ? "@" + nomeTabela : nomeTabela;
            objUserFieldsMD.Type        = tipoCampo;
            objUserFieldsMD.SubType     = subTipo;
            objUserFieldsMD.EditSize    = tamanho;
            objUserFieldsMD.Mandatory   = (BoYesNoEnum)mandatory;
            objUserFieldsMD.Description = descricao;
            objUserFieldsMD.AddValidValues(valoresValidos);
            if (!string.IsNullOrEmpty(nomeUdoReferencia))
            {
                objUserFieldsMD.LinkedUDO = nomeUdoReferencia;
            }

            if (!string.IsNullOrEmpty(nomeTabelaReferencia))
            {
                objUserFieldsMD.LinkedTable = nomeTabelaReferencia;
            }


            objUserFieldsMD.DefaultValue = valorPadrao;
            //adiciona campo
            intRetCode = objUserFieldsMD.Add();
            //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(intRetCode);
        }
Пример #2
0
        internal static int UpdateCampo(string nomeTabela, string nomeCampo, int tamanho, BoYesNoEnum mandatory, string descricaoCampo, string valorPadrao, List <ValoresValidos> valoresValidos)
        {
            int intRetCode = -1;

            SAPbobsCOM.UserFieldsMD objUserFieldsMD = null;

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


            if (objUserFieldsMD.GetByKey(nomeTabela, idCampo(nomeCampo, nomeTabela)))
            {
                //seta propriedades
                objUserFieldsMD.EditSize     = tamanho;
                objUserFieldsMD.Mandatory    = mandatory;
                objUserFieldsMD.Description  = descricaoCampo;
                objUserFieldsMD.DefaultValue = valorPadrao;
                objUserFieldsMD.AddValidValues(valoresValidos);


                //Atualiza Campos campo
                intRetCode = objUserFieldsMD.Update();
                //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(intRetCode);
        }