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

📄 stocktable.h

📁 Visual C++.net数据库开发经典案例
💻 H
📖 第 1 页 / 共 4 页
字号:
						 MessageBox::Show(e->Message,S"提示");							
					 }
				 }	
				 */
				 int row = this->dgrdImportTable->CurrentRowIndex;
				 this->ds->Tables->Item[S"进货单明细"]->Rows->Item[row]->Delete();
			 }
		 }
public:
		void WareIDDoubleClickHandler(System::Object* sender,EventArgs* e)
		{
			WareDataManage* tempFrm = new WareDataManage(false);
			tempFrm->SetDataGridReadOnly(true);	
			if(tempFrm->ShowDialog(this) == DialogResult::OK)
			{
				this->InputWareID = tempFrm->SendWareID;
				this->InputWareName = tempFrm->SendWareName;
				this->dgrdImportTable->set_Item(this->dgrdImportTable->CurrentCell,this->InputWareID);
				this->dgrdImportTable->Select(this->dgrdImportTable->CurrentCell.RowNumber);
			}
		}
		void StorageIDDoubleClickHandler(System::Object* sender,EventArgs* e)
		{
			this->InputWareID = this->dgrdImportTable->get_Item(this->dgrdImportTable->CurrentCell.RowNumber,2)->ToString();
			if(String::Compare(this->InputWareID,String::Empty) == 0)
				return;
			String* Filter = String::Format("货号 = '{0}'",this->InputWareID);
			DataRow* rows[] = this->ds->Tables->Item[S"库存"]->Select(Filter);
			if(rows->Length == 0)
			{
				if(MessageBox::Show(S"该货物没有库存,新增库存记录?",S"提示",System::Windows::Forms::MessageBoxButtons::YesNo) == DialogResult::Yes)
				{
					DataRow* row = this->ds->Tables->Item[S"库存"]->NewRow();
					row->Item[S"货号"] = this->InputWareID;
					row->Item[S"仓库"] = S"2库";
					row->Item[S"库存数量"] = __box(0);
					row->Item[S"库存金额"] = __box(0);
					row->Item[S"库存单价"] = __box(0);
					this->ds->Tables->Item[S"库存"]->Rows->Add(row);
					MessageBox::Show(S"请填写仓库,数量等信息");
				}
				else
				{
					return;
				}
			}
			SelectStorage* tempFrm = new SelectStorage(this->ds->Tables->Item[S"库存"],this->InputWareID);
			tempFrm->nnupExPort->Visible = false;
			tempFrm->label1->Visible = false;
				
			if(tempFrm->ShowDialog(this) == DialogResult::OK)
			{
				this->InputStorageName = tempFrm->SendStorageID;
				this->InputStorage = tempFrm->SendStorage;
				int tempStorage = (int)System::Double::Parse(this->InputStorage->Trim());
				int tempImport = (int)System::Double::Parse(tempFrm->Import->Trim());
				tempStorage = tempStorage + tempImport;
				this->InputStorage = System::Convert::ToString(tempStorage);

				int row = this->dgrdImportTable->CurrentCell.RowNumber;				
                this->dgrdImportTable->set_Item(row,10,this->InputStorageName);
				this->dgrdImportTable->set_Item(row,3,__box(tempImport));
				//this->ds->Tables->Item[S"进货单明细"]->Rows->Item[row]->set_Item(S"仓库",this->InputStorageName);
				//this->ds->Tables->Item[S"进货单明细"]->Rows->Item[row]->set_Item(S"进货数量",__box(tempExport));
				//设置库存
				String* Filter = String::Format("货号 = '{0}'AND 仓库 = '{1}'",this->InputWareID,this->InputStorageName);
				DataRow* StorageRows[] = this->ds->Tables->Item[S"库存"]->Select(Filter);
				if(StorageRows->Length > 0)
				{
					StorageRows[0]->set_Item(S"库存数量",this->InputStorage);
				}
			}	

		}
		void StoragePriceHandler(System::Object* sender,EventArgs* e)
		{
			Double ImportQuantity;
//			Double Storage;
			//获得进货数量
			String* temp = this->dgrdImportTable->get_Item(this->dgrdImportTable->CurrentCell.RowNumber,3)->ToString()->Trim();
			if(temp != System::String::Empty)
				ImportQuantity = System::Double::Parse(temp);
			else
				return;
			this->InputWareID = this->dgrdImportTable->get_Item(this->dgrdImportTable->CurrentCell.RowNumber,2)->ToString();
			this->InputStorageName = this->dgrdImportTable->get_Item(this->dgrdImportTable->CurrentCell.RowNumber,10)->ToString();

			String* Filter = String::Format("货号 = '{0}'AND 仓库 = '{1}'",this->InputWareID,this->InputStorageName);
			DataRow* StorageRows[] = this->ds->Tables->Item[S"库存"]->Select(Filter);
			
		}
		//显示当前库存
		void StorageHandler(System::Object* sender,EventArgs* e)
		{
			//int ImportQuantity = 0;
			int Storage = 0;
			int row = this->dgrdImportTable->CurrentCell.RowNumber; 
			this->InputWareID = this->dgrdImportTable->get_Item(this->dgrdImportTable->CurrentCell.RowNumber,2)->ToString();
			this->InputStorageName = this->dgrdImportTable->get_Item(this->dgrdImportTable->CurrentCell.RowNumber,10)->ToString();

			String* Filter = String::Format("货号 = '{0}'AND 仓库 = '{1}'",this->InputWareID,this->InputStorageName);
			DataRow* StorageRows[] = this->ds->Tables->Item[S"库存"]->Select(Filter);

			tBoxWareID->Text = this->InputWareID;
			if(String::Compare(this->InputStorageName,String::Empty) == 0)
			{
				tBoxStorage->Text = S"";

			}
			else if(StorageRows->Length > 0)
			{
				tBoxStorage->Text = StorageRows[0]->Item[S"库存数量"]->ToString()->Trim();
			}
			//DataRow* StorageHistoryRows[] = this->ds->Tables->Item[S"库存历史"]->Select(Filter);
            //DataRow* ImportDetailRows[] = this->ds->Tables->Item[S"进货单明细"]->Select(Filter);

			/*if(StorageRows->Length > 0 && ImportDetailRows->Length > 0)
			{
				String* temp;
				for(int i = 0;i < ImportDetailRows->Length;i++)
				{
					temp = ImportDetailRows[i]->get_Item(S"进货数量")->ToString()->Trim();
					
					if(temp != System::String::Empty)
					{
						int j = temp->IndexOf(S".");
						temp = temp->Remove(j,temp->Length - j);
						ImportQuantity += System::Int32::Parse(temp);
					}
				}
				temp = StorageRows[0]->get_Item(S"库存数量")->ToString()->Trim();
				if(temp != System::String::Empty)
				{
					int j = temp->IndexOf(S".");
					temp = temp->Remove(j,temp->Length - j);
					ImportQuantity += System::Int32::Parse(temp);
					Storage = System::Int32::Parse(temp);
				}				
				int StorageLeft = Storage - ImportQuantity;
				if(StorageLeft < 0)
					StorageLeft = 0;

				tBoxStorage->Text = String::Format("{0}",__box(StorageLeft));
				tBoxWareID->Text = this->InputWareID;

				//修改库存			
				StorageHistoryRows[0]->set_Item(S"库存数量",__box(StorageLeft));

			}
			else
			{
				tBoxWareID->Text = this->InputWareID;
				tBoxStorage->Text = S"0";
			}
			*/
		}
			 //更新进货单明细
private: static void UpdateImportDetail(Object* sender, SqlRowUpdatingEventArgs* e)
		 {
			 if(e->StatementType != StatementType::Delete)
			 {				 
				 e->Command->Parameters->Item[S"@税价合计"]->Value = e->Row->Item[S"税价合计"]->ToString()->Trim();
                 e->Command->Parameters->Item[S"@不含税价"]->Value = e->Row->Item[S"不含税价"]->ToString()->Trim();
				 e->Command->Parameters->Item[S"@税额"]->Value = e->Row->Item[S"税额"]->ToString()->Trim();
			 }
		 }
		 //更新库存
private: static void UpdateStorage(Object* sender, SqlRowUpdatingEventArgs* e)
		 {
			 if(e->StatementType == StatementType::Update)
			 {				 
				 e->Command->Parameters->Item[S"@货号"]->Value = e->Row->Item[S"货号"]->ToString()->Trim();
                 e->Command->Parameters->Item[S"@仓库"]->Value = e->Row->Item[S"仓库"]->ToString()->Trim();
				 e->Command->Parameters->Item[S"@库存数量"]->Value = e->Row->Item[S"库存数量"]->ToString()->Trim();
			 }
			 if(e->StatementType == StatementType::Insert)
			 {				 
				 e->Command->Parameters->Item[S"@货号"]->Value = e->Row->Item[S"货号"]->ToString()->Trim();
                 e->Command->Parameters->Item[S"@仓库"]->Value = e->Row->Item[S"仓库"]->ToString()->Trim();
				 e->Command->Parameters->Item[S"@库存数量"]->Value = e->Row->Item[S"库存数量"]->ToString()->Trim();
				 e->Command->Parameters->Item[S"@库存金额"]->Value = e->Row->Item[S"库存金额"]->ToString()->Trim();
				 e->Command->Parameters->Item[S"@库存单价"]->Value = e->Row->Item[S"库存单价"]->ToString()->Trim();
			 }
		 }
private: System::Void dgrdImportTable_MouseMove(System::Object *  sender, System::Windows::Forms::MouseEventArgs *  e)
		 {
			  //计算总价
			 Object* obj = this->ds->Tables->Item[S"进货单明细"]->Compute(S"SUM(税价合计)",S"");
			 if(obj != System::DBNull::Value)
			 {
				 //如果数据表不为空,则进行计算
				 String * TotalCount = this->ds->Tables->Item[S"进货单明细"]->Compute(S"SUM(税价合计)",S"")->ToString();
				 String * TotalCountNoTax = this->ds->Tables->Item[S"进货单明细"]->Compute(S"SUM(不含税价)",S"")->ToString();
				 String * TotalTax = this->ds->Tables->Item[S"进货单明细"]->Compute(S"SUM(税额)",S"")->ToString();
				
				 this->tBoxTotal->Text = TotalCount->ToString();
				 this->tBoxTotalNoTax->Text = TotalCountNoTax->ToString();
				 this->tBoxTax->Text = TotalTax->ToString();
			 }

		 }

private: System::Void dgrdImportTable_MouseHover(System::Object *  sender, System::EventArgs *  e)
		 {
		 }
public: void NewImportTable()
		 {
			 //清除旧的查询
				 ds->Tables->Clear();
				 this->dgrdImportTable->TableStyles->Clear();

				 String* tempSQL = new String("Select 编号 from 进货单历史");
				 SqlCommand* sqlCmd = new SqlCommand(tempSQL,this->MyDataBase->myConnection);
				 SqlDataReader* reader = sqlCmd->ExecuteReader();
				 //设置新进货单的编号
				 intImportID = 0;
				 while(reader->Read())
				 {
					 if(intImportID < System::Int32::Parse(reader->Item[0]->ToString()))
						 intImportID = System::Int32::Parse(reader->Item[0]->ToString());
				 }
				 intImportID++;
				 //设置明细条目的编号
				 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->intImportID.ToString());
				 this->strTableName = S"进货单明细";
				 this->MyDataBase->SelectDataBase(this->ImportDetailAdpater,this->ds,this->strSQL,this->strTableName);					 
				 //查询进货单
				 this->strSQL = String::Format("Select * from 进货单 where 编号 = '{0}'",this->intImportID.ToString());
				 this->strTableName = S"进货单";
				 this->MyDataBase->SelectDataBase(this->ImportTableAdpater,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->dgrdImportTable->DataSource = ds->Tables->Item[S"进货单明细"];
				 //新建进货单
				 DataRow* NewImportTableRow = this->ds->Tables->Item[S"进货单"]->NewRow();
				 NewImportTableRow->set_Item(S"编号",__box(intImportID));
				 this->ds->Tables->Item[S"进货单"]->Rows->Add(NewImportTableRow);
				 //在进货单明细中添加一行
				 //DataRow* NewImportDetailRow = this->ds->Tables->Item[S"进货单明细"]->NewRow();
				 //NewImportDetailRow->set_Item(S"进货单号",__box(intImportID));
				 //this->ds->Tables->Item[S"进货单明细"]->Rows->Add(NewImportDetailRow);
				 //设置进货单信息
				 this->SetcmbOperator();

				 //可以修改进货单
				 this->dgrdImportTable->ReadOnly = false;					 
				 this->dgrdImportTable->Enabled = true;
				 this->button1->Enabled = true;
				 //设置工具栏
				 this->tbarSave->Enabled = true;
				 this->tbarDelete->Enabled = true;

				 //设置显示
				 this->tBoxMaker->Text = S"";
				 this->tBoxStockerID->Text = S"";
				 this->tBoxStockerName->Text = S"";
				 this->tBoxStorage->Text = S"";
				 this->tBoxTotal->Text = S"";
				 this->tBoxTax->Text = S"";
				 this->tBoxTotalNoTax->Text = S"";
				 this->tBoxWareID->Text = S"";
		 }

};
}

⌨️ 快捷键说明

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