123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Windows.Forms;
- namespace LYFZ.Software.MainBusiness.StatisticalInquiry
- {
- public partial class FrmCostDetail : LYFZ.Software.UI.StatisticalInquiry.FrmCostDetail
- {
- private System.Data.DataSet _dataSet = null;
- private DataGridViewRow _dataGridViewRow = null;
- DataTable _dataTable = null;
- string _listNullColumn = "";
- string _listShowColumns = " 类型, 项目, 成本, 售价, 数量";
- string _listHideColumns = "";
- System.Data.DataTable _dataScenery = null;
- bool _IsChildrenOrder = false;
- public FrmCostDetail( DataGridViewRow dataGridViewRow, bool IsChildrenOrder = false )
- {
- _dataGridViewRow = dataGridViewRow;
- _IsChildrenOrder = IsChildrenOrder;
- // 按Excape退出;
- this.KeyPreview = true;
- this.KeyDown += FrmCostDetail_KeyDown;
- // 数据加载;
- this.Load += FrmCostDetail_Load;
- // 显示数据;
- this.Shown += FrmCostDetail_Shown;
- // 选中行时;
- this.dgv.SelectionChanged += Dgv_SelectionChanged;
- if (_dataGridViewRow != null)
- {
- decimal selling_price = Convert.ToDecimal( _dataGridViewRow.Cells["套系价格"].Value.ToString() ) + Convert.ToDecimal( _dataGridViewRow.Cells["加挑总价"].Value.ToString() );
- decimal cost_price = Convert.ToDecimal( _dataGridViewRow.Cells["商品成本"].Value.ToString() ) + Convert.ToDecimal( _dataGridViewRow.Cells["服务成本"].Value.ToString() ) + Convert.ToDecimal( _dataGridViewRow.Cells["加挑成本"].Value.ToString() );
- // 订单售价;
- this.lab_selling_price.Text = selling_price.ToString();
- // 订单成本;
- this.lab_cost_price.Text = cost_price.ToString();
- // 毛利;
- this.lab_gross_profit.Text = ( selling_price - cost_price ).ToString();
- // 毛利率;
- if (selling_price != 0 )
- this.lab_gross_rate.Text = ( (selling_price - cost_price) / selling_price * 100).ToString();
- }
- }
- private void Dgv_SelectionChanged( object sender, EventArgs e )
- {
- DataGridViewRow dgrCurrent = this.dgv.SelectedRows[0];
- if ( dgrCurrent.Cells[0].Value == null )
- return;
- dgrCurrent.DefaultCellStyle.SelectionForeColor = dgrCurrent.DefaultCellStyle.ForeColor;
- dgrCurrent.DefaultCellStyle.SelectionBackColor = dgrCurrent.DefaultCellStyle.BackColor;
- }
- private void FrmCostDetail_Shown( object sender, EventArgs e )
- {
- // 获取数据;
- _dataScenery = _dataSet.Tables["ds"];
- System.Data.DataTable dataProduct = _dataSet.Tables["ds1"];
- System.Data.DataTable dataService = _dataSet.Tables["ds2"];
- System.Data.DataTable dataPlusProduct = _dataSet.Tables["ds3"];
- DataPadding( _dataScenery, "订单景点" );
- DataPadding( dataProduct, "订单商品", IsShowScenery: true );
- DataPadding( dataService, "订单服务", IsShowScenery: true );
- DataPadding( dataPlusProduct, "订单加挑", IsShowScenery: true, IsAddNullRow: false );
- }
- private void FrmCostDetail_Load( object sender, EventArgs e )
- {
- LYFZ.DAL.CostAccounting costAccounting = new DAL.CostAccounting();
- _dataSet = costAccounting.GetCostDetail( _dataGridViewRow.Tag.ToString() );
- // 初始化Columns;
- InitDataGridViewColumns();
- }
- private void FrmCostDetail_KeyDown( object sender, KeyEventArgs e )
- {
- if ( e.KeyCode == Keys.Escape )
- this.Close();
- }
- private void InitDataGridViewColumns()
- {
- DataGridViewTextBoxColumn column = null;
- if ( !string.IsNullOrEmpty( _listShowColumns ) )
- {
- // 有必须的话, 清空之前的列头信息;
- this.dgv.Rows.Clear();
- this.dgv.Columns.Clear();
- List<string> listColumns = _listShowColumns.Split( ',' ).ToList();
- for ( int i = 0; i < listColumns.Count; i++ )
- {
- column = new DataGridViewTextBoxColumn();
- column.ReadOnly = true;
- column.Name = listColumns[i].Trim();
- column.HeaderText = listColumns[i].Trim();
- // 是否排序;
- column.SortMode = DataGridViewColumnSortMode.NotSortable;
- this.dgv.Columns.Add( column );
- }
- this.dgv.ColumnHeadersHeight = 25;
- this.dgv.Columns[1].Width = 250;
- this.dgv.Columns[4].Width = 88;
- this.dgv.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
- this.dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
- }
- this.dgv.ColumnHeadersVisible = false;
- //this.dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
- }
- private void DataPadding( DataTable dataTable, string strType, bool IsShowScenery = false, bool IsAddNullRow = true )
- {
- DataGridViewRow data = null;
- data = new DataGridViewRow();
- data.CreateCells( this.dgv );
- data.Cells[0].Value = strType;
- data.Cells[1].Value = "项目";
- data.Cells[2].Value = "成本";
- data.Cells[3].Value = "售价";
- data.Cells[4].Value = "数量";
- data.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
- data.DefaultCellStyle.ForeColor = System.Drawing.Color.FloralWhite;
- data.DefaultCellStyle.BackColor = System.Drawing.Color.FromArgb( 48, 108, 150 );
- this.dgv.Rows.Add( data );
- foreach ( DataRow item in dataTable.Rows )
- {
- data = new DataGridViewRow();
- data.DefaultCellStyle.ForeColor = System.Drawing.Color.Black;
- data.DefaultCellStyle.BackColor = System.Drawing.Color.AntiqueWhite;
- data.CreateCells( this.dgv );
- if ( !IsShowScenery )
- data.Cells[1].Value = item["名称"];
- else
- {
- if ( _IsChildrenOrder )
- {
- foreach ( DataRow dr in _dataScenery.Rows )
- {
- if ( dr["子单号"].ToUpperString() == item["子单号"].ToUpperString() )
- {
- data.Cells[1].Value = "[" + dr["名称"].ToString() + "]" + item["名称"].ToString();
- break;
- }
- }
- }
- else
- {
- data.Cells[1].Value = item["名称"];
- }
- }
- data.Cells[2].Value = item["成本"];
- data.Cells[3].Value = item["售价"];
- data.Cells[4].Value = item["数量"];
- this.dgv.Rows.Add( data );
- }
- // 空行;
- if ( IsAddNullRow )
- {
- data = new DataGridViewRow();
- data.DefaultCellStyle.BackColor = System.Drawing.Color.White;
- this.dgv.Rows.Add( data );
- }
- }
- }
- }
|