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); } } }
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); }