private void winPrivilege_Closing(object sender, System.ComponentModel.CancelEventArgs e) { BasicControl.CloseWindow(this.Name); }
private void btnSave_Click(object sender, RoutedEventArgs e) { try { dt = TableQuery[0]; //获取主表 DataRow[] dw = dtOpenWin.Select("WindowsName = '" + titleName + "'"); if (State == "Add" || this.titleName.Split('-')[2] == "New" || State == "Copy" || State == "trun") { if (!gbqb.IsRePeat(TableQuery[0].ToString(), BillNo) || TableQuery[0].Rows[0].RowState.ToString() == "Modified") { IsReadOnly = true; try { //保存并关闭窗体 foreach (DataRow dr in dw) { BasicControl.InnerID = dr[0].ToString(); BasicControl.AssemblyName = dr[2].ToString(); BasicControl.WinClassName = dr[3].ToString(); for (int CurrentTable = 0; CurrentTable < TableQuery.Length; CurrentTable++) { if (OrderStart.TrunStart == "trun") { if (FromTableName[CurrentTable] != "") { //修改来源单状态(考虑框架代码) foreach (DataRow drT in TableQuery[CurrentTable].Rows) { if (string.IsNullOrEmpty(drT["FromBillNo"].ToString())) { continue;//跳出本次循环 } gbqb.UpdateSync("update " + FromTableName[CurrentTable] + " set State=1 from " + TableQuery[CurrentTable].TableName + " A " + "inner join " + FromTableName[CurrentTable] + " B on A.FromBillNo=B.BillNo and A.FromInnerID=B.InnerID " + "where A.FromBillNo='" + drT["FromBillNo"].ToString() + "'"); } } if (CurrentTable == TableQuery.Length - 1) { OrderStart.TrunStart = ""; } } gbqb.UpdateTable(TableQuery[CurrentTable].TableName, TableQuery[CurrentTable]); } } } catch (Exception ex) { //保存失败则删除表头数据 dt.Rows[0].Delete(); gbqb.UpdateTable(dt.TableName, dt); //反过账语法 //抛出异常 Message = "错误:" + ex.Message; //不继续往下执行 IsReadOnly = false; return; } if (State == "Add" || this.titleName.Split('-')[2] == "New") { bc.CloseWindow(titleName); //重新打开新增的资料 bc.CreateForm(TableQuery[0].Rows[0]["BillNo"].ToString(), this.titleName.Split('-')[0]); } } else { IsReadOnly = false; State = "Warning"; //MessageBox.Show("单据编号不能重复。", "警告", MessageBoxButton.OK, MessageBoxImage.Exclamation); Message = "警告:单据编号不能重复。"; } } else if (State == "Modify") { IsReadOnly = true; //保存 for (int CurrentTable = 0; CurrentTable < TableQuery.Length; CurrentTable++) { if (State == "trun") { if (FromTableName[CurrentTable] != "") { //修改来源单状态(考虑框架代码) foreach (DataRow drT in TableQuery[CurrentTable].Rows) { gbqb.UpdateSync("update " + FromTableName[CurrentTable] + " set State=1 from " + TableQuery[CurrentTable].TableName + " A " + "inner join " + FromTableName[CurrentTable] + " B on A.FromBillNo=B.BillNo and A.FromInnerID=B.InnerID " + "where A.FromBillNo='" + drT["FromBillNo"].ToString() + "'"); } } if (CurrentTable == TableQuery.Length - 1) { State = "Ready"; } } gbqb.UpdateTable(TableQuery[CurrentTable].TableName, TableQuery[CurrentTable]); //反过账语法 } } State = "Ready"; } catch (Exception ex) { IsReadOnly = false; Message = "Error:" + ex.Message; //MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }