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 static void Agregar_UDF(string Name, string Description, SAPbobsCOM.BoFieldTypes Type, int Size, int FieldSize, string TableName) { try { SAPbobsCOM.UserFieldsMD oUserFieldsMD = (SAPbobsCOM.UserFieldsMD)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields); oUserFieldsMD.Name = Name; oUserFieldsMD.Description = Description; oUserFieldsMD.Type = Type; oUserFieldsMD.Size = Size; oUserFieldsMD.EditSize = FieldSize; oUserFieldsMD.TableName = TableName; // Adding the Field to the Table try { int lRetCode = oUserFieldsMD.Add(); } catch (Exception) { } finally { System.Runtime.InteropServices.Marshal.ReleaseComObject(oUserFieldsMD); oUserFieldsMD = null; GC.Collect(); } } catch (Exception) { } }
/// <summary> Gets user field. </summary> /// <remarks> Ranaya, 05/05/2017. </remarks> /// <returns> The user field. </returns> public UserFieldsMD GetUserField() { SAPbobsCOM.UserFieldsMD lObjUserField = null; lObjUserField = (SAPbobsCOM.UserFieldsMD)DIApplication.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields); lObjUserField.TableName = TableName; lObjUserField.Name = GetAttributes().Name; lObjUserField.Description = GetAttributes().Description; lObjUserField.Type = GetAttributes().Type; lObjUserField.SubType = GetAttributes().SubType; lObjUserField.Size = GetAttributes().Size; lObjUserField.EditSize = GetAttributes().Type == BoFieldTypes.db_Alpha? GetAttributes().Size : GetAttributes().SubSize; if (!string.IsNullOrEmpty(GetAttributes().LinkedTable)) { lObjUserField.LinkedTable = GetAttributes().LinkedTable; } if (!string.IsNullOrEmpty(GetAttributes().LinkedUDO)) { lObjUserField.LinkedUDO = GetAttributes().LinkedUDO; } return(lObjUserField); }
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; }
public void CreateUserField(string TableName, string FieldName, string FieldDescription, SAPbobsCOM.BoFieldTypes oType, SAPbobsCOM.BoFldSubTypes oSubType, int FieldSize, bool MandatoryYN = false, string DefaultValue = "") { if (FieldDescription.Length > 30) { FieldDescription = FieldDescription.Substring(0, 30); } if (FindColumns != null) { FindColumns.Fields.Add(FieldName, FieldDescription); } Log.AppendFormat(Environment.NewLine + "Criação/Atualização do Campo {0}.{1}: ", TableName, FieldName); SAPbobsCOM.UserFieldsMD oUserFieldsMD = ((SAPbobsCOM.UserFieldsMD)(SBOApp.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields))); bool bUpdate; 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) { bUpdate = oUserFieldsMD.GetByKey(TableName, Convert.ToInt32(FieldId)); } else { bUpdate = false; } oUserFieldsMD.TableName = TableName; oUserFieldsMD.Name = FieldName; oUserFieldsMD.Description = FieldDescription; oUserFieldsMD.Type = oType; oUserFieldsMD.SubType = oSubType; oUserFieldsMD.Mandatory = GetSapBoolean(MandatoryYN); if (!String.IsNullOrEmpty(DefaultValue)) { oUserFieldsMD.DefaultValue = DefaultValue; } if (FieldSize > 0) { oUserFieldsMD.EditSize = FieldSize; } if (bUpdate) { //CodErro = oUserFieldsMD.Update(); CodErro = 0; } else { CodErro = oUserFieldsMD.Add(); } this.ValidateAction(); Marshal.ReleaseComObject(oUserFieldsMD); oUserFieldsMD = null; }
//Aplica valor padrão a campo de usuário public bool fSetaValorPadrao(string cTabela, string cCampo, string Valor, TipoTabela cTipoTabela) { string cTabelaAux = null; //TipoTabela: 0=user, 1=SAPB1 if (cTipoTabela == TipoTabela.tUSER) { cTabelaAux = "@" + cTabela; } else { cTabelaAux = cTabela; } bool valorExiste = false; int campoID = fFieldId(cTabelaAux, cCampo); if (fExisteValorValido(cTabelaAux, campoID, Valor)) { valorExiste = true; } //se existe esse valor válido if (valorExiste && (fExisteValorDefaultSet(cTabelaAux, campoID.ToString(), Valor)) == false) { GC.Collect(); SAPbobsCOM.UserFieldsMD objUserFieldsMD; objUserFieldsMD = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields); if (objUserFieldsMD.GetByKey(cTabelaAux, campoID)) { objUserFieldsMD.DefaultValue = Valor; } CodErroDB = objUserFieldsMD.Update(); if (CodErroDB != 0) { objUserFieldsMD = null; oCompany.GetLastError(out int CodErroDB, out string MsgErroDB); // SBO_Application.StatusBar.SetText("Valor padrão para o campo: [" + cCampo + "] da tabela [" + cTabela + "] reportado com erro! " + CodErroDB.ToString() + " - " + MsgErroDB, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error); return(false); } else { objUserFieldsMD = null; // SBO_Application.StatusBar.SetText("Valor padrão para o campo: [" + cCampo + "] da tabela [" + cTabela + "] setado com sucesso!", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Success); return(true); } } else { return(false); } }
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); }
//Aplica campo como obrigatorio public bool fSetaCampoObrigatorio(string cTabela, string cCampo, TipoTabela cTipoTabela) { string cTabelaAux = null; //'TipoTabela: 0=user, 1=SAPB1 if (cTipoTabela == TipoTabela.tUSER) { cTabelaAux = "@" + cTabela; } else { cTabelaAux = cTabela; } int campoID = fFieldId(cTabelaAux, cCampo); SAPbobsCOM.UserFieldsMD objUserFieldsMD; GC.Collect(); objUserFieldsMD = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields); if (objUserFieldsMD.GetByKey(cTabelaAux, campoID)) { objUserFieldsMD.Mandatory = SAPbobsCOM.BoYesNoEnum.tYES; CodErroDB = objUserFieldsMD.Update(); } if (CodErroDB != 0) { oCompany.GetLastError(out int CodErroDB, out string MsgErroDB); // SBO_Application.StatusBar.SetText("Obrigatoriedade para o campo: [" + cCampo + "] da tabela [" + cTabela + "] reportado com sucesso! " + CodErroDB.ToString() + " - " + MsgErroDB, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error); return(false); } else { // SBO_Application.StatusBar.SetText("Obrigatoriedade para o campo: [" + cCampo + "] da tabela [" + cTabela + "] setada com sucesso!", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Success); return(true); } }
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); }
public bool AddColumns(string TableName, string Name, string Description, SAPbobsCOM.BoFieldTypes Type, int Size = 0, SAPbobsCOM.BoFldSubTypes SubType = SAPbobsCOM.BoFldSubTypes.st_None, string LinkedTable = "", string[,] LOV = null, string DefV = "") { bool outResult = false; try { SAPbobsCOM.UserFieldsMD v_UserField = default(SAPbobsCOM.UserFieldsMD); if (TableName.StartsWith("@") == true) { if (!ColumnExists(TableName, Name)) { v_UserField = (SAPbobsCOM.UserFieldsMD)oDiCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields); v_UserField.TableName = TableName; v_UserField.Name = Name; if (!string.IsNullOrEmpty(DefV)) { v_UserField.DefaultValue = DefV; } if (LOV == null) { } else { for (int k = 0; k <= LOV.Length - 1; k++) { v_UserField.ValidValues.Value = LOV[k, 0]; v_UserField.ValidValues.Value = LOV[k, 1]; v_UserField.ValidValues.Add(); } } v_UserField.Description = Description; v_UserField.Type = Type; if (Type != SAPbobsCOM.BoFieldTypes.db_Date) { if (Size != 0) { v_UserField.Size = Convert.ToInt16(Size); v_UserField.EditSize = Convert.ToInt16(Size); } } if (SubType != SAPbobsCOM.BoFldSubTypes.st_None) { v_UserField.SubType = SubType; } if (!string.IsNullOrEmpty(LinkedTable)) { v_UserField.LinkedTable = LinkedTable; } v_RetVal = v_UserField.Add(); if (v_RetVal != 0) { oDiCompany.GetLastError(out v_ErrCode, out v_ErrMsg); Program.objHrmsUI.oApplication.SetStatusBarMessage("Failed to add UserField " + Description + " - " + v_ErrCode + " " + v_ErrMsg); return(false); } else { Program.objHrmsUI.oApplication.SetStatusBarMessage("[@" + TableName + "] - " + Description + " added successfully!!!"); outResult = true; return(true); } System.Runtime.InteropServices.Marshal.ReleaseComObject(v_UserField); v_UserField = null; } else { return(false); } } if (TableName.StartsWith("@") == false) { if (!UDFExists(TableName, Name)) { v_UserField = (SAPbobsCOM.UserFieldsMD)oDiCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields); v_UserField.TableName = TableName; v_UserField.Name = Name; if (!string.IsNullOrEmpty(DefV)) { v_UserField.DefaultValue = DefV; } if (LOV == null) { } else { for (int k = 0; k <= LOV.Length / 2 - 1; k++) { v_UserField.ValidValues.Value = LOV[k, 0]; v_UserField.ValidValues.Description = LOV[k, 1]; v_UserField.ValidValues.Add(); } } v_UserField.Description = Description; v_UserField.Type = Type; if (Type != SAPbobsCOM.BoFieldTypes.db_Date) { if (Size != 0) { v_UserField.Size = Size; v_UserField.EditSize = Size; } } if (SubType != SAPbobsCOM.BoFldSubTypes.st_None) { v_UserField.SubType = SubType; } if (!string.IsNullOrEmpty(LinkedTable)) { v_UserField.LinkedTable = LinkedTable; } v_RetVal = v_UserField.Add(); if (v_RetVal != 0) { oDiCompany.GetLastError(out v_ErrCode, out v_ErrMsg); Program.objHrmsUI.oApplication.SetStatusBarMessage("Failed to add UserField " + Description + " - " + v_ErrCode + " " + v_ErrMsg); return(false); } else { Program.objHrmsUI.oApplication.SetStatusBarMessage("Udf Created " + Description, SAPbouiCOM.BoMessageTime.bmt_Short, false); outResult = true; return(true); } System.Runtime.InteropServices.Marshal.ReleaseComObject(v_UserField); v_UserField = null; } else { return(false); } } } catch (Exception ex) { throw new Exception("Failed to Add Columns : " + ex.Message); } finally { } return(outResult); }
//Adiciona valor valido a campo de usuário public void fAdicionaValorValido(string cTabela, string cCampo, string Valor, string Descricao, TipoTabela cTipoTabela) { //TipoTabela: 0=user, 1=SAPB1 string cTabelaAux = null; if (cTipoTabela == TipoTabela.tUSER) { cTabelaAux = "@" + cTabela; } else { cTabelaAux = cTabela; } bool valorExiste = false; int campoID = fFieldId(cTabelaAux, cCampo); if (fExisteValorValido(cTabelaAux, campoID, Valor)) { valorExiste = true; } else { GC.Collect(); SAPbobsCOM.UserFieldsMD objUserFieldsMD; objUserFieldsMD = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields); objUserFieldsMD.GetByKey(cTabelaAux, campoID); SAPbobsCOM.ValidValuesMD oValidValues; oValidValues = objUserFieldsMD.ValidValues; if (!valorExiste) { if (oValidValues.Value != "") { oValidValues.Add(); oValidValues.SetCurrentLine(oValidValues.Count - 1); oValidValues.Value = Valor; oValidValues.Description = Descricao; CodErroDB = objUserFieldsMD.Update(); } else { oValidValues.SetCurrentLine(oValidValues.Count - 1); oValidValues.Value = Valor; oValidValues.Description = Descricao; CodErroDB = objUserFieldsMD.Update(); } if (CodErroDB != 0) { oCompany.GetLastError(out int CodErroDB, out string MsgErroDB); // SBO_Application.StatusBar.SetText("Valor válido para o campo: [" + cCampo + "] da tabela [" + cTabela + "] reportado com erro! " + CodErroDB + " - " + MsgErroDB, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error); } else { // SBO_Application.StatusBar.SetText("Valor válido para o campo: [" + cCampo + "] da tabela [" + cTabela + "] criado com sucesso!", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Success); } } else { CodErroDB = objUserFieldsMD.Update(); if (CodErroDB != 0) { oCompany.GetLastError(out int CodErroDB, out string MsgErroDB); // SBO_Application.StatusBar.SetText("Valor válido para o campo: [" + cCampo + "] da tabela [" + cTabela + "] reportado com erro! " + CodErroDB.ToString() + " - " + MsgErroDB, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error); } else { // SBO_Application.StatusBar.SetText("Valor válido para o campo: [" + cCampo + "] da tabela [" + cTabela + "] atualziado com sucesso!", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Success); } } } }
//Criação de campos de usuários em tabela de usuário ou em tabela do Sistema SAP public void fCriaCampo(string cTabela, string cCampo, string cDescricao, TipoCampo cTipo, short nsize, TipoTabela cTipoTabela) { string cTabelaAux; cTabelaAux = ""; //TipoTabela: 0=user, 1=SAPB1 if (cTipoTabela == 0) { cTabelaAux = "@" + cTabela; } else if (cTipoTabela == TipoTabela.tSBO) { cTabelaAux = cTabela; } if (!fExiteCampo(cTabelaAux, cCampo)) { GC.Collect(); objUserFieldsMD = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields); objUserFieldsMD.TableName = cTabela; objUserFieldsMD.Name = cCampo; objUserFieldsMD.Description = cDescricao; if (cTipo == TipoCampo.tPrice) { objUserFieldsMD.Type = SAPbobsCOM.BoFieldTypes.db_Float; objUserFieldsMD.SubType = SAPbobsCOM.BoFldSubTypes.st_Price; } else if (cTipo == TipoCampo.tPercent) { objUserFieldsMD.Type = SAPbobsCOM.BoFieldTypes.db_Float; objUserFieldsMD.SubType = SAPbobsCOM.BoFldSubTypes.st_Percentage; } else if (cTipo == TipoCampo.tSum) { objUserFieldsMD.Type = SAPbobsCOM.BoFieldTypes.db_Float; objUserFieldsMD.SubType = SAPbobsCOM.BoFldSubTypes.st_Sum; } else if (cTipo == TipoCampo.tALPHA) { objUserFieldsMD.Type = SAPbobsCOM.BoFieldTypes.db_Alpha; } else if (cTipo == TipoCampo.tDATE) { objUserFieldsMD.Type = SAPbobsCOM.BoFieldTypes.db_Date; } else if (cTipo == TipoCampo.tTime) { objUserFieldsMD.Type = SAPbobsCOM.BoFieldTypes.db_Date; objUserFieldsMD.SubType = SAPbobsCOM.BoFldSubTypes.st_Time; } else if (cTipo == TipoCampo.tNUMBER) { objUserFieldsMD.Type = SAPbobsCOM.BoFieldTypes.db_Numeric; } else if (cTipo == TipoCampo.tMEMO) { objUserFieldsMD.Type = SAPbobsCOM.BoFieldTypes.db_Memo; } objUserFieldsMD.EditSize = nsize; // Adding the Field to the Table CodErroDB = objUserFieldsMD.Add(); // Check for errors if (CodErroDB != 0) { oCompany.GetLastError(out int CodErroDB, out string MsgErroDB); // SBO_Application.MessageBox("Erro na Criação do Campo: " + cCampo + " " + CodErroDB.ToString() + " - " + MsgErroDB); System.Runtime.InteropServices.Marshal.ReleaseComObject(objUserFieldsMD); objUserFieldsMD = null; } else { // SBO_Application.StatusBar.SetText("Campo: [" + cCampo + "] da tabela [" + cTabela + "] criado com sucesso!", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Success); System.Runtime.InteropServices.Marshal.ReleaseComObject(objUserFieldsMD); objUserFieldsMD = null; } } else { } }
public void AddValidValueToUserField(string TableName, string FieldName, string Value, string Description, bool IsDefault) { SAPbobsCOM.UserFieldsMD oUserFieldsMD = ((SAPbobsCOM.UserFieldsMD)(SBOApp.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields))); bool bUpdate; Log.AppendFormat("Criação de Valor válido {0}.{1}: ", TableName, FieldName); string Sql = @" SELECT FieldId FROM CUFD WHERE TableID = '{0}' AND AliasID = '{1}' "; Sql = String.Format(Sql, TableName, FieldName.Replace("U_", "")); string FieldId = QueryForValue(Sql); bUpdate = oUserFieldsMD.GetByKey(TableName, Convert.ToInt32(FieldId)); Sql = @" SELECT COUNT(1) FROM CUFD INNER JOIN UFD1 ON CUFD.TableID = UFD1.TableID AND CUFD.FieldID = UFD1.FieldID WHERE CUFD.TableID = '{0}' AND CUFD.AliasID = '{1}' AND LEN(UFD1.FldValue) > 0 "; //AND UFD1.FldValue = '" + Value + "'"; Sql = String.Format(Sql, TableName, FieldName.Replace("U_", "")); string ContaValoresValidos = QueryForValue(Sql); if (Convert.ToInt32(ContaValoresValidos) > 0) { Sql = @" SELECT UFD1.IndexID FROM CUFD INNER JOIN UFD1 ON CUFD.TableID = UFD1.TableID AND CUFD.FieldID = UFD1.FieldID WHERE CUFD.TableID = '{0}' AND CUFD.AliasID = '{1}' AND UFD1.FldValue = '{2}'"; Sql = String.Format(Sql, TableName, FieldName.Replace("U_", ""), Value); string IndexId = QueryForValue(Sql); if (IndexId == null) { oUserFieldsMD.ValidValues.Add(); } if (IndexId != null) { oUserFieldsMD.ValidValues.SetCurrentLine(Convert.ToInt32(IndexId)); } } oUserFieldsMD.ValidValues.Value = Value; oUserFieldsMD.ValidValues.Description = Description; if (IsDefault) { oUserFieldsMD.DefaultValue = Value; } CodErro = oUserFieldsMD.Update(); this.ValidateAction(); Marshal.ReleaseComObject(oUserFieldsMD); oUserFieldsMD = null; }