?? class1.cs
字號(hào):
private string strCustomerID = "";
#region 控件事件代碼
private void btnOrdersMovePrevious_Click(object sender, System.EventArgs e)
{
MovePrior();
}
private void btnExit_Click_1(object sender, System.EventArgs e)
{
if(dsOneToMany.HasChanges())
{
DialogResult result = MessageBox.Show("數(shù)據(jù)已被修改,是否保存修改?", "是否保存", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
if(result == DialogResult.Yes)
SubmitChanges();
else if(result == DialogResult.Cancel)
return;
}
this.Close();
}
private void btnSubmitChanges_Click(object sender, System.EventArgs e)
{
SubmitChanges();
}
private void btnDetailsDelete_Click(object sender, System.EventArgs e)
{
DeleteDetails();
}
private void btnDetailsAdd_Click(object sender, System.EventArgs e)
{
AddDetails();
}
private void grdDetails_Navigate(object sender, System.Windows.Forms.NavigateEventArgs ne)
{
}
private void btnDetailsEdit_Click(object sender, System.EventArgs e)
{
EditDetails();
}
private void btnOrdersCancel_Click(object sender, System.EventArgs e)
{
RevertOrders();
}
private void btnOrdersUpdate_Click(object sender, System.EventArgs e)
{
UpdateOrders();
}
private void btnOrdersDelete_Click(object sender, System.EventArgs e)
{
DeleteOrder();
}
private void btnOrdersAdd_Click(object sender, System.EventArgs e)
{
AddNewOrder();
}
private void btnOrdersEdit_Click_1(object sender, System.EventArgs e)
{
EditOrder();
}
private void btnOrdersMoveLast_Click(object sender, System.EventArgs e)
{
MoveLast();
}
private void lblOrdersPosition_Click(object sender, System.EventArgs e)
{
}
private void btnOrdersMoveNext_Click(object sender, System.EventArgs e)
{
MoveNext();
}
private void btnOrdersEdit_Click(object sender, System.EventArgs e)
{
EditOrder();
}
private void btnOrdersAdd_Click_1(object sender, System.EventArgs e)
{
AddNewOrder();
}
private void btnExit_Click(object sender, System.EventArgs e)
{
if(dsOneToMany.HasChanges())
{
DialogResult result = MessageBox.Show("數(shù)據(jù)已被修改,是否保存修改?", "是否保存", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
if(result == DialogResult.Yes)
SubmitChanges();
else if(result == DialogResult.Cancel)
return;
}
this.Close();
}
#endregion
#region 記錄指針移動(dòng)
private void MoveFirst()
{
if((vueOrders.Count > 0) && (BindingContext[vueOrders].Position != 0))
{
BindingContext[vueOrders].Position = 0;
int currentOrderID = (int)vueOrders[BindingContext[vueOrders].Position].Row["編號(hào)"];
int newOrdersPosition = 0;
while(dsOneToMany. 銷售訂單[newOrdersPosition]. 銷售訂單 != currentOrderID)
newOrdersPosition++;
BindingContext[dsOneToMany, "Orders"].Position = newOrdersPosition;
ShowCurrentOrder();
}
}
private void MovePrior()
{
if(BindingContext[vueOrders].Position > 0)
{
BindingContext[vueOrders].Position--;
int currentOrderID = (int)vueOrders[BindingContext[vueOrders].Position].Row["OrderID"];
int newOrdersPosition = BindingContext[dsOneToMany, " 銷售訂單"].Position;
while(dsOneToMany.銷售訂單[newOrdersPosition].OrderID != currentOrderID)
newOrdersPosition--;
BindingContext[dsOneToMany, " 銷售訂單"].Position = newOrdersPosition;
ShowCurrentOrder();
}
}
private void MoveNext()
{
if(vueOrders.Count > BindingContext[vueOrders].Position + 1)
{
BindingContext[vueOrders].Position++;
int currentOrderID = (int)vueOrders[BindingContext[vueOrders].Position].Row["訂單編號(hào)"];
int newOrdersPosition = BindingContext[dsOneToMany, " 銷售訂單"].Position;
while(dsOneToMany. 銷售訂單[newOrdersPosition].訂單編號(hào) != currentOrderID)
newOrdersPosition ++;
BindingContext[dsOneToMany, "銷售訂單"].Position = newOrdersPosition;
ShowCurrentOrder();
}
}
private void MoveLast()
{
if(vueOrders.Count > BindingContext[vueOrders].Position + 1)
{
BindingContext[vueOrders].Position = vueOrders.Count - 1;
int currentOrderID = (int)vueOrders[BindingContext[vueOrders].Position].Row["訂單編號(hào)"];
int newOrdersPosition = dsOneToMany.Orders.Count - 1;
while(dsOneToMany.銷售訂單[newOrdersPosition].訂單編號(hào) != currentOrderID)
newOrdersPosition--;
BindingContext[dsOneToMany, " 銷售訂單"].Position = newOrdersPosition;
ShowCurrentOrder();
}
}
private void ShowCurrentOrder()
{
lblOrdersPosition.Text = "訂單 " + (BindingContext[vueOrders].Position + 1) + " 總數(shù) " + vueOrders.Count;
if(vueOrders.Count != 0)
vueDetails.RowFilter = "OrderID = " + vueOrders[BindingContext[vueOrders].Position].Row["OrderID"];
}
#endregion
#region 編輯、添加、刪除訂單記錄
private int oldVueOrdersPosition, oldOrdersPosition;
private bool addMode = false;
private void EditOrder()
{
if (vueOrders.Count > 0)
{
SetOrdersEditMode(true);
dsOneToMany.銷售訂單[this.BindingContext[dsOneToMany, "銷售訂單"].Position].BeginEdit();
}
else
MessageBox.Show("沒有找到任何可以編輯的訂單記錄!", "訂單編輯", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
private void AddNewOrder()
{
oldVueOrdersPosition = this.BindingContext[vueOrders].Position;
oldOrdersPosition = BindingContext[dsOneToMany, "銷售訂單"].Position;
addMode = true;
DSOneToMany.OrdersRow orderRow = dsOneToMany.銷售訂單.NewOrdersRow();
orderRow.客戶編號(hào) = strCustomerID;
orderRow.業(yè)務(wù)員號(hào) = dsOneToMany.業(yè)務(wù)員號(hào)[0].業(yè)務(wù)員號(hào);
orderRow.銷售日期 = DateTime.Now;
dsOneToMany.銷售訂單.AddOrdersRow(orderRow);
BindingContext[dsOneToMany, "銷售訂單"].Position = dsOneToMany.銷售訂單.Count - 1;
BindingContext[vueOrders].Position = vueOrders.Count - 1;
dsOneToMany.銷售訂單[BindingContext[dsOneToMany, "銷售訂單"].Position].BeginEdit();
SetOrdersEditMode(true);
ShowCurrentOrder();
}
private void DeleteOrder()
{
if (vueOrders.Count > 0)
{
vueOrders.Delete(this.BindingContext[vueOrders].Position);
if (vueOrders.Count > 0)
{
if (BindingContext[vueOrders].Position == vueOrders.Count)
{
int currentOrderID = (int)vueOrders[BindingContext[vueOrders].Position].Row["銷售訂單"];
int newOrdersPosition = BindingContext[dsOneToMany, "銷售訂單"].Position;
while(dsOneToMany.銷售訂單[newOrdersPosition].編號(hào) != currentOrderID)
newOrdersPosition--;
BindingContext[dsOneToMany, "銷售訂單"].Position = newOrdersPosition;
}
}
ShowCurrentOrder();
}
else
MessageBox.Show("沒有可以刪除的訂單記錄!", "刪除訂單", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
private void SetOrdersEditMode(bool blnEdit)
{
txtCustomerID.ReadOnly = !blnEdit;
txtOrderDate.ReadOnly = !blnEdit;
cboEmployee.Enabled = blnEdit;
btnOrdersMoveFirst.Enabled = !blnEdit;
btnOrdersMovePrevious.Enabled = !blnEdit;
btnOrdersMoveNext.Enabled = !blnEdit;
btnOrdersMoveLast.Enabled = !blnEdit;
btnOrdersCancel.Enabled = blnEdit;
btnOrdersUpdate.Enabled = blnEdit;
btnOrdersEdit.Enabled = !blnEdit;
btnOrdersAdd.Enabled = !blnEdit;
btnOrdersDelete.Enabled = !blnEdit;
btnSubmitChanges.Enabled = !blnEdit;
btnDetailsEdit.Enabled = !blnEdit;
btnDetailsAdd.Enabled = !blnEdit;
btnDetailsDelete.Enabled = !blnEdit;
}
#endregion
#region 保存、撤銷對(duì)訂單記錄的修改
private void UpdateOrders()
{
BindingContext[dsOneToMany, "銷售訂單"].EndCurrentEdit();
if(addMode)
{
addMode = false;
this.BindingContext[vueOrders].Position = vueOrders.Count - 1;
}
SetOrdersEditMode(false);
ShowCurrentOrder();
}
private void RevertOrders()
{
BindingContext[dsOneToMany, "銷售訂單"].CancelCurrentEdit();
if(addMode)
{
addMode = false;
DeleteOrder();
this.BindingContext[vueOrders].Position = oldVueOrdersPosition;
BindingContext[dsOneToMany, "銷售訂單"].Position = oldOrdersPosition;
}
SetOrdersEditMode(false);
ShowCurrentOrder();
}
#endregion
#region 修改訂單明細(xì)數(shù)據(jù)
private void EditDetails()
{
if (vueDetails.Count > 0)
{
frmEditDetail frmEditDetail = new frmEditDetail();
frmEditDetail.EditDetail(vueDetails[grdDetails.CurrentRowIndex]);
frmEditDetail.Dispose();
}
else
MessageBox.Show("沒有當(dāng)前訂單!", "添加訂單明細(xì)", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
private void AddDetails()
{
if (dsOneToMany.銷售訂單.Count == 0)
{
MessageBox.Show("沒有當(dāng)前訂單!", "添加訂單明細(xì)", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
DataRowView drvNewDetail = vueDetails.AddNew();
drvNewDetail["銷售訂單"] = dsOneToMany.銷售訂單[this.BindingContext[dsOneToMany, "銷售訂單"].Position].編號(hào);
frmEditDetail frmEditDetail = new frmEditDetail();
frmEditDetail.EditDetail(drvNewDetail);
frmEditDetail.Dispose();
}
private void DeleteDetails()
{
if (vueDetails.Count > 0)
vueDetails[grdDetails.CurrentRowIndex].Delete();
else
MessageBox.Show("沒有可以刪除的訂單明細(xì)項(xiàng)!", "訂單明細(xì)刪除", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
#endregion
#region 提交更新
private void SubmitChanges()
{
if (dsOneToMany.HasChanges())
{
conn.Open();
SqlTransaction txn = conn.BeginTransaction();
adpOrders.UpdateCommand.Transaction = txn;
adpOrders.InsertCommand.Transaction = txn;
adpOrders.DeleteCommand.Transaction = txn;
adpDetails.UpdateCommand.Transaction = txn;
adpDetails.InsertCommand.Transaction = txn;
adpDetails.DeleteCommand.Transaction = txn;
try
{
int intOrdersModified, intDetailsModified;
intOrdersModified = adpOrders.Update(dsOneToMany.銷售訂單.Select("", "", DataViewRowState.Added | DataViewRowState.ModifiedCurrent));
intDetailsModified = adpDetails.Update(dsOneToMany.銷售訂單明細(xì));
intOrdersModified += adpOrders.Update(dsOneToMany.銷售訂單.Select("", "", DataViewRowState.Deleted));
txn.Commit();
MoveFirst();
string strOutput;
strOutput = "已修改 " + intOrdersModified + " 條訂單信息\r\n" +
"已修改 " + intDetailsModified + " 條訂單明細(xì)信息";
MessageBox.Show(strOutput, "更新成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "更新失敗", MessageBoxButtons.OK, MessageBoxIcon.Error);
txn.Rollback();
}
finally
{
conn.Close();
}
}
}
#endregion
#region 刷新數(shù)據(jù)
private void RefreshData()
{
dsOneToMany.Clear();
adpProducts.Fill(dsOneToMany.商品清單);
adpEmployees.Fill(dsOneToMany.業(yè)務(wù)員清單);
adpOrders.SelectCommand.Parameters[0].Value = strCustomerID;
adpOrders.Fill(dsOneToMany.銷售訂單);
adpDetails.SelectCommand.Parameters[0].Value = strCustomerID;
adpDetails.Fill(dsOneToMany.Order_Details);
ShowCurrentOrder();
SetOrdersEditMode(false);
}
#endregion
private void panel2_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
}
private void btnOrdersMoveFirst_Click(object sender, System.EventArgs e)
{
MoveFirst();
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -