示例#1
0
        public void addUDO(Company oCompany, string sObjeto, string sCode, string sName, string sTableName, BoUDOObjType TipoObjeto,
                           BoYesNoEnum CanFind, BoYesNoEnum CanDelete, BoYesNoEnum CanCancel, BoYesNoEnum CanYearTransfer, BoYesNoEnum CanLog,
                           string sLogTableName)
        {
            UserObjectsMD oUserObjectMD = null;

            oUserObjectMD = (UserObjectsMD)oCompany.GetBusinessObject(BoObjectTypes.oUserObjectsMD);

            int    lRetVal;
            string lErrMsg = string.Empty;

            System.Runtime.InteropServices.Marshal.ReleaseComObject(oUserObjectMD);
            oUserObjectMD = null;
            GC.Collect();
            oUserObjectMD = (UserObjectsMD)oCompany.GetBusinessObject(BoObjectTypes.oUserObjectsMD);

            if (oUserObjectMD.GetByKey(sObjeto) == false)
            {
                oUserObjectMD.Code      = sCode;
                oUserObjectMD.Name      = sName;
                oUserObjectMD.TableName = sTableName;

                oUserObjectMD.ObjectType = TipoObjeto;

                oUserObjectMD.CanFind         = CanFind;
                oUserObjectMD.CanDelete       = CanDelete;
                oUserObjectMD.CanCancel       = CanCancel;
                oUserObjectMD.CanYearTransfer = CanYearTransfer;
                oUserObjectMD.CanLog          = CanLog;
                oUserObjectMD.LogTableName    = sLogTableName;

                lRetVal = oUserObjectMD.Add();

                if (lRetVal != 0)
                {
                    oCompany.GetLastError(out lRetVal, out lErrMsg);
                }
            }

            System.Runtime.InteropServices.Marshal.ReleaseComObject(oUserObjectMD);
            oUserObjectMD = null;
            GC.Collect();
        }
        public void MakeFieldsSearchable(string tableInitial)
        {
            Log.AppendFormat("Liberando campos para pesquisa");

            Recordset rs  = (Recordset)(SBOApp.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset));
            string    sql = "SELECT * FROM CUFD WHERE TableID LIKE '{0}%'";

            rs.DoQuery(String.Format(sql, tableInitial));
            string        tableName     = String.Empty;
            UserObjectsMD userObjectsMD = (UserObjectsMD)SBOApp.Company.GetBusinessObject(BoObjectTypes.oUserObjectsMD);

            while (!rs.EoF)
            {
                if (tableName != rs.Fields.Item("TableID").Value.ToString())
                {
                    tableName = rs.Fields.Item("TableID").Value.ToString();
                }

                // Remove a arroba do usertable Name
                tableName = tableName.Replace("@", "");

                bool bUpdate = userObjectsMD.GetByKey(tableName);

                userObjectsMD.FindColumns.ColumnAlias       = rs.Fields.Item("AliasID").Value.ToString();
                userObjectsMD.FindColumns.ColumnDescription = rs.Fields.Item("Descr").Value.ToString();
                userObjectsMD.FindColumns.Add();

                if (bUpdate)
                {
                    CodErro = userObjectsMD.Update();
                }
                else
                {
                    CodErro = userObjectsMD.Add();
                }

                this.ValidateAction();

                Marshal.ReleaseComObject(userObjectsMD);
                userObjectsMD = null;
            }
        }
示例#3
0
        internal static void removeUDO(UserObjectsMD uo, string name,
                                       SAPbouiCOM.Application app, SAPbobsCOM.Company company)
        {
            int    ret;
            string errMsg;

            if (uo.GetByKey(name))
            {
                ret = uo.Remove();
                if (ret != 0)
                {
                    company.GetLastError(out ret, out errMsg);
                    app.SetStatusBarMessage(string.Format("Error removing object {0}", name),
                                            SAPbouiCOM.BoMessageTime.bmt_Short, true);
                    throw new Exception(errMsg);
                }
                app.StatusBar.SetSystemMessage(string.Format("Removed field {0}", name),
                                               SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Success);
            }
        }
示例#4
0
        //static void SBO_Application_AppEvent(SAPbouiCOM.BoAppEventTypes EventType)
        //{
        //    switch (EventType)
        //    {
        //        case SAPbouiCOM.BoAppEventTypes.aet_ShutDown:
        //            //Exit Add-On
        //            System.Windows.Forms.Application.Exit();
        //            break;
        //        case SAPbouiCOM.BoAppEventTypes.aet_CompanyChanged:
        //            break;
        //        case SAPbouiCOM.BoAppEventTypes.aet_FontChanged:
        //            break;
        //        case SAPbouiCOM.BoAppEventTypes.aet_LanguageChanged:
        //            break;
        //        case SAPbouiCOM.BoAppEventTypes.aet_ServerTerminition:
        //            break;
        //        default:
        //            break;
        //    }
        //}

        internal static bool UDOExist(string udoName)
        {
            UserObjectsMD UDO = (UserObjectsMD)AddOnUtilities.oCompany.GetBusinessObject(BoObjectTypes.oUserObjectsMD);

            try
            {
                bool result = UDO.GetByKey(udoName);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(UDO);
                UDO = null;
                return(result);
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(UDO);
            }
        }
示例#5
0
文件: DoverSetup.cs 项目: THJLI/dover
 internal static void removeUDO(UserObjectsMD uo, string name,
                     SAPbouiCOM.Application app, SAPbobsCOM.Company company)
 {
     int ret;
     string errMsg;
     if (uo.GetByKey(name))
     {
         ret = uo.Remove();
         if (ret != 0)
         {
             company.GetLastError(out ret, out errMsg);
             app.SetStatusBarMessage(string.Format("Error removing object {0}", name),
                 SAPbouiCOM.BoMessageTime.bmt_Short, true);
             throw new Exception(errMsg);
         }
         app.StatusBar.SetSystemMessage(string.Format("Removed field {0}", name),
             SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Success);
     }
 }