public void PopulateSalesOrderBOQ() { MODEL = null; tabBOQSheets.Pages.Clear(); Application.DoEvents(); try { // check if to be set readonly TBL_MP_CRM_SalesOrder dbOrder = (new ServiceSalesOrder()).GetSalesOrderDBInfoByID(SalesOrderID); this.ReadOnly = (dbOrder.FK_BOQRepresentativeID != Program.CURR_USER.EmployeeID); headerBOQMenu.Values.Heading = String.Empty; MODEL = (new ServiceSalesOrderBOQ()).GetBOQViewModelForOrder(this.SalesOrderID); if (MODEL == null) { MODEL = (new ServiceSalesOrderBOQ()).GenerateDefaultBOQForSalesOrder(this.SalesOrderID); } if (MODEL != null) { headerBOQMenu.Values.Heading = MODEL.BOQ_NUMBER; // CREATE ALL SHEETS foreach (SalesOrderBOQSheet sheet in MODEL.SHEETS) { KryptonPage pageBOQSheet = new KryptonPage() { Text = sheet.SheetName, Name = string.Format("page{0}", tabBOQSheets.Pages.Count + 1) }; ControlSalesOrderBOQSheet _sheetControl = new ControlSalesOrderBOQSheet(sheet); _sheetControl.OnValueChanged += _sheetControl_OnValueChanged; _sheetControl.BOQ_MODEL = MODEL; pageBOQSheet.Controls.Add(_sheetControl); _sheetControl.Dock = DockStyle.Fill; tabBOQSheets.Pages.Add(pageBOQSheet); _sheetControl.ParentTabPage = pageBOQSheet; _sheetControl.PopulateBOQItemsGrid(); _sheetControl.Visible = true; _sheetControl.ReadOnly = this._ReadOnly; //pageBOQSheet.Show(); _sheetControl.SetBOQItemsGridColumnSettings(); _sheetControl.SetBOQItemsGridColumnFormatting(); pageBOQSheet.Refresh(); tabBOQSheets.SelectedPage = pageBOQSheet; Application.DoEvents(); } // ADD BOQ SUMMARY TAB pageBOQsummary = new KryptonPage() { Text = "SUMMARY", Name = "tabPageBOQSummary" }; _BOQSummaryControl = new ControlSalesOrderBOQSummary(MODEL); _BOQSummaryControl.Dock = DockStyle.Fill; pageBOQsummary.Controls.Add(_BOQSummaryControl); tabBOQSheets.Pages.Add(pageBOQsummary); _BOQSummaryControl.PopulateBOQSummaryControl(); _BOQSummaryControl.ReadOnly = this._ReadOnly; } // perform grid formatting and column settings again foreach (KryptonPage page in tabBOQSheets.Pages) { if (page.Controls[0].GetType() == typeof(ControlSalesQuotationBOQSheet)) { ControlSalesQuotationBOQSheet sheet = (ControlSalesQuotationBOQSheet)page.Controls[0]; sheet.SetBOQItemsGridColumnSettings(); sheet.SetBOQItemsGridColumnFormatting(); } } } catch (Exception ex) { string errMessage = ex.Message; if (ex.InnerException != null) { errMessage += string.Format("\n{0}", ex.InnerException.Message); } MessageBox.Show(errMessage, "ControlSalesOrderBOQ::PopulateSalesQuotationBOQ", MessageBoxButtons.OK, MessageBoxIcon.Error); } }