protected void Page_Load(object sender, EventArgs e) { #region//必须的参数信息初始化 if (!string.IsNullOrEmpty(Request["RECID"])) { recid = decimal.Parse(Request["RECID"]); } if (!string.IsNullOrEmpty(Request["WFID"])) { wf_obj_id = int.Parse(Request["WFID"]); if (wf_obj_id <= 0) { if (recid <= 0) { Response.Redirect("SelWFID.aspx"); } if (ViewState["WFID"] != null) { wf_obj_id = Convert.ToInt32(ViewState["WFID"]); } } if (ViewState["WFCNAME"] == null) { wfcname = BLLTable <WF_WFOBJECT> .Factory(conn).GetOneValue(WF_WFOBJECT.Attribute.WF_OBJ_ID, wf_obj_id, WF_WFOBJECT.Attribute.WF_OBJ_NAME); ViewState["WFCNAME"] = wfcname; } else { wfcname = ViewState["WFCNAME"].ToString(); } } else { if (recid <= 0) { Response.Redirect("SelWFID.aspx"); } if (ViewState["WFID"] != null) { wf_obj_id = Convert.ToInt32(ViewState["WFID"]); } } #endregion theme = WebHelper.GetAppPath() + "Themes/" + BasePage._ThemeName; backUrl = WebHelper.GetAppPath() + "WF/FORMList.aspx?mime=1&WFID=" + wf_obj_id; if (preUrl != "") { backUrl = preUrl; } title = wfcname + title; if (!IsPostBack) { Form.Enctype = "multipart/form-data"; UpFilesBfSubmit1.ShowPathPre = "../"; UpFilesBfSubmit1.SavePath = "UploadFiles/WF/Rec/"; txtDEPT_ID.ORG_ID = "7"; #region//默认信息初始化 HR_STAFF staff = userBase.GetStaff(); //如果账户没有员工对应 if (staff != null && !staff.IsNull()) { txtCSTAFF_ID.Value = staff.STAFF_ID.ToString(); txtCSTAFF_NAME.Value = staff.STAFF_NAME; txtDEPT_ID.DEPT_ID = Convert.ToString(staff.GetValue(HR_DEPT_STAFF.Attribute.DEPT_ID)); txtSTAFF_ID.Staff_NAME = staff.STAFF_NAME; txtSTAFF_ID.Staff_ID = staff.STAFF_ID; txtRECNO.Value = WFRecordInfo.GetRECNO(Convert.ToString(staff.GetValue(HR_DEPT_STAFF.Attribute.DEPT_ID))); HR_DEPT dept = BLLTable <HR_DEPT> .Factory(conn).GetRowData(HR_DEPT.Attribute.DEPT_ID, Convert.ToString(staff.GetValue(HR_DEPT_STAFF.Attribute.DEPT_ID))); if (dept != null && !dept.IsNull()) { txtCDEPT_ID.Value = dept.DEPT_ID; txtCDEPT_NAME.Value = dept.DEPT_NAME; } else { litWarn.Text = "您的账户未设置所属部门"; } } else { litWarn.Text = "您的账户未有对应员工"; } #endregion ViewState["CHECK_INFO"] = ""; WFOBJECT_BLL wfobj = new WFOBJECT_BLL(wf_obj_id); //WFINFO_EXD wfexd = new WFINFO_EXD(wfid,0); FORM_BLL formexd = wfobj.FORM_BLL; if (recid > 0) { #region//单据信息编辑 WF_FORMBASE baseVal = BLLTable <WF_FORMBASE> .Factory(conn).GetRowData(WF_FORMBASE.Attribute.RECID, recid); WFRecordInfo recObj = new WFRecordInfo(baseVal, true); if (recObj.HadRecord == false) { ScriptHelper.AlertAndGo(Page, "您要编辑的申请记录不存在!", backUrl); return; } if (wf_obj_id <= 0) { ViewState["WFID"] = baseVal.WFID;//记录下当前工作流ID wf_obj_id = baseVal.WFID; } Dictionary <string, WFieldInfo> dicMore = recObj.ExdFields; //zlg关键-构建表单 litFormMore.Text = formexd.WF_HtmlEditForm(recObj);// WFHtml.ShowMoreFormHtml(wfid, dicMore, ref sbDetail); hadDetail = formexd.HadSubForm; ViewState["STATUS"] = baseVal.STATUS; if (!string.IsNullOrEmpty(baseVal.CHECK_INFO)) { ViewState["CHECK_INFO"] = baseVal.CHECK_INFO; } if (recObj.Base.STATUS == WFEnum.RecStatus.Checking.ToString("d") || recObj.Base.STATUS == WFEnum.RecStatus.ReCheck.ToString("d") || recObj.Base.STATUS == WFEnum.RecStatus.Accepted.ToString("d")) { ScriptHelper.AlertAndGo(Page, "该记录已经进入审批流程,不允许修改!", backUrl); } else { if (recObj.Base.STATUS == WFEnum.RecStatus.NoAccept.ToString("d")) { btnOK.Text = "重新提交"; } WF_FORMBASE valObj = recObj.Base; #region txtDEPT_ID.DEPT_NAME = Convert.ToString(valObj.DEPT_NAME); txtDEPT_ID.DEPT_ID = Convert.ToString(valObj.DEPT_ID);//Convert.ToString txtSTAFF_ID.Staff_ID = valObj.STAFF_ID; txtCSTAFF_ID.Value = Convert.ToString(valObj.CSTAFF_ID); //Convert.ToString txtCSTAFF_NAME.Value = Convert.ToString(valObj.CSTAFF_NAME); //Convert.ToString txtNOTE.Value = Convert.ToString(valObj.NOTE); //Convert.ToString #endregion if (valObj.STAFF_ID != userBase.StaffID && valObj.CSTAFF_ID != userBase.StaffID) { //不是自己提交的申请不能修改或提交审批 btnSave.Enabled = false; } } UpFilesBfSubmit1.ShowOldFiles(baseVal.ANNEX_FILE); #endregion } else { litFormMore.Text = formexd.WF_HtmlEditForm();// WFHtml.ShowMoreFormHtml(wfid, null, ref sbDetail); hadDetail = formexd.HadSubForm; } } }
protected void btnOK_Click(object sender, EventArgs e) { WFOBJECT_BLL wfobj = new WFOBJECT_BLL(wf_obj_id); Button btn = (Button)sender;//当前单击的按钮 //WFINFO_EXD wfExd = new WFINFO_EXD(wfid,0); WFRecordInfo recInfo = new WFRecordInfo(wf_obj_id, recid); //FORM_BLL wform = wfobj.FORM_BLL; WF_FORMBASE valObj = new WF_FORMBASE(); //WF_FORMDETAIL formDetail = null; #region //通用基本信息赋值 valObj.RECNO = txtRECNO.Value; //单号唯一 if (txtDEPT_ID.DEPT_ID != "") { valObj.DEPT_ID = Convert.ToString(txtDEPT_ID.DEPT_ID); HR_DEPT dept = BLLTable <HR_DEPT> .Factory(conn).GetRowData(HR_DEPT.Attribute.DEPT_ID, valObj.DEPT_ID); HR_ORG org = BLLTable <HR_ORG> .Factory(conn).GetRowData(HR_ORG.Attribute.ORG_ID, dept.ORG_ID); valObj.ORG_ID = org.ORG_ID; valObj.ORG_NAME = org.ORG_NAME; valObj.DEPT_NAME = dept.DEPT_NAME; } if (txtSTAFF_ID.Staff_ID > 0) { valObj.STAFF_ID = txtSTAFF_ID.Staff_ID; valObj.STAFF_NAME = txtSTAFF_ID.Staff_NAME; } if (txtCSTAFF_ID.Value != "") { valObj.CSTAFF_ID = Convert.ToDecimal(txtCSTAFF_ID.Value); valObj.CDEPT_ID = txtCDEPT_ID.Value; valObj.CDEPT_NAME = txtCDEPT_NAME.Value; HR_DEPT_STAFF cond = new HR_DEPT_STAFF(); cond.STAFF_ID = valObj.CSTAFF_ID; Relation reldep = new Relation(HR_DEPT_STAFF.Attribute.DEPT_ID, HR_DEPT.Attribute.DEPT_ID); Relation relorg = new Relation(HR_ORG.Attribute.ORG_ID, HR_DEPT.Attribute.ORG_ID); List <Relation> lstrel = new List <Relation>(); lstrel.Add(reldep); lstrel.Add(relorg); List <ITableImplement> lstcond = new List <ITableImplement>(); lstcond.Add(cond); List <HR_ORG> lstOrg = BLLTable <HR_ORG> .Select(new HR_ORG(), lstrel, null, lstcond); if (lstOrg.Count > 0) { valObj.CORG_ID = lstOrg[0].ORG_ID; valObj.CORG_NAME = lstOrg[0].ORG_NAME; } } if (txtCSTAFF_NAME.Value != "") { valObj.CSTAFF_NAME = Convert.ToString(txtCSTAFF_NAME.Value); } valObj.EDITIME = DateTime.Now; valObj.NOTE = txtNOTE.Value; valObj.ANNEX_FILE = UpFilesBfSubmit1.GetUpFilesString(); //if (hadDetail)//若有明细表单,创建明细表单通用信息对象并赋值 //{ // formDetail = new WF_FORMDETAIL(); // formDetail.DEPT_ID = valObj.DEPT_ID; // formDetail.DEPT_NAME = valObj.DEPT_NAME; // formDetail.STAFF_ID = valObj.STAFF_ID; // formDetail.STAFF_NAME = valObj.STAFF_NAME; // formDetail.STATUS = "0"; // formDetail.DETAIL_NO = "0"; //} #endregion if (recid > 0) { #region//编辑单据信息 valObj.RECID = recid; valObj.WFID = wf_obj_id; valObj.FORM_PRI_ID = recInfo.Base.FORM_PRI_ID; //扩展表修改必须使用此字段的值。********* count = wfobj.UpdateRecord(valObj); //【2】通用单据信息赋值,与配置扩展信息同时保存到数据库。 if (count < 0) { litWarn.Text = "保存基本信息失败。";//【2】保存信息失败,提示。。 return; } if (hadDetail && hidDetailRows.Value != "") { int rows = int.Parse(hidDetailRows.Value);//【3】判断是否有明细信息,若有,保存明细信息到数据库。 //formDetail.RECID = recid; wfobj.UpdateDetail(valObj, rows); } //jinsj 获取页面静态代码 WFOBJECT_BLL wfbll = new WFOBJECT_BLL(wf_obj_id, recid); WFRecordInfo recObj = new WFRecordInfo(valObj, true); WF_FORMBASE objUp = new WF_FORMBASE(); objUp.RECID = recid; objUp.HTML_TEXT = wfbll.FORM_BLL.WF_HtmlShowForm(recObj); BLLTable <WF_FORMBASE> .Factory(conn).Update(objUp, WF_FORMBASE.Attribute.RECID); if (btn.ID.IndexOf("btnOK") != -1)//重新提交单据,进入审批流程 { backUrl = WebHelper.GetAppPath() + "WF/Checkers.aspx?Submit=1&WFID=" + wf_obj_id + "&PROCID=" + 0 + "&RECID=" + recid; } Response.Redirect(backUrl); #endregion } else { #region//新建单据 valObj.ADDTIME = DateTime.Now; valObj.RECNAME = "[" + userBase.StaffName + "]" + wfcname + valObj.ADDTIME.ToString("yyyyMMddHHmm"); valObj.WFID = wf_obj_id; valObj.PROCID = 0; valObj.CHECK_INFO = ""; valObj.CHECKERS = ""; valObj.STATUS = WFEnum.RecStatus.Submit.ToString("d"); //AgileFrame.Orm.PersistenceLayer.DAL.Base.Runtime_PersistenceLayer.RefreshRuntime_PersistenceLayer(); count = wfobj.InsertRecord(valObj);//【1】通用单据信息赋值,与配置扩展信息同时保存到数据库 if (count <= 0) { litWarn.Text = "单据信息保存失败,请联系管理员。";//【1】保存信息失败,提示 return; } recid = valObj.RECID; if (hadDetail && hidDetailRows.Value != "")//【2】判断是否有明细信息,若有,保存明细信息到数据库。 { int rows = int.Parse(hidDetailRows.Value); //formDetail.RECID = recid; wfobj.InsertDetail(valObj, rows); } //jinsj 获取页面静态代码 WFOBJECT_BLL wfbll = new WFOBJECT_BLL(wf_obj_id, recid); WFRecordInfo recObj = new WFRecordInfo(valObj, true); WF_FORMBASE objUp = new WF_FORMBASE(); objUp.RECID = recid; objUp.HTML_TEXT = wfbll.FORM_BLL.WF_HtmlShowForm(recObj); BLLTable <WF_FORMBASE> .Factory(conn).Update(objUp, WF_FORMBASE.Attribute.RECID); if (btn.ID.IndexOf("btnOK") != -1) { string err = ""; //bool ck = wfobj.WF_CheckStepChecker(recid, out err); bool ck = true; if (ck == false) { ScriptHelper.AlertAndGo(Page, err + " 无法提交。", "FormList.aspx?mine=1&WFID=" + wf_obj_id); } else { string chckerUrl = WebHelper.GetAppPath() + "WF/Checkers.aspx?Submit=1&WFID=" + wf_obj_id + "&RECID=" + recid; Response.Redirect(chckerUrl, false);//【6】转到审批人选择页面 } } else { if (recid > 0) { Response.Redirect(backUrl);//【3】跳转到原来的页面。 } else { AgileFrame.Core.ScriptHelper.Alert(Page, "保存失败!"); } } #endregion } }