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

📄 selltable.h

📁 Visual C++.net数据库开发经典案例
💻 H
📖 第 1 页 / 共 4 页
字号:
			ts->AllowSorting = false;
			ts->AlternatingBackColor = Color::LightGray;
			
	
			//设置销售单号
			this->ds->Tables->Item[0]->Columns->Item[1]->DefaultValue = intSellID.ToString();			
            //设置编号
			this->ds->Tables->Item[0]->Columns->Item[0]->DefaultValue = S"自动";	
			//设置扣率
			this->ds->Tables->Item[0]->Columns->Item[6]->DefaultValue = __box(1);
			//设置销售价
			this->ds->Tables->Item[0]->Columns->Item[8]->Expression = S"税价合计 - 税额";
			//设置税率
			this->ds->Tables->Item[0]->Columns->Item[7]->DefaultValue = __box(0.15);
			//设置税额
			this->ds->Tables->Item[0]->Columns->Item[9]->Expression = S"税价合计 * 税率";
			//设置税价合计
			this->ds->Tables->Item[0]->Columns->Item[5]->Expression = S"(销售数量 * 销售价) * 扣率";
			

			int numCols = this->ds->Tables->Item[0]->Columns->Count;
			if(isModifiable)
			{
				DataGridTextBoxColumn* aColumnTextColumn;
				for(int i = 0;i < numCols;i++)
				{				
					aColumnTextColumn = new DataGridTextBoxColumn();				
					if(i == 0 || i == 1)
					{
						aColumnTextColumn->ReadOnly = true;
					}
					if(i == 2)
					{	
						aColumnTextColumn->get_TextBox()->add_DoubleClick(new EventHandler(this,WareIDDoubleClickHandler));						
						aColumnTextColumn->MappingName = this->ds->Tables->Item[0]->Columns->Item[i]->ColumnName;
						aColumnTextColumn->HeaderText =  String::Format(S"{0}(双击)",this->ds->Tables->Item[0]->Columns->Item[i]->ColumnName);
						aColumnTextColumn->NullText = String::Empty;					
					}
					else if(i == 10)
					{	
						aColumnTextColumn->get_TextBox()->add_DoubleClick(new EventHandler(this,StorageIDDoubleClickHandler));
						aColumnTextColumn->MappingName = this->ds->Tables->Item[0]->Columns->Item[i]->ColumnName;
						aColumnTextColumn->HeaderText =  String::Format(S"{0}(双击)",this->ds->Tables->Item[0]->Columns->Item[i]->ColumnName);
						aColumnTextColumn->NullText = String::Empty;
					}
					else if(i == 3)
					{
						//检查库存
						//aColumnTextColumn->get_TextBox()->add_LostFocus(new EventHandler(this,StorageCheckHandler));
						//this->ds->Tables->Item[0]->Columns->Item[i]->DataType = System::Type::GetType(S"System.Decimal");
						aColumnTextColumn->ReadOnly = true;
						aColumnTextColumn->MappingName = this->ds->Tables->Item[0]->Columns->Item[i]->ColumnName;
						aColumnTextColumn->HeaderText = this->ds->Tables->Item[0]->Columns->Item[i]->ColumnName;
						aColumnTextColumn->NullText = String::Empty;
					}
					else
					{					
						aColumnTextColumn->MappingName = this->ds->Tables->Item[0]->Columns->Item[i]->ColumnName;
						aColumnTextColumn->HeaderText = this->ds->Tables->Item[0]->Columns->Item[i]->ColumnName;
						aColumnTextColumn->NullText = String::Empty;
                        
					}
					//显示库存
					aColumnTextColumn->get_TextBox()->add_Enter(new EventHandler(this,StorageHandler));
					//设为数字格式显示
					aColumnTextColumn->Format = S"N";
					ts->GridColumnStyles->Add(aColumnTextColumn);

				}
			}
			else
			{
				DataGridNoActiveCellColumn* aColumnTextColumn;
				for(int i = 0;i < numCols;i++)
				{				
					aColumnTextColumn = new DataGridNoActiveCellColumn();
					aColumnTextColumn->MappingName = this->ds->Tables->Item[0]->Columns->Item[i]->ColumnName;
					aColumnTextColumn->HeaderText = this->ds->Tables->Item[0]->Columns->Item[i]->ColumnName;
					aColumnTextColumn->NullText = String::Empty;
					aColumnTextColumn->Format = S"N";
					ts->GridColumnStyles->Add(aColumnTextColumn);
				}
			}
			this->dgrdSellTable->TableStyles->Add(ts);
			
		}
		//---------------------处理保存修改,删除和存入历史等功能-------------------

	private: System::Void toolBar1_ButtonClick(System::Object *  sender, System::Windows::Forms::ToolBarButtonClickEventArgs *  e)
			 {
				 //查看销售单
				 if(String::Compare(e->Button->ToolTipText,S"查看") == 0)
				 {
					 SelectSellTable* tempFrm = new SelectSellTable(NULL);					 
					 if(tempFrm->ShowDialog(this) == DialogResult::OK)
					 {
						 String* tempSQL;
						 String* tempTable;
						 //清除旧的查询
						 //用ds->Clear()只能清除ds中的数据
						 ds->Tables->Clear();
						 this->dgrdSellTable->TableStyles->Clear();
						 //查询销售单明细
						 this->intSellID = System::Int32::Parse(tempFrm->SendSellID->Trim());
						 this->strSQL = String::Format("Select * from 销售单明细 where 销售单号 = '{0}'",this->intSellID.ToString());
						 this->strTableName = S"销售单明细";
						 this->MyDataBase->SelectDataBase(this->SellDetailAdpater,this->ds,this->strSQL,this->strTableName);
						 this->dgrdSellTable->DataSource = ds->Tables->Item[0];
						 //查询销售单
						 this->strSQL = String::Format("Select * from 销售单 where 编号 = '{0}'",tempFrm->SendSellID);
						 this->strTableName = S"销售单";
						 this->MyDataBase->SelectDataBase(this->SellTableAdpater,this->ds,this->strSQL,this->strTableName);
						 //查询库存
						 this->strSQL = new String("Select * from 库存库");
						 this->strTableName = S"库存";
						 this->MyDataBase->SelectDataBase(this->StorageAdpater,this->ds,this->strSQL,this->strTableName);
						 //查询客户
						 tempSQL = String::Format("Select * from 客户清单 where 客户编号 = '{0}'",this->ds->Tables->Item[S"销售单"]->Rows->Item[0]->Item[S"客户编号"]->ToString()->Trim());
						 tempTable = S"客户清单";
						 this->MyDataBase->SelectDataBase(this->ds,tempSQL,tempTable);
						 
						 //设置销售单信息
						 this->tBoxSellDate->Text = this->ds->Tables->Item[S"销售单"]->Rows->Item[0]->Item[S"销售日期"]->ToString()->Trim();
						 this->tBoxMaker->Text = this->ds->Tables->Item[S"销售单"]->Rows->Item[0]->Item[S"制单人"]->ToString()->Trim();
						 this->cmbOperator->Text = this->ds->Tables->Item[S"销售单"]->Rows->Item[0]->Item[S"业务员"]->ToString()->Trim();
						 this->tBoxClientID->Text = this->ds->Tables->Item[S"客户清单"]->Rows->Item[0]->Item[S"客户编号"]->ToString()->Trim();
						 this->tBoxClientName->Text = this->ds->Tables->Item[S"客户清单"]->Rows->Item[0]->Item[S"名称"]->ToString()->Trim();
                        
						 //设置数据表
						 this->DataGridStateControl(false);
						 this->dgrdSellTable->DataSource = ds->Tables->Item[S"销售单明细"];
						 
						 //查看时不能更改销售单
						 this->dgrdSellTable->ReadOnly = true;					 
						 this->dgrdSellTable->Enabled = true;
						 this->button1->Enabled = false;
						 //设置工具栏
						 this->tbarSave->Enabled = false;
						 this->tbarDelete->Enabled = true;
						 

					 }
				 }
				 //新建销售单
				 else if(String::Compare(e->Button->ToolTipText,S"新建") == 0)
				 {	
					 //清除旧的查询
					 ds->Tables->Clear();
					 this->dgrdSellTable->TableStyles->Clear();

					 String* tempSQL = new String("Select 编号 from 销售单");
					 SqlCommand* sqlCmd = new SqlCommand(tempSQL,this->MyDataBase->myConnection);
					 SqlDataReader* reader = sqlCmd->ExecuteReader();
					 //设置新销售单的编号
					 intSellID = 0;
					 while(reader->Read())
					 {
						 if(intSellID < System::Int32::Parse(reader->Item[0]->ToString()))
							 intSellID = System::Int32::Parse(reader->Item[0]->ToString());
					 }
					 intSellID++;
					 //设置明细条目的编号
					 reader->Dispose();
					 sqlCmd->CommandText = new String("Select 编号 from 销售单明细");
					 reader = sqlCmd->ExecuteReader();

					 NewDetailID = 0;
					 while(reader->Read())
					 {
						 if(NewDetailID < System::Int32::Parse(reader->Item[0]->ToString()))
							NewDetailID = System::Int32::Parse(reader->Item[0]->ToString());
					 }
					 NewDetailID++;
					 reader->Close();
					 //查询销售单明细
					 this->strSQL = String::Format("Select * from 销售单明细 where 销售单号 = '{0}'",this->intSellID.ToString());
					 this->strTableName = S"销售单明细";
					 this->MyDataBase->SelectDataBase(this->SellDetailAdpater,this->ds,this->strSQL,this->strTableName);					 
					 //查询销售单
					 this->strSQL = String::Format("Select * from 销售单 where 编号 = '{0}'",this->intSellID.ToString());
					 this->strTableName = S"销售单";
					 this->MyDataBase->SelectDataBase(this->SellTableAdpater,this->ds,this->strSQL,this->strTableName);
					 //查询库存
					 this->strSQL = new String("Select * from 库存库");
					 this->strTableName = S"库存";
					 this->MyDataBase->SelectDataBase(this->StorageAdpater,this->ds,this->strSQL,this->strTableName);
					 //设置数据表
					 this->DataGridStateControl(true);
					 this->dgrdSellTable->DataSource = ds->Tables->Item[0];
					 //新建销售单
					 DataRow* NewSellTableRow = this->ds->Tables->Item[S"销售单"]->NewRow();
					 NewSellTableRow->set_Item(S"编号",__box(intSellID));
					 this->ds->Tables->Item[S"销售单"]->Rows->Add(NewSellTableRow);
					 //在销售单明细中添加一行
					 //DataRow* NewSellDetailRow = this->ds->Tables->Item[S"销售单明细"]->NewRow();
					 //NewSellDetailRow->set_Item(S"销售单号",__box(intSellID));
					 //this->ds->Tables->Item[S"销售单明细"]->Rows->Add(NewSellDetailRow);
					 //设置销售单信息
					 this->SetcmbOperator();

					 //可以修改销售单
					 this->dgrdSellTable->ReadOnly = false;					 
					 this->dgrdSellTable->Enabled = true;
					 this->button1->Enabled = true;
					 //设置工具栏
					 this->tbarSave->Enabled = true;
					 this->tbarDelete->Enabled = false;
				 }
				 //保存数据
				 else if(String::Compare(e->Button->ToolTipText,S"保存修改") == 0)
				 {				 
					 try
					 {	
						 //更新销售单
						 if(String::Compare(this->tBoxClientID->Text,String::Empty) == 0)
						 {
							 MessageBox::Show(S"请选择客户",S"提示");
							 return;
						 }
						 String* Filter = String::Format(S"编号 = '{0}'",__box(this->intSellID));
						 DataRow* rows[] = this->ds->Tables->Item[S"销售单"]->Select(Filter);
						 rows[0]->Item[S"客户编号"] = this->InputClientID;
						 rows[0]->Item[S"销售日期"] = this->tBoxSellDate->Text;
						 rows[0]->Item[S"制单人"] = this->tBoxMaker->Text;
						 rows[0]->Item[S"业务员"] = this->cmbOperator->Text;
						 rows[0]->Item[S"税价合计"] = __box(System::Double::Parse(this->tBoxTotal->Text));
						 rows[0]->Item[S"不含税价"] = __box(System::Double::Parse(this->tBoxTotalNoTax->Text));
						 rows[0]->Item[S"税额"] = __box(System::Double::Parse(this->tBoxTax->Text));

						 this->MyDataBase->UpdateDataBase(this->SellTableAdpater,this->ds,S"销售单");
						 						 
						 //更新销售单明细
						 
						 for(int i = 0;i < this->ds->Tables->Item[S"销售单明细"]->Rows->Count;i++)
						 {
							 //更新编号
							 this->ds->Tables->Item[S"销售单明细"]->Rows->Item[i]->set_Item(S"编号",__box(this->NewDetailID + i));
							 //String* temp = this->ds->Tables->Item[S"销售单明细"]->Rows->Item[i]->Item[S"税价合计"]->ToString();
						 }
						 this->tBoxSellDate->Focus();
                         this->MyDataBase->UpdateDataBase(this->SellDetailAdpater,this->ds,S"销售单明细");	
						 //更新库存
						 //this->MyDataBase->UpdateDataBase(this->StorageAdpater,this->ds,S"库存");						 
					 }
					 catch(Exception* e)
					 {
						 String* temp = String::Format("{0}: {1}",e->get_Source(),e->Message);
						 MessageBox::Show(temp,S"错误");
						 return;
					 }

					 MessageBox::Show(S"数据修改成功!",S"提示");
				 }
				 else if(String::Compare(e->Button->ToolTipText,S"打印") == 0)
				 {
					 SellTableReportForm* tempFrm = new SellTableReportForm(this->intSellID.ToString());
					 tempFrm->ShowDialog(this);
					  String* tempSQL = S"exec sf_销售单";
					  this->MyDataBase->SQLOperate(tempSQL);
					  NewSellTable();
				 }
				 else if(String::Compare(e->Button->ToolTipText,S"删除") == 0)
				 {
					/* if(MessageBox::Show(S"确实要删除销售单吗?",S"询问",MessageBoxButtons::YesNo) == DialogResult::Yes)
					 {		
						 String* tempSQL;
						 try

⌨️ 快捷键说明

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