private void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { try { CCalcOrder objCalcOrder = GetSelectedCalcOrder(); if (objCalcOrder != null) { if (DevExpress.XtraEditors.XtraMessageBox.Show("Подтвердите удаления расчета: " + objCalcOrder.ToString(), "Внимание", System.Windows.Forms.MessageBoxButtons.YesNoCancel, System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes) { RemoveCalcOrder(objCalcOrder); } } } catch (System.Exception f) { SendMessageToLog("Ошибка удаления расчета. Текст ошибки: " + f.Message); } finally { this.Cursor = Cursors.Default; } return; }
/// <summary> /// Запрашивает список расчетов /// </summary> private void LoadCalcOrderList() { this.Cursor = Cursors.WaitCursor; try { this.splitContainerControl.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.gridControlProductList)).BeginInit(); gridControlProductList.DataSource = null; m_objCalcOrderList = CCalcOrder.GetCalcOrderList(m_objProfile, null); if (m_objCalcOrderList != null) { gridControlProductList.DataSource = m_objCalcOrderList; } this.splitContainerControl.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.gridControlProductList)).EndInit(); splitContainerControl.SplitterPosition = m_iStartSplitterPosition; //splitContainerControl.Panel2.Size = new Size(200, splitContainerControl.Panel2.Size.Height); splitContainerControl.Refresh(); } catch (System.Exception f) { SendMessageToLog("Ошибка обновления списка. Текст ошибки: " + f.Message); } finally { this.Cursor = Cursors.Default; } return; }
/// <summary> /// Возвращает ссылку на выбранный в списке товар /// </summary> /// <returns>ссылка на товар</returns> private CCalcOrder GetSelectedCalcOrder() { CCalcOrder objRet = null; try { if ((((DevExpress.XtraGrid.Views.Grid.GridView)gridControlProductList.MainView).RowCount > 0) && (((DevExpress.XtraGrid.Views.Grid.GridView)gridControlProductList.MainView).FocusedRowHandle >= 0)) { System.Guid uuidID = (System.Guid)(((DevExpress.XtraGrid.Views.Grid.GridView)gridControlProductList.MainView)).GetFocusedRowCellValue("ID"); if ((m_objCalcOrderList != null) && (m_objCalcOrderList.Count > 0) && (uuidID.CompareTo(System.Guid.Empty) != 0)) { foreach (CCalcOrder objCalcOrder in m_objCalcOrderList) { if (objCalcOrder.ID.CompareTo(uuidID) == 0) { objRet = objCalcOrder; break; } } } } }//try catch (System.Exception f) { SendMessageToLog("Ошибка поиска выбранного расчета. Текст ошибки: " + f.Message); } finally { } return(objRet); }
private void LoadData(CCalcOrder objCalcOrder) { try { //System.String strStartProcess = "идет загрузка данных..."; if (objCalcOrder == null) { return; } this.Cursor = System.Windows.Forms.Cursors.WaitCursor; System.Boolean bPageExsits = false; System.String strTabName = objCalcOrder.Num; foreach (DevExpress.XtraTab.XtraTabPage tabPageItem in tabControl.TabPages) { if (tabPageItem.Name == strTabName) { bPageExsits = true; tabControl.SelectedTabPage = tabPageItem; break; } } if (bPageExsits == true) { return; } DevExpress.XtraTab.XtraTabPage tabPage = new DevExpress.XtraTab.XtraTabPage(); if (tabPage != null) { tabPage.Name = strTabName; tabControl.TabPages.Add(tabPage); tabControl.SelectedTabPage = tabPage; ctrlCalcOrderItem ViewerCalcOrderItem = new ctrlCalcOrderItem(m_objProfile, objCalcOrder); if (ViewerCalcOrderItem != null) { tabPage.Controls.Add(ViewerCalcOrderItem); tabPage.Text = strTabName; ViewerCalcOrderItem.Dock = DockStyle.Fill; this.Refresh(); ViewerCalcOrderItem.LoadCalcOrderItems(); ViewerCalcOrderItem.ChangeCalcOrderItem += this.OnChangeCalcOrderItem; } this.Refresh(); } } catch (System.Exception f) { DevExpress.XtraEditors.XtraMessageBox.Show("Ошибка загрузки плана закупок для ." + objCalcOrder.Num + "\n\nТекст ошибки: " + f.Message, "Ошибка", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } finally { this.Cursor = System.Windows.Forms.Cursors.Default; } return; }
public ctrlCalcOrderItem(UniXP.Common.CProfile objProfile, CCalcOrder objCalcOrder) { m_objProfile = objProfile; InitializeComponent(); m_objCalcOrder = objCalcOrder; m_bPlanIsChanged = false; }
public void SimulateChangeCalcOrderItem(CCalcOrder objCalcOrder, System.Boolean bIsChanged) { // Создаем объект, хранящий информацию, которую нужно передать // объектам, получающим уведомление о событии ChangeCalcOrderItemEventArgs e = new ChangeCalcOrderItemEventArgs(objCalcOrder, bIsChanged); // Вызываем виртуальный метод, уведомляющий наш объект о возникновении события // Если нет типа, переопределяющего этот метод, наш объект уведомит все объекты, // подписавшиеся на уведомление о событии OnChangeCalcOrderItem(e); }
/// <summary> /// Расчет заказа /// </summary> private void CalcOrder() { try { frmProductOwnerList objfrmProductOwnerList = new frmProductOwnerList(m_objProfile); if (objfrmProductOwnerList != null) { if ((objfrmProductOwnerList.ShowDialog() == DialogResult.OK) && (objfrmProductOwnerList.SelectedProductOwner != null)) { System.String strErr = ""; System.String strProductOwnerName = "Выбрана товарная марка: " + objfrmProductOwnerList.SelectedProductOwner.Name; System.String strSaleprognosisName = ((objfrmProductOwnerList.SelectedSalePrognosis == null) ? "" : ("прогноз продаж: " + objfrmProductOwnerList.SelectedSalePrognosis.ToString())); if (DevExpress.XtraEditors.XtraMessageBox.Show( strProductOwnerName + "\n" + strSaleprognosisName + ".\n\nРасчет заказа может занять несколько минут.\nНачать расчет?", "Подтверждение", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question) == DialogResult.Yes) { SendMessageToLog("идет расчет заказа для товарной марки " + objfrmProductOwnerList.SelectedProductOwner.Name + "..."); this.Refresh(); this.Cursor = Cursors.WaitCursor; if (CCalcOrder.CalcOrder(m_objProfile, null, objfrmProductOwnerList.SelectedProductOwner, objfrmProductOwnerList.SelectedSalePrognosis, ref strErr) == true) { this.Cursor = Cursors.Default; SendMessageToLog("расчет заказа завершен"); DevExpress.XtraEditors.XtraMessageBox.Show( "Заказ успешно расчитан. Нажмите кнопку \"Обновить\"", "Информация", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information); } else { this.Cursor = Cursors.Default; SendMessageToLog("ошибка расчета заказа"); DevExpress.XtraEditors.XtraMessageBox.Show( "Ошибка расчета заказа.\n\nТекст ошибки: " + strErr, "Ошибка", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } } } } objfrmProductOwnerList = null; } catch (System.Exception f) { DevExpress.XtraEditors.XtraMessageBox.Show( "Ошибка расчета заказа.\n\nТекст ошибки: " + f.Message, "Ошибка", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } finally { this.Cursor = Cursors.Default; } return; }
private void gridControlProductList_DoubleClick(object sender, EventArgs e) { try { this.Cursor = Cursors.WaitCursor; CCalcOrder objSelectedCalcOrder = GetSelectedCalcOrder(); LoadData(objSelectedCalcOrder); }//try catch (System.Exception f) { SendMessageToLog("Ошибка просмотра приложения к расчету. Текст ошибки: " + f.Message); } finally { this.Cursor = Cursors.Default; } return; }
private void RemoveCalcOrder(CCalcOrder objCalcOrder) { if (objCalcOrder == null) { return; } try { this.Cursor = Cursors.WaitCursor; if (objCalcOrder.Remove(m_objProfile) == true) { CCalcOrder objCalcOrderForDelete = null; foreach (CCalcOrder objItem in m_objCalcOrderList) { if (objItem.ID.CompareTo(objCalcOrder.ID) == 0) { objCalcOrderForDelete = objItem; break; } } if (objCalcOrderForDelete != null) { m_objCalcOrderList.Remove(objCalcOrderForDelete); gridControlProductList.RefreshDataSource(); } } } catch (System.Exception f) { SendMessageToLog("Ошибка удаления расчета. Текст ошибки: " + f.Message); } finally { this.Cursor = Cursors.Default; } return; }
/// <summary> /// Возвращает список расчетов /// </summary> /// <param name="objProfile">профайл</param> /// <param name="cmdSQL">SQL-команда</param> /// <returns>список расчетов</returns> public static List<CCalcOrder> GetCalcOrderList(UniXP.Common.CProfile objProfile, System.Data.SqlClient.SqlCommand cmdSQL) { List<CCalcOrder> objList = new List<CCalcOrder>(); System.Data.SqlClient.SqlConnection DBConnection = null; System.Data.SqlClient.SqlCommand cmd = null; try { if (cmdSQL == null) { DBConnection = objProfile.GetDBSource(); if (DBConnection == null) { DevExpress.XtraEditors.XtraMessageBox.Show( "Не удалось получить соединение с базой данных.", "Внимание", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return objList; } cmd = new System.Data.SqlClient.SqlCommand(); cmd.Connection = DBConnection; cmd.CommandType = System.Data.CommandType.StoredProcedure; } else { cmd = cmdSQL; cmd.Parameters.Clear(); } cmd.CommandText = System.String.Format("[{0}].[dbo].[usp_GetCalcOrderListFromERP_Report]", objProfile.GetOptionsDllDBName()); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null)); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ERROR_NUM", System.Data.SqlDbType.Int, 8, System.Data.ParameterDirection.Output, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null)); cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ERROR_MES", System.Data.SqlDbType.NVarChar, 4000)); cmd.Parameters["@ERROR_MES"].Direction = System.Data.ParameterDirection.Output; System.Data.SqlClient.SqlDataReader rs = cmd.ExecuteReader(); if (rs.HasRows) { CProductTradeMark objProductTradeMark = null; CCalcOrder objCalcOrder = null; while (rs.Read()) { objProductTradeMark = new CProductTradeMark(); objProductTradeMark.ID_Ib = System.Convert.ToInt32(rs["OWNER_ID"]); objProductTradeMark.Name = (System.String)rs["OWNER_NAME"]; objProductTradeMark.ProductVtm = new CProductVtm(); objProductTradeMark.ProductVtm.ID_Ib = System.Convert.ToInt32(rs["VTM_ID"]); objProductTradeMark.ProductVtm.Name = (System.String)rs["VTM_NAME"]; objCalcOrder = new CCalcOrder(); objCalcOrder.m_uuidID = (System.Guid)rs["CALCORDER_GUID"]; objCalcOrder.m_strNum = (System.String)rs["CALCORDER_NUM"]; objCalcOrder.m_dtCalcOrderDate = System.Convert.ToDateTime(rs["CALCORDER_BEGINDATE"]); objCalcOrder.m_objProductTradeMark = objProductTradeMark; if (rs["SALEPROGNOSIS_ID"] != System.DBNull.Value) { objCalcOrder.m_objSalePrognosis = new CSalePrognosis(System.Convert.ToDateTime(rs["REPORTDATE"]), System.Convert.ToInt32(rs["SALEPROGNOSIS_ID"]), System.Convert.ToInt32(rs["MonthID"]), System.Convert.ToInt32(rs["YearID"]), System.Convert.ToString(rs["YearMonth"]) ); } objList.Add(objCalcOrder); } } rs.Dispose(); if (cmdSQL == null) { cmd.Dispose(); DBConnection.Close(); } } catch (System.Exception f) { DevExpress.XtraEditors.XtraMessageBox.Show( "Не удалось получить список расчетов.\n\nТекст ошибки : " + f.Message, "Внимание", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } return objList; }
public ChangeCalcOrderItemEventArgs(CCalcOrder objCalcOrder, System.Boolean bIsChanged) { m_objCalcOrder = objCalcOrder; m_bIsChanged = bIsChanged; }