コード例 #1
0
        public void QueryTop3CustomersSample()
        {
            String query = @"Select Top 3 CardCode as 'Code', CardName as 'Name', Balance as 'Balance' From OCRD Where CardType = 'C' Order by Balance DESC";

            try
            {
                Recordset oRS = ExecuteQuery(query);

                // loop recordset
                if (oRS != null)
                {
                    String bpCode  = String.Empty;
                    String bpName  = String.Empty;
                    Double balance = Double.MinValue;
                    String msg     = "Customer Code : {0}. BP Name: {1}. Balance: {2}";

                    while (!oRS.EoF)
                    {
                        bpCode  = oRS.Fields.Item("Code").Value;
                        bpName  = oRS.Fields.Item("Name").Value;
                        balance = oRS.Fields.Item("Balance").Value;
                        AddOnUtilities.MsgBoxWrapper(String.Format(msg, bpCode, bpName, balance));
                        oRS.MoveNext();
                    }
                }
            }
            catch (Exception ex)
            {
                AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
            }
        }
コード例 #2
0
        public void BrowserTop3CustomerSample()
        {
            String query = @"Select Top 3 CardCode as 'Code', CardName as 'Name', Balance as 'Balance' From OCRD Where CardType = 'C' Order by Balance DESC";

            try
            {
                Recordset oRS = ExecuteQuery(query);
                SAPbobsCOM.BusinessPartners oBP = AddOnUtilities.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oBusinessPartners);

                // set the RecordSet to Browser of BO
                oBP.Browser.Recordset = oRS;

                String bpCode  = String.Empty;
                String bpName  = String.Empty;
                Double balance = Double.MinValue;
                String msg     = "Customer Code : {0}. BP Name: {1}. Balance: {2}";

                oBP.Browser.MoveFirst();
                while (!oBP.Browser.EoF)
                {
                    bpCode  = oBP.CardCode;
                    bpName  = oBP.CardName;
                    balance = oBP.CurrentAccountBalance; // read from DI API properties
                    AddOnUtilities.MsgBoxWrapper(String.Format(msg, bpCode, bpName, balance));
                    oBP.SaveXML(oBP.CardCode + ".xml");
                    oBP.Browser.MoveNext();
                }
            }
            catch (Exception ex)
            {
                AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
            }
        }
コード例 #3
0
        /// <summary>
        /// Get Data Source From Configration Table [TableName = @OCFL]
        /// If eventType is not provided, this function will assume as "Tab" event.
        /// </summary>
        /// <param name="formId"></param>
        /// <param name="itemId"></param>
        /// <param name="colId"></param>
        /// <param name="eventType"></param>
        /// <returns></returns>
        public static Recordset GetConfiguration(string formId, string itemId, string colId, int eventType)
        {
            SAPbobsCOM.Recordset oRecordSet = null;
            string documentType             = String.Empty;

            try
            {
                colId = (colId == "" ? "0" : colId); //If colUID is "0", the event return as "".
                if (itemId == "38")                  // Item
                {
                    documentType = "1";
                }
                else if (itemId == "39") // Service
                {
                    documentType = "2";
                }
                else
                {
                    documentType = "3";
                }
                if (formId.Contains("UDO"))
                {
                    formId = System.Text.RegularExpressions.Regex.Replace(formId.Substring(formId.LastIndexOf('_') + 1), @"[\d-]", string.Empty);
                }
                oRecordSet = ((SAPbobsCOM.Recordset)(AddOnUtilities.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)));
                string strQuery = "SELECT * FROM \"@OCFL\" WHERE \"U_FormId\" = '" + formId + "' AND \"U_ItemId\" = '" + itemId + "' AND \"U_ColumnId\" = '" + colId + "' AND \"U_EventType\" = " + eventType + " AND \"U_DocType\" = " + documentType;
                oRecordSet.DoQuery(strQuery);
            }
            catch (Exception ex)
            {
                AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
            }

            return(oRecordSet);
        }
コード例 #4
0
        public DIServerResult AddObject(String sessionID, String commandID, string sBOM)
        {
            DIServerResult result = new DIServerResult();

            try
            {
                String soapResponse = Interact(String.Format(Resources.AddObjectSoapRequest, sessionID, commandID, sBOM));

                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(soapResponse);
                XmlNode node = xmlDoc.SelectSingleNode("//*[local-name()='RetKey']");

                if (node == null)
                {
                    //error
                    AddOnUtilities.MsgBoxWrapper("DI Server - Add Obj Failed.");
                    result.Success = false;
                }
                else
                {
                    AddOnUtilities.MsgBoxWrapper(String.Format("DI Server - Add Obj Success. Return Key: {0}.", node.InnerText));
                    result.Success = true;
                }
            }
            catch (Exception ex)
            {
                AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
            }

            return(result);
        }
コード例 #5
0
 public static void SetValue(ref SAPbouiCOM.Form oForm, String tableName, String newValue, String fieldIndex, int rowIndex = 0)
 {
     try
     {
         SAPbouiCOM.DBDataSource dbDataSource = oForm.DataSources.DBDataSources.Item(tableName);
         dbDataSource.SetValue(fieldIndex, rowIndex, newValue);
     }
     catch (Exception ex)
     {
         AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
     }
 }
コード例 #6
0
 public static String GetValue(ref SAPbouiCOM.Form oForm, String tableName, String fieldIndex, int rowIndex = 0)
 {
     try
     {
         SAPbouiCOM.DBDataSource dbDataSource = oForm.DataSources.DBDataSources.Item(tableName);
         return(dbDataSource.GetValue(fieldIndex, rowIndex));
     }
     catch (Exception ex)
     {
         AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
     }
     return(String.Empty);
 }
コード例 #7
0
        public String Interact(String soapRequest)
        {
            String soapResponse = String.Empty;

            try
            {
                soapResponse = GetDIServerNode().Interact(soapRequest);
            }
            catch (Exception ex)
            {
                AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
            }
            return(soapResponse);
        }
コード例 #8
0
        public static string GetMatrixData(SAPbouiCOM.Matrix oMatrix, string itemId, string colId, int rowIndex)
        {
            string input = String.Empty;

            try
            {
                input = ((SAPbouiCOM.EditText)oMatrix.Columns.Item(colId).Cells.Item(rowIndex).Specific).Value;
            }
            catch (Exception ex)
            {
                AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
            }

            return(input);
        }
コード例 #9
0
        public SAPbobsCOM.Recordset ExecuteQuery(String query)
        {
            SAPbobsCOM.Recordset oRS = null;

            try
            {
                oRS = AddOnUtilities.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset);
                oRS.DoQuery(query);
            }
            catch (Exception ex)
            {
                AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
            }
            return(oRS);
        }
コード例 #10
0
 /// <summary>
 /// Get All Data From Configuration Table [TableName = @OCFL]
 /// </summary>
 /// <returns></returns>
 public static Recordset GetAllConfiguration()
 {
     SAPbobsCOM.Recordset oRecordSet = null;
     try
     {
         oRecordSet = ((SAPbobsCOM.Recordset)(AddOnUtilities.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)));
         string strQuery = "SELECT * FROM \"@OCFL\" ORDER BY \"U_AccessMatrixKey\"";
         oRecordSet.DoQuery(strQuery);
     }
     catch (Exception ex)
     {
         AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
     }
     return(oRecordSet);
 }
コード例 #11
0
        /// <summary>
        /// Retrieve all dimension 5 from SAP.
        /// </summary>
        /// <returns>RecordSet filled with Dimension 5.</returns>
        public static Recordset GetDimension5()
        {
            SAPbobsCOM.Recordset oRecordSet = null;
            try
            {
                oRecordSet = ((SAPbobsCOM.Recordset)(AddOnUtilities.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)));
                string strQuery = "SELECT T0.\"OcrCode\", T0.\"OcrName\" FROM OOCR T0 WHERE T0.\"DimCode\" = 5";
                oRecordSet.DoQuery(strQuery);
            }
            catch (Exception ex)
            {
                AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
            }

            return(oRecordSet);
        }
コード例 #12
0
        public static Recordset GetAccountsByUser()
        {
            SAPbobsCOM.Recordset oRecordSet = null;
            try
            {
                oRecordSet = ((SAPbobsCOM.Recordset)(AddOnUtilities.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)));
                string strQuery = "SELECT T1.\"U_AccountCode\" FROM \"@OUAC\" T0 JOIN \"@UAC1\" T1 ON T0.\"Code\" = T1.\"Code\" JOIN \"OACT\" T2 ON T1.\"U_AccountCode\" = T2.\"AcctCode\" WHERE T0.\"U_User\" = (SELECT \"USER_CODE\" FROM OUSR WHERE \"INTERNAL_K\" = " + AddOnUtilities.oCompany.UserSignature + ")";
                oRecordSet.DoQuery(strQuery);
            }
            catch (Exception ex)
            {
                AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
            }

            return(oRecordSet);
        }
コード例 #13
0
        /// <summary>
        /// Retrieve dimension 5 Name by dimension 5 Code.
        /// </summary>
        /// <returns>Dimension 5 Name.</returns>
        public static string GetDimension5NameByCode(string strDimension5Code)
        {
            SAPbobsCOM.Recordset oRecordSet = null;
            try
            {
                oRecordSet = ((SAPbobsCOM.Recordset)(AddOnUtilities.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)));
                string strQuery = "SELECT T0.\"OcrName\" FROM OOCR T0 WHERE T0.\"DimCode\" = 5 AND T0.\"OcrCode\" = '" + strDimension5Code + "'";
                oRecordSet.DoQuery(strQuery);
            }
            catch (Exception ex)
            {
                AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
            }

            return(oRecordSet.Fields.Item(0).Value.ToString());
        }
コード例 #14
0
 public static Recordset GetConfigurationForLineLoop(string formId, string itemId, string colId, int eventType)
 {
     SAPbobsCOM.Recordset oRecordSet = null;
     try
     {
         colId      = (colId == "" ? "0" : colId); //If colUID is "0", the event return as "".
         oRecordSet = ((SAPbobsCOM.Recordset)(AddOnUtilities.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)));
         string strQuery = "SELECT * FROM \"@OCFL\" WHERE \"U_FormId\" = '" + formId + "' AND \"U_ItemId\" = '" + itemId + "' AND \"U_ColumnId\" = '" + colId + "' AND \"U_EventType\" = " + eventType;
         oRecordSet.DoQuery(strQuery);
     }
     catch (Exception ex)
     {
         AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
     }
     return(oRecordSet);
 }
コード例 #15
0
        /// <summary>
        /// Retrieve all branches from SAP.
        /// </summary>
        /// <returns>RecordSet filled with Branches.</returns>
        public static Recordset GetBranches()
        {
            SAPbobsCOM.Recordset oRecordSet = null;
            try
            {
                oRecordSet = ((SAPbobsCOM.Recordset)(AddOnUtilities.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)));
                string strQuery = "SELECT T0.\"BPLName\" FROM OBPL T0";
                oRecordSet.DoQuery(strQuery);
            }
            catch (Exception ex)
            {
                AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
            }

            return(oRecordSet);
        }
コード例 #16
0
ファイル: Test.cs プロジェクト: victorhtun/SDKUtilities
        private void btnCreateQueries_Click(object sender, EventArgs e)
        {
            UserQueries     oUserQueries = (SAPbobsCOM.UserQueries)AddOnUtilities.oCompany.GetBusinessObject(BoObjectTypes.oUserQueries);
            QueryCategories oQueryCategories = (SAPbobsCOM.QueryCategories)AddOnUtilities.oCompany.GetBusinessObject(BoObjectTypes.oQueryCategories);
            int             lRetCode = 0, queryCategoryId = 0;

            string strQuery = "select \"CategoryId\" from \"OQCN\" where \"CatName\" = 'Customization'";

            SAPbobsCOM.Recordset oRecordSet = ((SAPbobsCOM.Recordset)(AddOnUtilities.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)));
            oRecordSet.DoQuery(strQuery);

            bool isQueryCategoryExist = Convert.ToBoolean(oRecordSet.Fields.Item(0).Value);

            if (!isQueryCategoryExist)
            {
                oQueryCategories.Name        = "Customization";
                oQueryCategories.Permissions = "YYYYYYYYYYYYYYY";
                lRetCode = oQueryCategories.Add();

                if (lRetCode != 0)
                {
                    string errMsg = AddOnUtilities.oCompany.GetLastErrorDescription();
                    MessageBox.Show("Failed to create Query Category.");
                    MessageBox.Show(errMsg);
                }
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oQueryCategories);
            }

            List <string[]> lstQueryList = AddOnUtilities.ReadQueries("C:\\Users\\LynnHtet\\Desktop\\UserQueryList.txt");

            queryCategoryId = Convert.ToInt32(oRecordSet.Fields.Item(0).Value);
            foreach (string[] query in lstQueryList)
            {
                oUserQueries.QueryDescription = query[0];
                oUserQueries.Query            = query[1];
                oUserQueries.QueryType        = UserQueryTypeEnum.uqtWizard;
                oUserQueries.QueryCategory    = queryCategoryId;
                lRetCode = oUserQueries.Add();

                if (lRetCode != 0)
                {
                    string errMsg = AddOnUtilities.oCompany.GetLastErrorDescription();
                    MessageBox.Show("Failed to create Query Category.");
                    MessageBox.Show(errMsg);
                }
            }
        }
コード例 #17
0
        public static string GetInputValue(string itemId, string colId, string controlType, string relatedCol = "")
        {
            string input = String.Empty;

            try
            {
                int rowIndex;
                SAPbouiCOM.Matrix oMatrix = null;
                switch (controlType)
                {
                case "1":     //Textbox
                    input = ((SAPbouiCOM.EditText)AddOnUtilities.oApplication.Forms.ActiveForm.Items.Item(itemId).Specific).Value;
                    break;

                case "2":     //Checkbox (Only for BP Selection Window)
                    string colIdForDescription = (relatedCol == "" ? itemId : relatedCol);
                    oMatrix  = (SAPbouiCOM.Matrix)AddOnUtilities.oApplication.Forms.ActiveForm.Items.Item(itemId).Specific;
                    rowIndex = oMatrix.GetCellFocus().rowIndex;
                    input    = ((SAPbouiCOM.EditText)oMatrix.Columns.Item(colIdForDescription).Cells.Item(rowIndex).Specific).Value;
                    break;

                case "3":     //Dropdown List
                    break;

                case "4":     //Matrix
                    oMatrix  = (SAPbouiCOM.Matrix)AddOnUtilities.oApplication.Forms.ActiveForm.Items.Item(itemId).Specific;
                    rowIndex = oMatrix.GetCellFocus().rowIndex;
                    input    = ((SAPbouiCOM.EditText)oMatrix.Columns.Item(colId).Cells.Item(rowIndex).Specific).Value;
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
            }

            return(input);
        }
コード例 #18
0
        public String Login(String DbServer, String DbName, String DbType, String User, String Password, String Language, String License)
        {
            String sessionID = String.Empty;

            try
            {
                // 1. Get Soap Request + Pass Parameters
                String soapLoginRequest = String.Format(Resources.DIServerLoginSOAP, DbServer, DbName, DbType, User, Password, Language, License);
                // 2. Send to DI Server Node
                String soapLoginResponse = Interact(soapLoginRequest);

                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(soapLoginResponse);

                XmlNode xmlNode = xmlDoc.SelectSingleNode("//*[local-name()='SessionID']");

                if (xmlNode == null)
                {
                    // Error
                    AddOnUtilities.MsgBoxWrapper("DI Server Login failed.");
                }
                else
                {
                    // Success
                    sessionID  = xmlNode.InnerText;
                    sSessionID = sessionID;
                    AddOnUtilities.MsgBoxWrapper(string.Format("DI Server Login Success. {0}", sessionID));
                }
            }
            catch (Exception ex)
            {
                AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
            }

            return(sessionID);
        }
コード例 #19
0
        public static Recordset GetBusinessPartnerNamesByUser()
        {
            SAPbobsCOM.Recordset oRecordSet = null;
            try
            {
                oRecordSet = ((SAPbobsCOM.Recordset)(AddOnUtilities.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)));
                string strQuery = String.Empty;
                if (ConfigurationManager.AppSettings["DbType"].ToString().ToUpper() == "SQL")
                {
                    strQuery = "SELECT T0.\"CardName\", T0.\"CardCode\" FROM OCRD T0 INNER JOIN \"@UBP1\" T1 ON T1.\"U_GroupCode\" = T0.\"GroupCode\" INNER JOIN \"@OUBP\" T2 ON T2.\"Code\" = T1.\"Code\" WHERE T2.\"U_User\" = (SELECT \"USER_CODE\" FROM OUSR WHERE \"INTERNAL_K\" = " + AddOnUtilities.oCompany.UserSignature + ")";
                }
                else
                {
                    strQuery = "SELECT T0.\"CardName\", T0.\"CardCode\" FROM OCRD T0 INNER JOIN \"@UBP1\" T1 ON T1.\"U_GroupCode\" = T0.\"GroupCode\" INNER JOIN \"@OUBP\" T2 ON T2.\"Code\" = T1.\"Code\" WHERE T2.\"U_User\" = (SELECT \"USER_CODE\" FROM OUSR WHERE \"INTERNAL_K\" = " + AddOnUtilities.oCompany.UserSignature + ")";
                }
                oRecordSet.DoQuery(strQuery);
            }
            catch (Exception ex)
            {
                AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
            }

            return(oRecordSet);
        }
コード例 #20
0
        public static Recordset GetAllBusinessPartnerGroups()
        {
            SAPbobsCOM.Recordset oRecordSet = null;
            try
            {
                oRecordSet = ((SAPbobsCOM.Recordset)(AddOnUtilities.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)));
                string strQuery = String.Empty;
                if (ConfigurationManager.AppSettings["DbType"].ToString().ToUpper() == "SQL")
                {
                    strQuery = "SELECT T0.\"GroupCode\", T0.\"GroupName\" FROM OCRG T0";
                }
                else
                {
                    strQuery = "SELECT T0.\"GroupCode\", T0.\"GroupName\" FROM OCRG T0";
                }
                oRecordSet.DoQuery(strQuery);
            }
            catch (Exception ex)
            {
                AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
            }

            return(oRecordSet);
        }
コード例 #21
0
ファイル: Test.cs プロジェクト: victorhtun/SDKUtilities
        private void CreateUDO(string udoName, string udoCode, BoUDOObjType udoType, string headerTableName, List <String> childTables, BoYesNoEnum isMenuItem, string menuCaption, int fatherMenuId, int menuPosition, BoYesNoEnum canCancel = BoYesNoEnum.tYES, BoYesNoEnum canClose = BoYesNoEnum.tNO, BoYesNoEnum canCreateDefaultForm = BoYesNoEnum.tYES, BoYesNoEnum canDelete = BoYesNoEnum.tYES, BoYesNoEnum canFind = BoYesNoEnum.tYES, BoYesNoEnum canLog = BoYesNoEnum.tYES, BoYesNoEnum canYearTransfer = BoYesNoEnum.tNO)
        {
            try
            {
                if (!(AddOnUtilities.UDOExist(udoName)))
                {
                    UserObjectsMD UDO = (UserObjectsMD)AddOnUtilities.oCompany.GetBusinessObject(BoObjectTypes.oUserObjectsMD);

                    //Set Services
                    // TODO: use optional params for properties below
                    UDO.CanCancel            = canCancel;
                    UDO.CanClose             = canClose;
                    UDO.CanCreateDefaultForm = canCreateDefaultForm;
                    UDO.CanDelete            = canDelete;
                    UDO.CanFind         = canFind;
                    UDO.CanLog          = canLog;
                    UDO.CanYearTransfer = canYearTransfer;

                    UDO.TableName             = headerTableName;
                    UDO.FormColumns.SonNumber = childTables.Count;
                    UDO.EnableEnhancedForm    = BoYesNoEnum.tYES; // To show Header Line Style
                    UDO.Code       = udoCode;
                    UDO.Name       = udoName;
                    UDO.ObjectType = udoType;

                    //Display columns
                    UDO.FormColumns.FormColumnAlias       = "Code";
                    UDO.FormColumns.FormColumnDescription = "Code";
                    UDO.FormColumns.Editable = BoYesNoEnum.tYES;
                    UDO.FormColumns.Add();

                    UDO.FormColumns.FormColumnAlias       = "U_User";
                    UDO.FormColumns.FormColumnDescription = "User";
                    UDO.FormColumns.Editable = BoYesNoEnum.tYES;
                    UDO.FormColumns.Add();

                    //UDO.FormColumns.FormColumnAlias = "U_Dimension1";
                    //UDO.FormColumns.FormColumnDescription = "Dimension 1";
                    //UDO.FormColumns.Add();

                    //UDO.FormColumns.FormColumnAlias = "U_Dimension2";
                    //UDO.FormColumns.FormColumnDescription = "Dimension 2";
                    //UDO.FormColumns.Add();

                    //Columns to be used in find mode
                    UDO.FindColumns.ColumnAlias       = "Code";
                    UDO.FindColumns.ColumnDescription = "Code";
                    UDO.FindColumns.Add();

                    UDO.FindColumns.ColumnAlias       = "U_User";
                    UDO.FindColumns.ColumnDescription = "User";
                    UDO.FindColumns.Add();

                    // Set UDO to have a menu
                    UDO.MenuItem    = isMenuItem;
                    UDO.MenuCaption = menuCaption;
                    // Set father and gnment of menu item.
                    UDO.FatherMenuID = fatherMenuId;
                    UDO.Position     = 1;
                    // Set UDO menu UID
                    UDO.MenuUID = "UserDimension";

                    //Link with child tables.
                    foreach (var childTable in childTables)
                    {
                        UDO.ChildTables.TableName = childTable;
                        UDO.ChildTables.Add();
                    }

                    int RetCode = UDO.Add();
                    if (RetCode != 0)
                    {
                        string errMsg = AddOnUtilities.oCompany.GetLastErrorDescription();
                        MessageBox.Show("Failed to add UDO");
                    }
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(UDO);
                }
            }
            catch (Exception ex)
            {
                AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
                SAPbouiCOM.EventForm e = null;
            }
        }
コード例 #22
0
ファイル: Test.cs プロジェクト: victorhtun/SDKUtilities
 private void btnConnectUI_Click(object sender, EventArgs e)
 {
     AddOnUtilities.ConnectViaUI();
 }
コード例 #23
0
        public static string CheckIfValidOrNotAllLine(SAPbobsCOM.Recordset rsConfigData, string documentType)
        {
            try
            {
                string controlName = rsConfigData.Fields.Item("U_ControlName").Value.ToString();
                string controlType = rsConfigData.Fields.Item("U_ControlType").Value.ToString();
                string accessMatrixKey = rsConfigData.Fields.Item("U_AccessMatrixKey").Value.ToString();
                string itemId = rsConfigData.Fields.Item("U_ItemId").Value.ToString();
                string colId = rsConfigData.Fields.Item("U_ColumnId").Value.ToString();
                string relatedItemId = rsConfigData.Fields.Item("U_RelatedItem").Value.ToString();
                string relatedColId = rsConfigData.Fields.Item("U_RelatedColumn").Value.ToString();
                string relatedItemId2 = rsConfigData.Fields.Item("U_RelatedItem2").Value.ToString();
                string relatedColId2 = rsConfigData.Fields.Item("U_RelatedColumn2").Value.ToString();
                string result = "Invalid " + controlName + " at line : ";
                bool   isValid = true, isValidAll = true;

                SAPbobsCOM.Recordset rs = null;

                if (controlName == "Business Partners")
                {
                    rs = GetBusinessPartnersByUser();
                }
                else if (controlName.Contains("Dimension"))
                {
                    string branch     = "";
                    bool   isBranchId = false;

                    dynamic BranchControl = AddOnUtilities.oApplication.Forms.ActiveForm.Items.Item(relatedItemId2).Specific;

                    if (BranchControl is SAPbouiCOM.ComboBox)
                    {
                        branch     = ((SAPbouiCOM.ComboBox)AddOnUtilities.oApplication.Forms.ActiveForm.Items.Item(relatedItemId2).Specific).Value;
                        isBranchId = true;
                    }
                    else //if(BranchControl is SAPbouiCOM.EditText)
                    {
                        branch     = ((SAPbouiCOM.EditText)AddOnUtilities.oApplication.Forms.ActiveForm.Items.Item(relatedItemId2).Specific).Value;
                        isBranchId = false;
                    }

                    rs = GetDimensionsByBranch(controlName, branch, isBranchId);
                }
                else if (controlName == "Project")
                {
                    rs = GetProjectsByUser();
                }
                else if (controlName == "G/L Account")
                {
                    rs = GetAccountsByUser();
                }

                SAPbouiCOM.Matrix oMatrix = (SAPbouiCOM.Matrix)AddOnUtilities.oApplication.Forms.ActiveForm.Items.Item(relatedItemId).Specific;
                int RowCount = oMatrix.RowCount;

                for (int CurrentRow = 1; CurrentRow < RowCount; CurrentRow++)
                {
                    string input = ((SAPbouiCOM.EditText)(oMatrix.Columns.Item(relatedColId).Cells.Item(CurrentRow).Specific)).Value;
                    rs.MoveFirst();
                    if (input != "")
                    {
                        while (!rs.EoF)
                        {
                            string retrievedData = rs.Fields.Item(0).Value.ToString();
                            rs.MoveNext();
                            if (input == retrievedData)
                            {
                                isValid = true;
                                break;
                            }
                            else
                            {
                                isValid = false;
                            }
                        }
                        if (!isValid && rs.EoF)
                        {
                            isValidAll = false;
                            result    += CurrentRow.ToString() + ", ";
                        }
                    }
                }
                if (!isValidAll)
                {
                    result = result.Substring(0, result.Length - 2) + ".";
                    return(result);
                }
                return("");
            }
            catch (Exception ex)
            {
                AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
                return(ex.Message + " " + ex.StackTrace);
            }
        }
コード例 #24
0
        /// <summary>
        /// Check if User's input value is valid or not.
        /// </summary>
        /// <param name="rsConfigData"></param>
        /// <returns>If input is invalid, return value starts with "Invalid". If input is valid, return "".</returns>
        public static string CheckIfValidOrNot(SAPbobsCOM.Recordset rsConfigData)
        {
            try
            {
                string controlName     = rsConfigData.Fields.Item("U_ControlName").Value.ToString();
                string controlType     = rsConfigData.Fields.Item("U_ControlType").Value.ToString();
                string accessMatrixKey = rsConfigData.Fields.Item("U_AccessMatrixKey").Value.ToString();
                string itemId          = rsConfigData.Fields.Item("U_ItemId").Value.ToString();
                string colId           = rsConfigData.Fields.Item("U_ColumnId").Value.ToString();
                string input           = GetInputValue(itemId, colId, controlType);
                string result          = String.Empty;

                SAPbobsCOM.Recordset rs = null;

                //Retrieve valid data according to the control name.
                if (controlName == "Business Partner")
                {
                    rs = GetBusinessPartnersByUser();
                }
                else if (controlName == "Business Partner Name")
                {
                    rs = GetBusinessPartnerNamesByUser();
                }
                else if (controlName == "All Business Partner Group")
                {
                    rs = GetAllBusinessPartnerGroups();
                }
                else if (controlName.StartsWith("Dimension")) //Dimension by Branch
                {
                    string branch        = "";
                    string relatedItemId = rsConfigData.Fields.Item("U_RelatedItem").Value.ToString();
                    string relatedColId  = rsConfigData.Fields.Item("U_RelatedColumn").Value.ToString();
                    bool   isBranchId    = false;

                    //Use Dynamic because Control Type can be identified only during runtime. It depends on the document types.
                    //If Control type is ComboBox, branch value from UI is ID.
                    //If Control type is EditText, branch value from UI is Value.
                    dynamic BranchControl = AddOnUtilities.oApplication.Forms.ActiveForm.Items.Item(relatedItemId).Specific;
                    if (BranchControl is SAPbouiCOM.ComboBox)
                    {
                        branch     = ((SAPbouiCOM.ComboBox)AddOnUtilities.oApplication.Forms.ActiveForm.Items.Item(relatedItemId).Specific).Value;
                        isBranchId = true;
                    }
                    else //if(BranchControl is SAPbouiCOM.EditText)
                    {
                        branch     = ((SAPbouiCOM.EditText)AddOnUtilities.oApplication.Forms.ActiveForm.Items.Item(relatedItemId).Specific).Value;
                        isBranchId = false;
                    }

                    rs = GetDimensionsByBranch(controlName, branch, isBranchId);
                }
                else if (controlName == "Project")
                {
                    rs = GetProjectsByUser();
                }
                else if (controlName == "All Users")
                {
                    rs = GetUsers();
                }
                else if (controlName == "All Projects")
                {
                    rs = GetProjects();
                }
                else if (controlName.Contains("Dimension"))
                {
                    string dimensionType = controlName.ElementAt(controlName.Length - 1).ToString();
                    switch (dimensionType)
                    {
                    case "1":
                        rs = GetDimension1();
                        break;

                    case "2":
                        rs = GetDimension2();
                        break;

                    case "3":
                        rs = GetDimension3();
                        break;

                    case "4":
                        rs = GetDimension4();
                        break;

                    case "5":
                        rs = GetDimension5();
                        break;
                    }
                }
                else if (controlName == "All Branches")
                {
                    rs = GetBranches();
                }
                else if (controlName == "G/L Account")
                {
                    rs = GetAccountsByUser();
                }
                else if (controlName == "All Accounts")
                {
                    rs = GetAllAccounts();
                }

                //Retrieve user's input value.
                //input = GetInputValue(itemId, colId, controlType);

                // Below switch case statement is used to identify which kind of data is valid/invalid. So that error can be showed as "Invalid Input Type (Project, User, Dimension, etc.)
                // Check if user's input is in valid values.
                switch (accessMatrixKey)
                {
                //------------------------------------------------------------------------ Checking for Projects ------------------------------------------------------------------------//
                case "1":     // Projects by User
                case "5":     // All Projects
                    if (input != "")
                    {
                        while (!rs.EoF)
                        {
                            string retrievedData = rs.Fields.Item(0).Value.ToString();
                            rs.MoveNext();
                            if (input == retrievedData)
                            {
                                return("");
                            }
                        }
                        return("Invalid Project.");
                    }
                    break;
                //------------------------------------------------------------------------ End of Checking for Projects ------------------------------------------------------------------------//

                //------------------------------------------------------------------------ Checking for Dimensions ------------------------------------------------------------------------//
                case "2":            // Dimensions by Branch
                case "6":            // All Dimension 1
                case "7":            // All Dimension 2
                case "8":            // All Dimension 3
                case "9":            // All Dimension 4
                case "10":           // All Dimension 5
                    if (input != "") // To check if project column is blank or not first.
                    {
                        while (!rs.EoF)
                        {
                            string retrievedData = rs.Fields.Item(0).Value.ToString();
                            rs.MoveNext();
                            if (input == retrievedData)
                            {
                                return("");
                            }
                        }
                        return("Invalid Dimension.");
                    }
                    break;
                //------------------------------------------------------------------------ End of Checking for Dimensions ------------------------------------------------------------------------//

                //------------------------------------------------------------------------ Checking for Business Partners ------------------------------------------------------------------------//
                case "3":     // Business Partners by User
                case "12":    // All Business Partners
                    if (input != "")
                    {
                        while (!rs.EoF)
                        {
                            string retrievedData = rs.Fields.Item(0).Value.ToString();
                            rs.MoveNext();
                            if (input == retrievedData)
                            {
                                return("");
                            }
                        }
                        return("Invalid Business Partner.");
                    }
                    break;
                //------------------------------------------------------------------------ End of Checking for Business Partners ------------------------------------------------------------------------//

                //------------------------------------------------------------------------ Start of Checking for G/L Account ------------------------------------------------------------------------//
                case "13":     // Chart of Accounts By User
                    if (input != "")
                    {
                        while (!rs.EoF)
                        {
                            string retrievedData = rs.Fields.Item(0).Value.ToString();
                            rs.MoveNext();
                            if (input == retrievedData)
                            {
                                return("");
                            }
                        }
                        return("Invalid Account Code.");
                    }
                    break;
                //------------------------------------------------------------------------ End of Checking for G/L Account ------------------------------------------------------------------------//

                //------------------------------------------------------------------------ Checking for Users ------------------------------------------------------------------------//
                case "4":            // All Users
                    if (input != "") // To check if project column is blank or not first.
                    {
                        while (!rs.EoF)
                        {
                            string retrievedData = rs.Fields.Item(0).Value.ToString();
                            rs.MoveNext();
                            if (input == retrievedData)
                            {
                                return("");
                            }
                        }
                        return("Invalid User.");
                    }
                    break;

                //------------------------------------------------------------------------ End of Checking for Users ------------------------------------------------------------------------//
                case "11":
                    if (input != "")     // To check if project column is blank or not first.
                    {
                        while (!rs.EoF)
                        {
                            string retrievedData = rs.Fields.Item(0).Value.ToString();
                            rs.MoveNext();
                            if (input == retrievedData)
                            {
                                return("");
                            }
                        }
                        return("Invalid Branch.");
                    }
                    break;

                default:
                    break;
                }
                return("");
            }
            catch (Exception ex)
            {
                AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
                return(ex.Message + " " + ex.StackTrace);
            }
        }
コード例 #25
0
        /// <summary>
        /// Get Available A Type of Dimensions List Defined by Project.
        /// </summary>
        /// <param name="dimensionType"></param>
        /// <returns></returns>
        public static Recordset GetDimensionsByBranch(string dimensionType, string branch = "", bool isBranchId = false)
        {
            SAPbobsCOM.Recordset oRecordSet = null;
            try
            {
                oRecordSet = ((SAPbobsCOM.Recordset)(AddOnUtilities.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)));
                string strQuery = "";
                if (isBranchId)
                {
                    switch (dimensionType)
                    {
                    case "Dimension1":
                        strQuery = "SELECT T1.\"U_Dimension1\" FROM \"@OBDM\" T0 INNER JOIN \"@BDM1\" T1 ON T1.\"Code\" = T0.\"Code\" WHERE T0.\"U_Branch\" = (SELECT \"BPLName\" FROM OBPL WHERE \"BPLId\" = " + branch + ")";
                        break;

                    case "Dimension2":
                        strQuery = "SELECT T1.\"U_Dimension2\" FROM \"@OBDM\" T0 INNER JOIN \"@BDM2\" T1 ON T1.\"Code\" = T0.\"Code\" WHERE T0.\"U_Branch\" = (SELECT \"BPLName\" FROM OBPL WHERE \"BPLId\" = " + branch + ")";
                        break;

                    case "Dimension3":
                        strQuery = "SELECT T1.\"U_Dimension3\" FROM \"@OBDM\" T0 INNER JOIN \"@BDM3\" T1 ON T1.\"Code\" = T0.\"Code\" WHERE T0.\"U_Branch\" = (SELECT \"BPLName\" FROM OBPL WHERE \"BPLId\" = " + branch + ")";
                        break;

                    case "Dimension4":
                        strQuery = "SELECT T1.\"U_Dimension4\" FROM \"@OBDM\" T0 INNER JOIN \"@BDM4\" T1 ON T1.\"Code\" = T0.\"Code\" WHERE T0.\"U_Branch\" = (SELECT \"BPLName\" FROM OBPL WHERE \"BPLId\" = " + branch + ")";
                        break;

                    case "Dimension5":
                        strQuery = "SELECT T1.\"U_Dimension5\" FROM \"@OBDM\" T0 INNER JOIN \"@BDM5\" T1 ON T1.\"Code\" = T0.\"Code\" WHERE T0.\"U_Branch\" = (SELECT \"BPLName\" FROM OBPL WHERE \"BPLId\" = " + branch + ")";
                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    switch (dimensionType)
                    {
                    case "Dimension1":
                        strQuery = "SELECT T1.\"U_Dimension1\" FROM \"@OBDM\" T0 INNER JOIN \"@BDM1\" T1 ON T1.\"Code\" = T0.\"Code\" WHERE T0.\"U_Branch\" = '" + branch + "'";
                        break;

                    case "Dimension2":
                        strQuery = "SELECT T1.\"U_Dimension2\" FROM \"@OBDM\" T0 INNER JOIN \"@BDM2\" T1 ON T1.\"Code\" = T0.\"Code\" WHERE T0.\"U_Branch\" = '" + branch + "'";
                        break;

                    case "Dimension3":
                        strQuery = "SELECT T1.\"U_Dimension3\" FROM \"@OBDM\" T0 INNER JOIN \"@BDM3\" T1 ON T1.\"Code\" = T0.\"Code\" WHERE T0.\"U_Branch\" = '" + branch + "'";
                        break;

                    case "Dimension4":
                        strQuery = "SELECT T1.\"U_Dimension4\" FROM \"@OBDM\" T0 INNER JOIN \"@BDM4\" T1 ON T1.\"Code\" = T0.\"Code\" WHERE T0.\"U_Branch\" = '" + branch + "'";
                        break;

                    case "Dimension5":
                        strQuery = "SELECT T1.\"U_Dimension5\" FROM \"@OBDM\" T0 INNER JOIN \"@BDM5\" T1 ON T1.\"Code\" = T0.\"Code\" WHERE T0.\"U_Branch\" = '" + branch + "'";
                        break;

                    default:
                        break;
                    }
                }

                oRecordSet.DoQuery(strQuery);
            }
            catch (Exception ex)
            {
                AddOnUtilities.MsgBoxWrapper(ex.Message + " " + ex.StackTrace);
            }

            return(oRecordSet);
        }
コード例 #26
0
ファイル: Test.cs プロジェクト: victorhtun/SDKUtilities
 private void button1_Click(object sender, EventArgs e)
 {
     AddOnUtilities.ConnectViaDI();
 }
コード例 #27
0
ファイル: Test.cs プロジェクト: victorhtun/SDKUtilities
 private void btnAddUDVs_Click(object sender, EventArgs e)
 {
     AddOnUtilities.CreateUDV();
 }