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); }
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); }