コード例 #1
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)
            {
            }
        }
コード例 #2
0
        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;
        }
コード例 #3
0
ファイル: BD.cs プロジェクト: szarblewskiout/SapFramework
        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);
        }
コード例 #4
0
        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);
        }
        //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
            {
            }
        }