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