示例#1
0
        public bool registerUDO(string UDOCode, string UDOName, SAPbobsCOM.BoUDOObjType UDOType, string[,] findAliasNDescription, string parentTableName, string childTable1 = "", string childTable2 = "", string childTable3 = "", string childTable4 = "", SAPbobsCOM.BoYesNoEnum LogOption = SAPbobsCOM.BoYesNoEnum.tNO, string MenuId = "", int parrentId = 0)
        {
            bool functionReturnValue = false;

            try
            {
                bool actionSuccess = false;
                SAPbobsCOM.UserObjectsMD v_udoMD = default(SAPbobsCOM.UserObjectsMD);

                functionReturnValue          = false;
                v_udoMD                      = (SAPbobsCOM.UserObjectsMD)oDiCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserObjectsMD);
                v_udoMD.CanCancel            = SAPbobsCOM.BoYesNoEnum.tYES;
                v_udoMD.CanClose             = SAPbobsCOM.BoYesNoEnum.tYES;
                v_udoMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tNO;
                v_udoMD.CanDelete            = SAPbobsCOM.BoYesNoEnum.tYES;
                v_udoMD.CanFind              = SAPbobsCOM.BoYesNoEnum.tYES;
                v_udoMD.CanLog               = SAPbobsCOM.BoYesNoEnum.tNO;
                v_udoMD.CanYearTransfer      = SAPbobsCOM.BoYesNoEnum.tYES;
                v_udoMD.ManageSeries         = SAPbobsCOM.BoYesNoEnum.tYES;
                if (!string.IsNullOrEmpty(MenuId))
                {
                    v_udoMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tYES;
                    //v_udoMD.RebuildEnhancedForm = SAPbobsCOM.BoYesNoEnum.tYES
                    v_udoMD.MenuItem = SAPbobsCOM.BoYesNoEnum.tYES;

                    v_udoMD.MenuUID     = MenuId;
                    v_udoMD.MenuCaption = UDOName;
                    // v_udoMD.EnableEnhancedForm = SAPbobsCOM.BoYesNoEnum.tYES
                    v_udoMD.FatherMenuID = parrentId;
                    v_udoMD.Position     = 2;
                }

                v_udoMD.Code      = UDOCode;
                v_udoMD.Name      = UDOName;
                v_udoMD.TableName = parentTableName;
                if (LogOption == SAPbobsCOM.BoYesNoEnum.tYES)
                {
                    v_udoMD.CanLog       = SAPbobsCOM.BoYesNoEnum.tYES;
                    v_udoMD.LogTableName = "A" + parentTableName;
                }
                v_udoMD.ObjectType = UDOType;
                for (Int16 i = 0; i <= findAliasNDescription.GetLength(0) - 1; i++)
                {
                    if (i > 0)
                    {
                        v_udoMD.FindColumns.Add();
                    }
                    v_udoMD.FindColumns.ColumnAlias       = findAliasNDescription[i, 0];
                    v_udoMD.FindColumns.ColumnDescription = findAliasNDescription[i, 1];
                }
                if (!string.IsNullOrEmpty(childTable1))
                {
                    v_udoMD.ChildTables.TableName = childTable1;
                    v_udoMD.ChildTables.Add();
                }
                if (!string.IsNullOrEmpty(childTable2))
                {
                    v_udoMD.ChildTables.TableName = childTable2;
                    v_udoMD.ChildTables.Add();
                }
                if (!string.IsNullOrEmpty(childTable3))
                {
                    v_udoMD.ChildTables.TableName = childTable3;
                    v_udoMD.ChildTables.Add();
                }
                if (!string.IsNullOrEmpty(childTable4))
                {
                    v_udoMD.ChildTables.TableName = childTable4;
                    v_udoMD.ChildTables.Add();
                }
                if (v_udoMD.Add() == 0)
                {
                    functionReturnValue = true;
                }
                else
                {
                    throw new Exception("Failed to Register UDO >" + UDOCode + ">" + UDOName + " >" + oDiCompany.GetLastErrorDescription());
                    functionReturnValue = false;
                }
                System.Runtime.InteropServices.Marshal.ReleaseComObject(v_udoMD);
                v_udoMD = null;
                GC.Collect();
            }
            catch (Exception ex)
            {
                throw new Exception("Failed to UDO Register : " + ex.Message);
            }
            finally
            {
            }
            return(functionReturnValue);
        }
示例#2
0
        /// <summary>
        /// Funcion que permite crear los campos sus respectivas tablas
        /// </summary>
        /// <param name="nombretabla">Se especifica la tabla del campo a crear</param>
        /// <param name="nombrecampo">Se especifica el campo a crear</param>
        /// <param name="descripcion">Se especifica la descripción del campo a crear</param>
        /// <param name="longitud">Se especifica la longitud del campo a crear</param>
        /// <param name="tipo">Se especifica el tipo de dato del campo </param>
        /// <param name="subtipo">Se especifica el subtipo de dato del campo. Solo apliaca para tipo de datos Float</param>
        public static void CreaCampoMD(String nombretabla, String nombrecampo, String descripcion, int longitud, SAPbobsCOM.BoFieldTypes tipo, SAPbobsCOM.BoFldSubTypes subtipo, SAPbobsCOM.BoYesNoEnum mandatory, String defaultValue, ValorValido[] valores, String linkTable)
        {
            SAPbobsCOM.UserFieldsMD oUserFieldsMD;
            try
            {
                oUserFieldsMD             = (SAPbobsCOM.UserFieldsMD)Conexion_SBO.m_oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields);
                oUserFieldsMD.TableName   = nombretabla; //Se obtiene el nombre de la tabla de usario
                oUserFieldsMD.Name        = nombrecampo; //Se asigna el nombre del campo de usuario
                oUserFieldsMD.Description = descripcion; //Se asigna una descripcion al campo de usuario
                oUserFieldsMD.Mandatory   = mandatory;
                if (longitud > 0)
                {
                    oUserFieldsMD.EditSize = longitud; //Se define una longitud al campo de usuario
                }
                oUserFieldsMD.Type    = tipo;          //Se asigna el tipo de dato al campo de usuario
                oUserFieldsMD.SubType = subtipo;

                if (defaultValue != null)
                {
                    oUserFieldsMD.DefaultValue = defaultValue;
                }

                if (valores != null && valores.Length > 0)
                {
                    foreach (ValorValido vv in valores)
                    {
                        oUserFieldsMD.ValidValues.Value       = vv.valor;
                        oUserFieldsMD.ValidValues.Description = vv.descripcion;
                        oUserFieldsMD.ValidValues.Add();
                    }
                }

                oUserFieldsMD.LinkedTable = linkTable;

                ret = oUserFieldsMD.Add();    //Se agrega el campo de usuario

                if (ret != 0 && ret != -2035) //&& ret != -5002)
                {
                    Conexion_SBO.m_oCompany.GetLastError(out ret, out errMsg);
                    Msj_Appl.Errores(8, "CargarTabla -> " + errMsg);
                }

                Comunes.FuncionesComunes.LiberarObjetoGenerico(oUserFieldsMD);
            }
            catch
            {
            }
        }