public void ShowPage(M_OA_Document oaMod)
        {
            M_MisProcedure proceMod = new B_MisProcedure().SelReturnModel(oaMod.ProID);

            ModelID = DataConvert.CLng(proceMod.FormInfo);
            M_ModelInfo   modelMod  = bmode.GetModelById(ModelID);
            DataTable     dt        = fieldBll.GetModelFieldListall(ModelID);
            StringBuilder builder   = new StringBuilder();
            DataTable     dtContent = conBll.GetContent(Convert.ToInt32(oaMod.Content));

            //showBll.config = new FieldConfig() { OpenDisabled = true, source = FieldConfig.SType.OAForm,EnableField=CurrentStep.CanEditField };

            if (disall)
            {
                showBll.config.EnableField = "";
            }
            Html_Lit.Text     = showBll.GetUpdateAllHtml(ModelID, 100, dtContent);
            formop_tr.Visible = !string.IsNullOrEmpty(CurrentStep.CanEditField);
        }
        protected void Free_Sure_Btn_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(ReferUser_Hid.Value))
            {
                function.WriteErrMsg("主办人不能为空");
            }
            if (!SafeSC.Submit_Check(this.ViewState))
            {
                B_OA_Document  oaBll    = new B_OA_Document();
                M_OA_Document  oaMod    = oaBll.SelReturnModel(AppID);
                M_MisProcedure proceMod = new B_MisProcedure().SelReturnModel(oaMod.ProID);
                oaCom.CreateStep(oaMod, proceMod, new OAStepParam()
                {
                    ReferUser = ReferUser_Hid.Value,
                    CCUser    = CCUser_Hid.Value,
                    StepNum   = freeBll.GetStep(AppID),
                    StepID    = this.StepID
                });
                DataBind();
                Free_Div.Visible = false;
                remind2.Visible  = true;
                switch (Request["s"] ?? "")
                {
                case "old":
                    function.Script(this, "PaerntUrl(\"/Office/AffairsList.aspx?view=1\");");
                    break;

                default:
                    function.Script(this, "PaerntUrl(\"/Office/Flow/ApplyList.aspx?view=1\");");
                    break;
                }
            }
            else
            {
                Response.Redirect(Request.RawUrl);
            }
        }
        //与写入新的进度信息,如果是最后一步或是拒绝,则更新OA模型
        private void UpdateModel(int status)
        {
            //会签需要加判断,备注需要另外处理
            oaMod = oaBll.SelReturnModel(appID);
            //throw new Exception(progBll.IsHQComplete(appID, userID, CurrentStep).ToString());
            progMod.AppID        = oaMod.ID;
            progMod.ProID        = oaMod.ProID;
            progMod.ProLevel     = CurrentStep.stepNum;
            progMod.ProLevelName = CurrentStep.stepName;
            progMod.ApproveID    = userID;
            progMod.Result       = status;
            progMod.Remind       = remindT.Text;
            progMod.CreateTime   = DateTime.Now;
            progMod.HQUserID     = userID.ToString();
            if (signRadio.Items.Count > 0 && signRadio.SelectedIndex > 0)//0是不使用签章
            {
                progMod.Sign   = signRadio.SelectedValue + ":" + curPosD.Value;
                progMod.SignID = signRadio.SelectedValue;
            }
            //用于email与sms通知功能
            string content = "";

            //是否为最后一步
            bool isLastStep = false;

            if (oaMod.ProID == 0)
            {
                isLastStep = freeBll.IsLastStep(oaMod, CurrentStep);
            }
            else
            {
                isLastStep = stepBll.IsLastStep(CurrentStep);
            }

            //增加通知功能,
            if (isLastStep && status == 99 || status == 98)
            {
                if (CurrentStep.HQoption > 0)//会签判断
                {
                    if (progBll.IsHQComplete(appID, userID, CurrentStep))
                    {
                        oaMod.Status     = status;//流程完成,全部同意
                        oaMod.CurStepNum = CurrentStep.stepNum;
                        content          = oaMod.Title + "会签完成,已进入下一步骤";
                    }
                }
                else
                {
                    oaMod.Status     = status;//流程完成,全部同意
                    oaMod.CurStepNum = CurrentStep.stepNum;
                    content          = oaMod.Title + "已完成" + CurrentStep.stepName + ",进入下一步骤";
                }
            }
            else if (status == 2) //回退
            {
                oaMod.Status = 2;

                int rbStep = DataConvert.CLng(rollBackDP.SelectedValue);
                if (rbStep > 0)
                {
                    rbStep = rbStep - 1;
                    //自由流程回退删除步骤
                    if (oaMod.IsFreePro)
                    {
                        freeBll.DelByStep(oaMod.ID, Convert.ToInt32(rollBackDP.SelectedValue));
                    }
                }
                else  //回退至上一步(-1)
                {
                    rbStep = CurrentStep.stepNum - 2;
                    //自由流程回退删除步骤
                    if (oaMod.IsFreePro)
                    {
                        freeBll.DelByStep(oaMod.ID, CurrentStep.stepNum - 1);
                    }
                }
                oaMod.CurStepNum = rbStep;
                progMod.Remind2  = "回退至" + rbStep;
                progMod.HQUserID = "";
                content          = oaMod.Title + "已被经办人回退至" + rbStep;
                //回退的时候,清除目标会签与签章信息
                progBll.ClearHQ(oaMod.ID, rbStep);
                progBll.ClearSign(oaMod.ID, rbStep);
            }
            else if (status == -1)
            {
                oaMod.Status     = status; //拒绝
                oaMod.CurStepNum = CurrentStep.stepNum;
                content          = oaMod.Title + "已被经办人" + buser.GetLogin().HoneyName + "拒绝.";
            }
            else//同意,但未至最后一步
            {
                if (CurrentStep.HQoption > 0)//需要会签
                {
                    if (progBll.IsHQComplete(appID, userID, CurrentStep))
                    {
                        oaMod.CurStepNum = CurrentStep.stepNum;
                        content          = oaMod.Title + "已完成会签审批,成功通过";
                        //if (oaMod.IsFreePro) oaMod.Status = status;//如果是自由流程就仍更新状态
                    }
                }
                else
                {
                    oaMod.CurStepNum = CurrentStep.stepNum;
                    content          = oaMod.Title + "已完成审批,成功通过";
                }
            }

            if (!string.IsNullOrEmpty(CurrentStep.EmailAlert))//Email与sms通知
            {
                //发送邮件包括会员组里的会员(需扩展支持会员组)
                string ids = "";
                if (!string.IsNullOrEmpty(CurrentStep.EmailGroup))
                {
                    ids += groupBll.GetUserIDByGroupIDS(CurrentStep.EmailGroup);
                }
                ids += CurrentStep.SmsAlert;
                ids  = ids.Trim(',');
                emailToUser(content, ids);
            }
            if (!string.IsNullOrEmpty(CurrentStep.SmsAlert))
            {
                smsTouser(content, CurrentStep.SmsAlert);
            }
            progBll.Insert(progMod);
            oaBll.UpdateByID(oaMod);
            //分发功能
            if (isLastStep && oaMod.Status == 99 && !oaMod.IsFreePro)
            {
                B_MisProcedure prodBll = new B_MisProcedure();
                M_MisProcedure prodMod = prodBll.SelReturnModel(oaMod.ProID);
                if (prodMod.NodeID > -1)//指定了节点,才分发
                {
                    commCall.AddContentToNode(oaMod, prodMod.NodeID, OAConfig.ModelID);
                }
            }
        }