注: 对于保存操作,增删改只能获取到新增的,那是因为查询获取数据到DataTable时漏了dtResult.AcceptChanges();
private void btnProcess_Click(object sender, EventArgs e)
{
//Create
try
{
//保存编辑框中做的更新 //少了这两行,新增保存时总是会丢失最后一条数据
gdvCOAItem.PostEditor();
gdvCOAItem.UpdateCurrentRow();
if (saTableKeys == null)//新建
{
//Update Table
if (CheckCondition("Create_COA", GlobalConstant.SYS_STEP_CREATE) == false)
{
return;
}
if (QCM_Update_COA(GlobalConstant.SYS_STEP_CREATE) == false)
{
return;
}
//添加成功,显示成编辑界面
saTableKeys = new string[] { GlobalVariable.gsFactory, this.gluCOATemplate.Text };
//this.rpgCreate.Visible = true;
//this.rpgLifeCycle.Visible = true;
this.Text = CommonFunction.FindLanguage("COA Template", CAPTION_TYPE.MENU) + " - " + this.gluCOATemplate.Text;
//if (GlobalVariable.gLoginInfo.bListAutoRefresh == true)
//{
// btnRefresh.PerformClick();
//}
}
else//更新
{
if (CheckCondition("Create_COA", GlobalConstant.SYS_STEP_UPDATE) == false)
{
return;
}
if (QCM_Update_COA(GlobalConstant.SYS_STEP_UPDATE) == false)
{
return;
}
//if (GlobalVariable.gLoginInfo.bListAutoRefresh == true)
//{
// btnRefresh.PerformClick();
//}
}
//Update Data List
//int ActiveRow = 0;//更新后继续focus在原先focus的行
if (CheckCondition("Update_Item_List", GlobalConstant.SYS_STEP_CREATE) == false) //CheckDataCondition不分SYS_STEP_UPDATE还是SYS_STEP_DELETE
{
return;
}
if (Update_COA_Detail_Item_List() == false)
{
return;
}
//View_COA_Template();
CommonFunction.ShowMsgBox(CommonFunction.GetMessage(358));
}
catch (Exception ex)
{
CommonFunction.ShowMsgBox(ex.Message);
}
this.Close();
frmQCMTranPrintCOA frm = new frmQCMTranPrintCOA();
frm.Show();
}
CheckCondition:
private bool CheckCondition(string FuncName, char ProcStep)
{
try
{
switch (CommonFunction.Trim(FuncName))
{
case "Create_COA":
if (gluCOATemplate.Text == "")
{
CommonFunction.ShowMsgBox(CommonFunction.GetMessage(108));
gluCOATemplate.Focus();
return false;
}
switch (CommonFunction.ToChar(CommonFunction.Trim(ProcStep)))
{
case GlobalConstant.SYS_STEP_CREATE:
case GlobalConstant.SYS_STEP_UPDATE:
break;
case GlobalConstant.SYS_STEP_DELETE:
return true;
}
break;
case "Update_Item_List":
DataTable dt = (DataTable)gdcCOAItem.DataSource;
foreach (DataRow dr in dt.Rows)
{
if (dr.RowState != DataRowState.Deleted)
{
if (dr["TESTING_RESULT"].ToString().Trim() == "")
{
CommonFunction.ShowMsgBox(CommonFunction.GetMessage(108));
return false;
}
}
if (dr.RowState != DataRowState.Deleted)
{
if (dr["ITEM_SEQ"].ToString().Trim() == "")
{
CommonFunction.ShowMsgBox(CommonFunction.GetMessage(108));
return false;
}
}
}
break;
}
return true;
}
catch (Exception ex)
{
CommonFunction.ShowMsgBox(ex.Message);
return false;
}
}
Update:
private bool QCM_Update_COA(char ProcStep)
{
TRSNode in_node = new TRSNode("UPDATE_COA_TEMPLATE_IN");
TRSNode out_node = new TRSNode("CMN_OUT");
try
{
CommonRoutine.SetInMsg(in_node);
string sCoaTempId = gluCOATemplate.Text;
string sTempDesc = txtDesc.Text;
string sBatchId = txtLotID.Text;
string sCoaDate = deCoaDate.Text;
in_node.AddString("COA_ID", sCoaTempId);
in_node.AddString("COA_DESC", sTempDesc);
in_node.AddString("BATCH_ID", sBatchId);
in_node.AddString("COA_DATE", sCoaDate);
in_node.ProcStep = ProcStep;
if (CommonRoutine.CallService("QCM", "QCM_Update_COA", in_node, ref out_node) == false)
{
return false;
}
return true;
}
catch (Exception ex)
{
CommonFunction.ShowMsgBox(ex.Message);
return false;
}
}
==================
更新GridView信息后的再显示必不可少,不然二次更新时会不稳定的报异常
private void btnSave_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
gdvDetail.PostEditor();
gdvDetail.UpdateCurrentRow();
DataTable dt = (DataTable)this.gdcDetail.DataSource;
//int[] arr = gdvDetail.GetSelectedRows();
//if (arr.Count() <= 0)
//{
// return;
//}
if (CheckCondition("Update_Rel_List", GlobalConstant.SYS_STEP_CREATE) == false) //CheckDataCondition不分SYS_STEP_UPDATE还是SYS_STEP_DELETE
{
return;
}
if (Update_EG_Event_Item_List() == false)
{
return;
}
ViewgdvDetail();//更新后再显示
CommonFunction.ShowMsgBox(CommonFunction.GetMessage(358));
}
ViewgdvDetail():
public void ViewgdvDetail()
{
DataTable dt = new DataTable();
string sResId = "";
string sDcpId = "";
if (cboRes.EditValue != null && cboRes.EditValue.ToString() != "")
{
sResId = cboRes.EditValue.ToString();
}
else
{
InitGVEventDataTable();
return;
}
if (cboDCP.EditValue != null && cboDCP.EditValue.ToString() != "")
{
sDcpId = cboDCP.EditValue.ToString();
}
else
{
InitGVEventDataTable();
return;
}
int[] iaResId = gdvEG.GetSelectedRows();
if (iaResId.Length > 0)
{
if (gdvEG.GetRowCellValue(iaResId[0], "EG_NAME") != null && gdvEG.GetRowCellValue(iaResId[0], "EG_NAME").ToString() != "")
{
string sEgName = gdvEG.GetRowCellValue(iaResId[0], "EG_NAME").ToString();
saTableKeys = new string[] { GlobalVariable.gsFactory, sEgName, "EG_NAME", "Event_Group_Edit", sResId, sDcpId };
dt = ListRoutineFDC.ViewFDCDCPEGEventList(sResId, sDcpId, sEgName);
if (dt != null)
{
DevGridControlHelper.BindData(gdcDetail, dt, new int[] { -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1 });
gdcDetail.RepositoryItems.Add(repositoryItemComboBox2);
gdvDetail.Columns[6].ColumnEdit = repositoryItemComboBox2;
gdvDetail.Columns[3].OptionsColumn.AllowEdit = false;
gdvDetail.Columns[4].OptionsColumn.AllowEdit = false;
gdvDetail.Columns[8].OptionsColumn.AllowEdit = false;
gdvDetail.Columns[9].OptionsColumn.AllowEdit = false;
gdvDetail.Columns[10].OptionsColumn.AllowEdit = false;
gdvDetail.Columns[11].OptionsColumn.AllowEdit = false;
return;
}
else
{
InitGVEventDataTable();
}
}
else
{
InitGVEventDataTable();
}
}
else
{
InitGVEventDataTable();
}
}