⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 selltable.cs

📁 100%原创 进销存管理系统 .net vs2003开发。下载后请保留作者版权: danis 2007年11月28日 版权所有
💻 CS
📖 第 1 页 / 共 2 页
字号:

		//在表格中填入仓库信息
		public void setStorageData()
		{
			dgrd_SellTable[dgrd_SellTable.CurrentCell.RowNumber,3] = inputDataGridArray[3];
		}

		//设置客户编号和客户名称
		private void setTextData()
		{
			this.cmb_ClientID.IntegralHeight = false;
			this.cmb_ClientID.DroppedDown = false;
			this.cmb_ClientID.Items[0] = inputTextDataArray[0];
			this.cmb_ClientID.SelectedIndex = 0;
			this.txt_Company.Text = inputTextDataArray[1];
			this.cmb_ClientID.IntegralHeight = true;
		}

		//向业务员下拉列表框中添加下拉选项
		private void selectDataBase()
		{
			this.txt_SellDate.Text = System.DateTime.Today.ToShortDateString();
			string tempStrSQL = "select distinct 姓名 from 用户清单 ";
			DataTable tempDataTable = link.SelectDataBase(tempStrSQL);
			for (int i=0;i<tempDataTable.Rows.Count;i++)
				this.cmb_Oprater.Items.Add(tempDataTable.Rows[i][0]);
			this.cmb_Oprater.SelectedIndex = 0;
		}
				
		//绑定数据并设置明细表格各列的属性
		private void DataGridStateControl()
		{
			newTable = new DataTable();
			newTable.Columns.Add("货号(双击)",typeof(string));
			newTable.Columns.Add("数量",typeof(decimal));
			newTable.Columns.Add("单价",typeof(decimal));
			newTable.Columns.Add("仓库(双击)",typeof(string));
			newTable.Columns.Add("品名",typeof(string));
			newTable.Columns.Add("单位",typeof(string));
			newTable.Columns.Add("金额",typeof(decimal),"数量*单价");
			newTable.Columns.Add("税率",typeof(decimal));
			newTable.Columns.Add("不含税额",typeof(decimal),"金额/1.17");
			newTable.Columns.Add("税额",typeof(decimal),"金额-不含税额");
			this.dgrd_SellTable.DataSource = newTable;
			newTable.Rows.Add(newTable.NewRow()); 
			//设置表格格式
			DataGridTableStyle ts = new DataGridTableStyle();
			DataGridTextBoxColumn aColumnTextColumn;
			ts.AllowSorting = false;
			ts.AlternatingBackColor = Color.SkyBlue;
			ts.HeaderBackColor = Color.SkyBlue;
			ts.MappingName = newTable.TableName;
			int numCols = newTable.Columns.Count;
			for (int i = 0;i< numCols;i++)
			{
				aColumnTextColumn = new DataGridTextBoxColumn();
				if( i!=0 && i!=1 && i!=2 && i!=3)
				{
					aColumnTextColumn.ReadOnly=true;
				}
				if ( i == 0 || i == 3 )
				{
					aColumnTextColumn.TextBox.MouseDown += new MouseEventHandler(TextBoxMouseDownHandler);
				}
				if ( i == 4 )
				{
					aColumnTextColumn.Width = 160;
				}
				aColumnTextColumn.MappingName = newTable.Columns[i].ColumnName;
				aColumnTextColumn.HeaderText = newTable.Columns[i].ColumnName;
				aColumnTextColumn.NullText = "";
				aColumnTextColumn.Format = "N"; //设置为数字格式显示
				ts.GridColumnStyles.Add(aColumnTextColumn);
			}
			this.dgrd_SellTable.TableStyles.Add(ts);
		}

		//创建窗体,共用户选择客户
		private void cmb_Client_DropDown(object sender, System.EventArgs e)
		{
			ClientDataManage newFrm = new ClientDataManage(false);
			newFrm.setDataGridReadOnly();
			newFrm.ShowDialog();
			setTextData();
			SendKeys.Send("{Tab}");//向活动应用程序发送Tab键,跳到下一控件
		}

		//将所选客户的相关数据读入窗体
		private void cmb_Client_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
		{
			this.txt_Company.Text = "";
			string strSearchWord = this.cmb_ClientID.Text;
			string sendSQL = "select 客户编号,名称 from 客户清单 where 客户编号 = '" + strSearchWord + "'";
			DataTable tempDataTable = this.link.SelectDataBase(sendSQL);		
			if (tempDataTable.Rows.Count>0)
			{
				inputTextDataArray[0] = tempDataTable.Rows[0][0].ToString().Trim();
				inputTextDataArray[1] = tempDataTable.Rows[0][1].ToString().Trim();
				this.setTextData();
				SendKeys.Send("{Tab}");
			}
		}

		private void dgrd_SellTable_DoubleClick(object sender, System.EventArgs e)
		{
			this.doubleClicked();
		}

		private void dgrd_SellTable_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
		{
			//获取当前点击鼠标时的时间
			DataGrid myGrid   = (DataGrid)sender;
			System.Windows.Forms.DataGrid.HitTestInfo myHitTest;
			myHitTest = this.dgrd_SellTable.HitTest(e.X,e.Y);
			if ( myHitTest.Type == System.Windows.Forms.DataGrid.HitTestType.Cell )
				gridMouseDownTime = DateTime.Now;
		}

		private void dgrd_SellTable_CurrentCellChanged(object sender, System.EventArgs e)
		{
			this.selectWareMessage();
			this.controlCalculate();
		}

		//处理鼠标在dataGrid上的单击事件
		private void TextBoxMouseDownHandler(object sender, MouseEventArgs e )
		{
			if( e.Button == MouseButtons.Left && e.Clicks == 2 || DateTime.Now < gridMouseDownTime.AddMilliseconds(SystemInformation.DoubleClickTime))
			{
				this.doubleClicked();
			}
		}

		//在表格中双击,创建窗体以供选择货物或选择仓库
		private void doubleClicked()
		{
			if (this.dgrd_SellTable.CurrentCell.ColumnNumber == 0 )
			{
				this.dgrd_SellTable[dgrd_SellTable.CurrentCell.RowNumber,3] = inputDataGridArray[3] = "";
				WareDataManage newFrm = new WareDataManage(false);
				newFrm.setDataGridReadOnly(true);
				newFrm.ShowDialog();
				setWareData();
				SendKeys.Send("{Tab}");
			}
			
			if (this.dgrd_SellTable.CurrentCell.ColumnNumber == 3)
			{
				string sendStrSQL = "select 仓库,库存数量 from 库存库 where 货号 = '" + dgrd_SellTable[dgrd_SellTable.CurrentCell.RowNumber,0].ToString().Trim() + "' order by 仓库 ASC";
				SelectStorage newFrm = new SelectStorage(sendStrSQL);
				newFrm.ShowDialog();
				setStorageData();
				this.dgrd_SellTable.CurrentCell = new DataGridCell(this.dgrd_SellTable.CurrentCell.ColumnNumber+1,0);
			}
		}

		//向数据库提交数据
		private void clickedSaveIcon()
		{
			try
			{
				string sendSQL = "delete 销售单明细";
				this.link.UpdateDataBase(sendSQL); 
				sendSQL = "delete 销售单";
				this.link.UpdateDataBase(sendSQL);
				//向销售单中写入数据
				int intMaxSellNumberID= 0;
				sendSQL = "select 编号 from 销售单历史";
				DataTable intNumberTable = this.link.SelectDataBase(sendSQL);
				for (int i=0;i<intNumberTable.Rows.Count;i++)
				{
					if (intMaxSellNumberID < System.Int32.Parse(intNumberTable.Rows[i][0].ToString()))
					{
						intMaxSellNumberID = System.Int32.Parse(intNumberTable.Rows[i][0].ToString());
					}
				}
				sendSQL = "select 编号 from 销售单";
				intNumberTable = this.link.SelectDataBase(sendSQL);
				for (int i=0;i<intNumberTable.Rows.Count;i++)
				{
					if (intMaxSellNumberID < System.Int32.Parse(intNumberTable.Rows[i][0].ToString()))
					{
						intMaxSellNumberID = System.Int32.Parse(intNumberTable.Rows[i][0].ToString());
					}
				}
				intMaxSellNumberID++;
				string strClientID = this.cmb_ClientID.Items[0].ToString().Trim();
				string strSellDate = this.txt_SellDate.Text.Trim();
				string strOperator = this.cmb_Oprater.SelectedItem.ToString().Trim();
				string strMaker = this.txt_Maker.Text.Trim();
				decimal decTotalCount = Decimal.Parse(this.txt_TotalCount.Text.Trim());
				decimal decNoTax = Decimal.Parse(this.txt_NoTax.Text.Trim());
				decimal decTax =Decimal.Parse(this.txt_Tax.Text.Trim());
				string sendValues = "('" + intMaxSellNumberID +"','"+ strClientID +"','"+ strSellDate +"','"+ strOperator +"','"+
					strMaker +"','"+ decTotalCount +"','"+ decNoTax +"','"+ decTax + "')";
				sendSQL = "insert 销售单 (编号,客户编号,销售日期,业务员,制单人,税价合计,不含税价,税额) values " + sendValues;
				this.link.UpdateDataBase(sendSQL); 
				//向销售单明细中写入数据
				int intMaxNumberID = 0; 
				sendSQL = "select 编号 from 销售单明细历史";
				intNumberTable = this.link.SelectDataBase(sendSQL);
				for (int i=0;i<intNumberTable.Rows.Count;i++)
				{
					if (intMaxNumberID < System.Int32.Parse(intNumberTable.Rows[i][0].ToString()))
					{
						intMaxNumberID = System.Int32.Parse(intNumberTable.Rows[i][0].ToString());
					}
				}
				sendSQL = "select 编号 from 销售单明细";
				intNumberTable = this.link.SelectDataBase(sendSQL);
				for (int i=0;i<intNumberTable.Rows.Count;i++)
				{
					if (intMaxNumberID < System.Int32.Parse(intNumberTable.Rows[i][0].ToString()))
					{
						intMaxNumberID = System.Int32.Parse(intNumberTable.Rows[i][0].ToString());
					}
				}
				for (int row=0;row<this.newTable.Rows.Count;row++)
				{
					if(this.newTable.Rows[row][0].ToString() == "")
					{
						sendSQL = "delete from 销售单 where 编号 = '" + intMaxSellNumberID + "'";
						this.link.UpdateDataBase(sendSQL);
						break;
					}
					else
					{
						intMaxNumberID++;
						string strWareID = this.dgrd_SellTable[row,0].ToString().Trim();
						decimal strWareCount = Decimal.Parse(this.dgrd_SellTable[row,1].ToString().Trim());
						decimal strWarePrice = Decimal.Parse(this.dgrd_SellTable[row,2].ToString().Trim());
						string strStorageID = this.dgrd_SellTable[row,3].ToString().Trim();
						sendValues = "('" + intMaxNumberID +"','"+intMaxSellNumberID +"','"+ strWareID +"','"+ strWareCount +"','"+ strWarePrice +"','"+
							decTotalCount +"','"+ 17 +"','"+ decNoTax +"','"+ decTax +"','"+ strStorageID + "')";
						sendSQL = "insert 销售单明细 (编号,销售单号,货号,销售数量,销售价,税价合计,税率,不含税价,税额,仓库) values " + sendValues;
						this.link.UpdateDataBase(sendSQL);
					}
				}
				MessageBox.Show("数据保存成功!","信息");
			}
			catch
			{
				MessageBox.Show("数据保存失败,请确认所有信息输入完整且正确!","提示");
				return;
			}
		}

		//将所选择的商品信息读入表格中
		private void selectWareMessage()
		{
			int intCurrentRowNumber = this.dgrd_SellTable.CurrentCell.RowNumber;
			if (this.dgrd_SellTable[intCurrentRowNumber,0].ToString() != "")
			{
				string strSearchWord = this.dgrd_SellTable[this.dgrd_SellTable.CurrentCell.RowNumber,0].ToString().Trim();
				string sendSQL = "select 货号,品名,单位 from 商品清单 where 货号 = '" + strSearchWord + "'";
				DataTable tempDataTable = this.link.SelectDataBase(sendSQL);
				if (tempDataTable.Rows.Count>0)
				{
					inputDataGridArray[0] = tempDataTable.Rows[0][0].ToString().Trim();
					inputDataGridArray[1] = tempDataTable.Rows[0][1].ToString().Trim();
					inputDataGridArray[2] = tempDataTable.Rows[0][2].ToString().Trim();
					this.setWareData();
				}
				//如果从数据库中没有检索出任何数据
				else
				{
					inputDataGridArray[0] = this.dgrd_SellTable[intCurrentRowNumber,0].ToString().Trim(); 
					inputDataGridArray[1] = "";
					inputDataGridArray[2] = "";
					this.setWareData();
				}
			}
		}

		//计算总价,税额等
		private void controlCalculate()
		{
			int intCurrentRowNumber = this.dgrd_SellTable.CurrentCell.RowNumber;
			string strWareCount = this.dgrd_SellTable[intCurrentRowNumber,1].ToString();
			string strWarePrice = this.dgrd_SellTable[intCurrentRowNumber,2].ToString();
			string strTotalCounter = this.dgrd_SellTable[intCurrentRowNumber,6].ToString();
			if (strWareCount != "" && strWarePrice != "" && strTotalCounter=="")
			{
				this.dgrd_SellTable.CurrentCell = new DataGridCell(intCurrentRowNumber+1,0);
			}
			decimal intTotalCount = 0;
			decimal intNoTax = 0;
			decimal intTax = 0;
			object obj = newTable.Compute("SUM (金额)","");
			if (obj.GetType().ToString() != "System.DBNull")
			{
				intTotalCount = (decimal)this.newTable.Compute("SUM (金额)","");
				intNoTax = (decimal)this.newTable.Compute("SUM (不含税额)","");
				intTax = (decimal)this.newTable.Compute("SUM (税额)","");
			}
			this.txt_TotalCount.Text = intTotalCount.ToString("N");
			this.txt_NoTax.Text = intNoTax.ToString("N");
			this.txt_Tax.Text = intTax.ToString("N");
		}

		private void SellTable_Load(object sender, System.EventArgs e)
		{
		
		}

		private void btnSave_Click(object sender, System.EventArgs e)
		{
			clickedSaveIcon();
		}

		private void btnDel_Click(object sender, System.EventArgs e)
		{
			try
			{
				if (newTable.Rows.Count > 0)
				{
					this.newTable.Rows.RemoveAt(this.dgrd_SellTable.CurrentCell.RowNumber);
					this.controlCalculate();
				}
				if (newTable.Rows.Count-1 <= 0)
					newTable.Rows.Add(newTable.NewRow());
			}
			catch
			{
				return;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -