Esempio n. 1
0
 /// <summary>
 /// Make sure a duplicate category name is not added
 /// </summary>
 /// <param name="name"></param>
 private void CheckCategory(string name)
 {
     if (QueryCategories.Any(x => x.Name == name))
     {
         throw new Exception("A Category for '" + name + "' already exists in query " + QueryName);
     }
 }
Esempio n. 2
0
        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);
                }
            }
        }
Esempio n. 3
0
        public static bool CreateCustomQueries(string qryCategory)
        {
            Recordset       oRecordSet = oCompany.GetBusinessObject(BoObjectTypes.BoRecordset);
            UserQueries     oUserQueries = (SAPbobsCOM.UserQueries)AddOnUtilities.oCompany.GetBusinessObject(BoObjectTypes.oUserQueries);
            QueryCategories oQueryCategories = (SAPbobsCOM.QueryCategories)AddOnUtilities.oCompany.GetBusinessObject(BoObjectTypes.oQueryCategories);
            int             lRetCode = 0, queryCategoryId = 0;

            try
            {
                string strQuery = "SELECT \"CategoryId\" FROM \"OQCN\" WHERE \"CatName\" = '" + qryCategory + "'";
                oRecordSet = ((SAPbobsCOM.Recordset)(AddOnUtilities.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)));
                oRecordSet.DoQuery(strQuery);
                if (oRecordSet.RecordCount < 1)
                {
                    string tmp = oRecordSet.Fields.Item(0).Value.ToString();

                    bool isQueryCategoryExist = Convert.ToBoolean(oRecordSet.Fields.Item(0).Value);
                    if (!isQueryCategoryExist) //Create only if query category is not created yet.
                    {
                        oQueryCategories.Name        = qryCategory;
                        oQueryCategories.Permissions = "YYYYYYYYYYYYYYY";
                        lRetCode = oQueryCategories.Add();

                        if (lRetCode != 0)
                        {
                            string errMsg = AddOnUtilities.oCompany.GetLastErrorDescription();
                        }
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(oQueryCategories);
                    }
                }

                List <string[]> lstQueryList = AddOnUtilities.ReadQueries();
                queryCategoryId = Convert.ToInt32(oRecordSet.Fields.Item(0).Value);
                foreach (string[] query in lstQueryList)
                {
                    string queryDescription = query[0];
                    strQuery = "SELECT \"QName\" FROM OUQR WHERE \"QCategory\" = (SELECT \"CategoryId\" FROM OQCN WHERE \"CatName\" = '" + qryCategory + "') AND \"QName\" = '" + queryDescription + "'";
                    oRecordSet.DoQuery(strQuery);
                    if (oRecordSet.RecordCount == 0)
                    {
                        oUserQueries.QueryDescription = queryDescription;
                        oUserQueries.Query            = query[1];
                        oUserQueries.QueryType        = UserQueryTypeEnum.uqtWizard;
                        oUserQueries.QueryCategory    = queryCategoryId;
                        lRetCode = oUserQueries.Add();

                        if (lRetCode != 0)
                        {
                            string errMsg = AddOnUtilities.oCompany.GetLastErrorDescription();
                            AddOnUtilities.MsgBoxWrapper(errMsg, MsgBoxType.B1StatusBar, BoMessageTime.bmt_Short, true);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oQueryCategories);
            }

            return(lRetCode == 0);
        }
Esempio n. 4
0
 internal override string GetFormattedDescription()
 {
     return(QueryCategories
            .With(x => x[0])
            .Return(x => x.Name, string.Empty));
 }
Esempio n. 5
0
 internal override string GetFormattedKey()
 {
     return("[" + QueryCategories
            .With(x => x[0])
            .Return(x => x.Name, string.Empty) + "]");
 }