protected void Page_Load(object sender, EventArgs e)
        {
            switch (this.DoType)
            {
            case "Up":
                FrmNode fnU = new FrmNode(this.MyPK);
                fnU.DoUp();
                this.BindList();
                break;

            case "Down":
                FrmNode fnD = new FrmNode(this.MyPK);
                fnD.DoDown();
                this.BindList();
                break;

            case "SelectedFrm":
                this.SelectedFrm();
                break;

            default:
                this.BindList();
                break;
            }
        }
예제 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //注册这个枚举,防止第一次运行出错.
            BP.Sys.SysEnums ses = new SysEnums("FrmEnableRole");

            switch (this.DoType)
            {
            case "Up":
                FrmNode fnU = new FrmNode(this.MyPK);
                fnU.DoUp();
                this.BindList();
                break;

            case "Down":
                FrmNode fnD = new FrmNode(this.MyPK);
                fnD.DoDown();
                this.BindList();
                break;

            case "SelectedFrm":
                this.SelectedFrm();
                break;

            default:
                this.BindList();
                break;
            }
        }
예제 #3
0
        /// <summary>
        /// 表单方案
        /// </summary>
        /// <returns></returns>
        public string BindFrms_Init()
        {
            //注册这个枚举,防止第一次运行出错.
            BP.Sys.SysEnums ses = new SysEnums("FrmEnableRole");

            string text = "";

            BP.WF.Node nd = new BP.WF.Node(this.FK_Node);

            //FrmNodeExt fns = new FrmNodeExt(this.FK_Flow, this.FK_Node);

            FrmNodes fns = new FrmNodes(this.FK_Flow, this.FK_Node);

            #region 如果没有ndFrm 就增加上.
            bool isHaveNDFrm = false;
            foreach (FrmNode fn in fns)
            {
                if (fn.FK_Frm == "ND" + this.FK_Node)
                {
                    isHaveNDFrm = true;
                    break;
                }
            }

            if (isHaveNDFrm == false)
            {
                FrmNode fn = new FrmNode();
                fn.FK_Flow = this.FK_Flow;
                fn.FK_Frm  = "ND" + this.FK_Node;
                fn.FK_Node = this.FK_Node;

                fn.FrmEnableRole = FrmEnableRole.Disable; //就是默认不启用.
                fn.FrmSln        = 0;
                //  fn.IsEdit = true;
                fn.IsEnableLoadData = true;
                fn.Insert();
                fns.AddEntity(fn);
            }
            #endregion 如果没有ndFrm 就增加上.

            //组合这个实体才有外键信息.
            FrmNodeExts fnes = new FrmNodeExts();
            foreach (FrmNode fn in fns)
            {
                MapData md = new MapData();
                md.No = fn.FK_Frm;
                if (md.IsExits == false)
                {
                    fn.Delete();  //说明该表单不存在了,就需要把这个删除掉.
                    continue;
                }

                FrmNodeExt myen = new FrmNodeExt(fn.MyPK);
                fnes.AddEntity(myen);
            }

            //把json数据返回过去.
            return(fnes.ToJson());
        }
예제 #4
0
        void btn_SaveFlowFrms_Click(object sender, EventArgs e)
        {
            FrmNodes fns = new FrmNodes(this.FK_Flow, this.FK_Node);
            MapDatas mds = new MapDatas();

            mds.Retrieve(MapDataAttr.AppType, (int)AppType.Application);

            //BP.WF.Node nd = new BP.WF.Node(this.FK_Node);

            string ids = ",";

            foreach (MapData md in mds)
            {
                CheckBox cb = this.Pub1.GetCBByID("CB_" + md.No);
                if (cb == null || cb.Checked == false)
                {
                    continue;
                }
                ids += md.No + ",";
            }

            //删除已经删除的。
            foreach (FrmNode fn in fns)
            {
                if (ids.Contains("," + fn.FK_Frm + ",") == false)
                {
                    fn.Delete();
                    continue;
                }
            }

            // 增加集合中没有的。
            string[] strs = ids.Split(',');
            foreach (string s in strs)
            {
                if (string.IsNullOrEmpty(s))
                {
                    continue;
                }
                if (fns.Contains(FrmNodeAttr.FK_Frm, s))
                {
                    continue;
                }

                FrmNode fn = new FrmNode();
                fn.FK_Frm  = s;
                fn.FK_Flow = this.FK_Flow;
                fn.FK_Node = this.FK_Node;
                fn.Save();
            }
            this.Response.Redirect("FlowFrms.aspx?ShowType=EditPowerOrder&FK_Node=" + this.FK_Node + "&FK_Flow=" + this.FK_Flow, true);
        }
예제 #5
0
        /// <summary>
        /// 复制表单到节点
        /// </summary>
        /// <returns></returns>
        public string BindFrmsDtl_DoCopyFrmToNodes()
        {
            string nodeStr = this.GetRequestVal("NodeStr"); //节点string,
            string frmStr  = this.GetRequestVal("frmStr");  //表单string,

            string[] nodeList = nodeStr.Split(',');
            string[] frmList  = frmStr.Split(',');

            foreach (string node in nodeList)
            {
                if (string.IsNullOrWhiteSpace(node))
                {
                    continue;
                }

                int nodeid = int.Parse(node);

                //删除节点绑定的表单
                DBAccess.RunSQL("DELETE FROM WF_FrmNode WHERE FK_Node=" + nodeid);

                foreach (string frm in frmList)
                {
                    if (string.IsNullOrWhiteSpace(frm))
                    {
                        continue;
                    }

                    FrmNode fn      = new FrmNode();
                    FrmNode frmNode = new FrmNode();

                    if (fn.IsExit("mypk", frm + "_" + this.FK_Node + "_" + this.FK_Flow))
                    {
                        frmNode.Copy(fn);
                        frmNode.MyPK    = frm + "_" + nodeid + "_" + this.FK_Flow;
                        frmNode.FK_Flow = this.FK_Flow;
                        frmNode.FK_Node = nodeid;
                        frmNode.FK_Frm  = frm;
                    }
                    else
                    {
                        frmNode.MyPK    = frm + "_" + nodeid + "_" + this.FK_Flow;
                        frmNode.FK_Flow = this.FK_Flow;
                        frmNode.FK_Node = nodeid;
                        frmNode.FK_Frm  = frm;
                    }

                    frmNode.Insert();
                }
            }

            return("操作成功!");
        }
예제 #6
0
        public string BindFrms_DoOrder()
        {
            FrmNode myen = new FrmNode(this.MyPK);

            if (this.GetRequestVal("OrderType") == "Up")
            {
                myen.DoUp();
            }
            else
            {
                myen.DoDown();
            }

            return("执行成功...");
        }
예제 #7
0
        /// <summary>
        /// 保存流程表单
        /// </summary>
        /// <returns></returns>
        public string BindFrmsDtl_Save()
        {
            try
            {
                string formNos = this.context.Request["formNos"];

                FrmNodes fns = new FrmNodes(this.FK_Flow, this.FK_Node);
                //删除已经删除的。
                foreach (FrmNode fn in fns)
                {
                    if (formNos.Contains("," + fn.FK_Frm + ",") == false)
                    {
                        fn.Delete();
                        continue;
                    }
                }

                // 增加集合中没有的。
                string[] strs = formNos.Split(',');
                foreach (string s in strs)
                {
                    if (DataType.IsNullOrEmpty(s))
                    {
                        continue;
                    }
                    if (fns.Contains(FrmNodeAttr.FK_Frm, s))
                    {
                        continue;
                    }

                    FrmNode fn = new FrmNode();
                    fn.FK_Frm  = s;
                    fn.FK_Flow = this.FK_Flow;
                    fn.FK_Node = this.FK_Node;

                    fn.MyPK = fn.FK_Frm + "_" + fn.FK_Node + "_" + fn.FK_Flow;

                    fn.Save();
                }
                return("保存成功.");
            }
            catch (Exception ex)
            {
                return("err:保存失败." + ex.Message);
            }
        }
예제 #8
0
        /// <summary>
        /// 计算PK值
        /// </summary>
        /// <param name="fk_md">FK_MapData</param>
        /// <returns></returns>
        private int GetPK(string fk_md)
        {
            // add by zhoupeng 如果这两个参数没有,就返回OID做为PK.
            if (this.FK_Flow == null || this.FK_Node == 0)
            {
                return(this.OID);
            }

            int pk = this.OID;
            var fn = new FrmNode(this.FK_Flow, this.FK_Node, fk_md);

            switch (fn.WhoIsPK)
            {
            case WhoIsPK.FID:
                pk = this.FID;
                if (pk == 0)
                {
                    throw new Exception("@没有接收到参数FID");
                }
                break;

            case WhoIsPK.CWorkID:     /*延续流程ID*/
                pk = this.CWorkID;
                if (pk == 0)
                {
                    throw new Exception("@没有接收到参数CWorkID");
                }
                break;

            case WhoIsPK.PWorkID:     /*父流程ID*/
                pk = this.PWorkID;
                if (pk == 0)
                {
                    throw new Exception("@没有接收到参数PWorkID");
                }
                break;

            default:
                break;
            }

            return(pk);
        }
예제 #9
0
        void btn_SavePowerOrders_Click(object sender, EventArgs e)
        {
            //删除以前绑定的值.
            FrmNodes fnds = new FrmNodes();

            fnds.Delete(FrmNodeAttr.FK_Flow, this.FK_Flow,
                        FrmNodeAttr.FK_Frm, this.FK_MapData);

            FrmNode fn = null;

            foreach (Node nd in nds)
            {
                //节点没有选中,后面的明细项目选中也不执行保存
                bool isCheckCurNd = this.Pub1.GetCBByID("CB_NodeName_" + nd.NodeID.ToString()).Checked;
                if (!isCheckCurNd)
                {
                    continue;
                }

                fn = new FrmNode();

                //    fn.IsEdit = this.Pub1.GetCBByID("CB_IsEdit_" + nd.NodeID.ToString()).Checked;
                fn.IsPrint = this.Pub1.GetCBByID("CB_IsPrint_" + nd.NodeID.ToString()).Checked;

                //是否启
                fn.IsEnableLoadData = this.Pub1.GetCBByID("CB_IsEnableLoadData_" + nd.NodeID.ToString()).Checked;

                //权限控制方案.
                fn.FrmSln  = this.Pub1.GetDDLByID("DDL_Sln_" + nd.NodeID.ToString()).SelectedItemIntVal;
                fn.WhoIsPK = (WhoIsPK)this.Pub1.GetDDLByID("DDL_WhoIsPK_" + nd.NodeID.ToString()).SelectedItemIntVal;

                fn.FK_Flow = this.FK_Flow;
                fn.FK_Node = nd.NodeID;
                fn.FK_Frm  = this.FK_MapData;

                fn.MyPK = fn.FK_Frm + "_" + fn.FK_Node + "_" + fn.FK_Flow;

                fn.Insert();
            }

            this.Response.Redirect("BindingForms.aspx?FK_MapData=" + this.FK_MapData + "&FK_Flow=" + this.FK_Flow);
        }
예제 #10
0
        /// <summary>
        /// 计算PK值
        /// </summary>
        /// <param name="fk_md">FK_MapData</param>
        /// <returns></returns>
        private int GetPK(string fk_md)
        {
            int pk = this.OID;
            var fn = new FrmNode(this.FK_Flow, this.FK_Node, fk_md);

            switch (fn.WhoIsPK)
            {
            case WhoIsPK.FID:
                pk = this.FID;
                if (pk == 0)
                {
                    throw new Exception("@没有接收到参数FID");
                }
                break;

            case WhoIsPK.CWorkID:     /*延续流程ID*/
                pk = this.CWorkID;
                if (pk == 0)
                {
                    throw new Exception("@没有接收到参数CWorkID");
                }
                break;

            case WhoIsPK.PWorkID:     /*父流程ID*/
                pk = this.PWorkID;
                if (pk == 0)
                {
                    throw new Exception("@没有接收到参数PWorkID");
                }
                break;

            default:
                break;
            }

            return(pk);
        }
예제 #11
0
        /// <summary>
        /// view work.
        /// </summary>
        public void BindTrack_ViewWork()
        {
            string appPath = this.Request.ApplicationPath;
            Track  tk      = new Track(this.FK_Flow, this.MyPK);
            Node   nd      = new Node(tk.NDFrom);
            Work   wk      = nd.HisWork;

            wk.OID = tk.WorkID;
            if (wk.RetrieveFromDBSources() == 0)
            {
                this.UCEn1.AddFieldSet("打开(" + nd.Name + ")错误");
                this.UCEn1.AddH1("当前的节点数据已经被删除!!!<br> 造成此问题出现的原因如下。");
                this.UCEn1.AddBR("1、当前节点数据被非法删除。");
                this.UCEn1.AddBR("2、节点数据是退回人与被退回人中间的节点,这部分节点数据查看不支持。");
                this.UCEn1.AddFieldSetEnd();
                return;
            }

            GenerWorkFlow gwf = new GenerWorkFlow();

            gwf.WorkID = wk.OID;
            if (gwf.RetrieveFromDBSources() == 0)
            {
            }
            else
            {
                if (gwf.FK_Node == wk.NodeID)
                {
                    this.UCEn1.AddFieldSet(wk.EnDesc);
                    this.UCEn1.AddH1("当工作(" + nd.Name + ")未完成,您不能查看它的工作日志。");
                    this.UCEn1.AddFieldSetEnd();
                    return;
                }
            }

            if (nd.HisFlow.IsMD5 && wk.IsPassCheckMD5() == false)
            {
                this.UCEn1.AddFieldSet("打开(" + nd.Name + ")错误");
                this.UCEn1.AddH1("当前的节点数据已经被篡改,请报告管理员。");
                this.UCEn1.AddFieldSetEnd();
                return;
            }

            this.UCEn1.IsReadonly = true;
            Frms frms = nd.HisFrms;

            if (frms.Count == 0)
            {
                if (nd.HisFormType == FormType.FreeForm)
                {
                    /* 自由表单 */
                    this.UCEn1.Add("<div id=divCCForm >");
                    this.UCEn1.BindCCForm(wk, "ND" + nd.NodeID, true); //, false, false, null);
                    if (wk.WorkEndInfo.Length > 2)
                    {
                        this.UCEn1.Add(wk.WorkEndInfo);
                    }
                    this.UCEn1.Add("</div>");
                }

                if (nd.HisFormType == FormType.FixForm)
                {
                    /*傻瓜表单*/
                    this.UCEn1.IsReadonly = true;
                    this.UCEn1.BindColumn4(wk, "ND" + nd.NodeID); //, false, false, null);
                    if (wk.WorkEndInfo.Length > 2)
                    {
                        this.UCEn1.Add(wk.WorkEndInfo);
                    }
                }

                BillTemplates bills = new BillTemplates();
                bills.Retrieve(BillTemplateAttr.NodeID, nd.NodeID);
                if (bills.Count >= 1)
                {
                    string title = "";
                    foreach (BillTemplate item in bills)
                    {
                        title += "<img src='/WF/Img/Btn/Word.gif' border=0/>" + item.Name + "</a>";
                    }

                    string urlr = appPath + "WF/WorkOpt/PrintDoc.aspx?FK_Node=" + nd.NodeID + "&FID=" + tk.FID + "&WorkID=" + tk.WorkID + "&FK_Flow=" + tk.FK_Flow;
                    this.UCEn1.Add("<p><a  href=\"javascript:WinOpen('" + urlr + "','dsdd');\"  />" + title + "</a></p>");
                    //this.UCEn1.Add("<a href='' target=_blank><img src='/WF/Img/Btn/Word.gif' border=0/>" + bt.Name + "</a>");
                }
            }
            else
            {
                /* 涉及到多个表单的情况...*/
                if (nd.HisFormType != FormType.DisableIt)
                {
                    Frm myfrm = new Frm();
                    myfrm.No          = "ND" + nd.NodeID;
                    myfrm.Name        = wk.EnDesc;
                    myfrm.HisFormType = nd.HisFormType;

                    FrmNode fnNode = new FrmNode();
                    fnNode.FK_Frm  = myfrm.No;
                    fnNode.IsEdit  = true;
                    fnNode.IsPrint = false;
                    switch (nd.HisFormType)
                    {
                    case FormType.FixForm:
                        fnNode.HisFrmType = FrmType.Column4Frm;
                        break;

                    case FormType.FreeForm:
                        fnNode.HisFrmType = FrmType.CCForm;
                        break;

                    case FormType.SelfForm:
                        fnNode.HisFrmType = FrmType.Url;
                        break;

                    default:
                        throw new Exception("出现了未判断的异常。");
                    }
                    myfrm.HisFrmNode = fnNode;
                    frms.AddEntity(myfrm, 0);
                }

                Int64 fid = this.FID;
                if (this.FID == 0)
                {
                    fid = tk.WorkID;
                }

                if (frms.Count == 1)
                {
                    /* 如果禁用了节点表单,并且只有一个表单的情况。*/
                    Frm     frm = (Frm)frms[0];
                    FrmNode fn  = frm.HisFrmNode;
                    string  src = "";
                    src = fn.FrmUrl + ".aspx?FK_MapData=" + frm.No + "&FID=" + fid + "&IsEdit=0&IsPrint=0&FK_Node=" + nd.NodeID + "&WorkID=" + tk.WorkID;
                    this.UCEn1.Add("\t\n <DIV id='" + frm.No + "' style='width:" + frm.FrmW + "px; height:" + frm.FrmH + "px;text-align: left;' >");
                    this.UCEn1.Add("\t\n <iframe ID='F" + frm.No + "' src='" + src + "' frameborder=0  style='position:absolute;width:" + frm.FrmW + "px; height:" + frm.FrmH + "px;text-align: left;'  leftMargin='0'  topMargin='0'  /></iframe>");
                    this.UCEn1.Add("\t\n </DIV>");
                }
                else
                {
                    #region 载入相关文件.
                    this.Page.RegisterClientScriptBlock("sg",
                                                        "<link href='./Style/Frm/Tab.css' rel='stylesheet' type='text/css' />");

                    this.Page.RegisterClientScriptBlock("s2g4",
                                                        "<script language='JavaScript' src='./Style/Frm/jquery.min.js' ></script>");

                    this.Page.RegisterClientScriptBlock("sdf24j",
                                                        "<script language='JavaScript' src='./Style/Frm/jquery.idTabs.min.js' ></script>");

                    this.Page.RegisterClientScriptBlock("sdsdf24j",
                                                        "<script language='JavaScript' src='./Style/Frm/TabClick.js' ></script>");
                    #endregion 载入相关文件.

                    this.UCEn1.Clear();
                    this.UCEn1.Add("<div  style='clear:both' ></div>");
                    this.UCEn1.Add("\t\n<div  id='usual2' class='usual' >");  //begain.

                    #region 输出标签.
                    this.UCEn1.Add("\t\n <ul  class='abc' style='background:red;border-color: #800000;border-width: 10px;' >");
                    foreach (Frm frm in frms)
                    {
                        FrmNode fn  = frm.HisFrmNode;
                        string  src = "";
                        src = fn.FrmUrl + ".aspx?FK_MapData=" + frm.No + "&FID=" + fid + "&IsEdit=0&IsPrint=0&FK_Node=" + nd.NodeID + "&WorkID=" + tk.WorkID;
                        this.UCEn1.Add("\t\n<li><a href=\"#" + frm.No + "\" onclick=\"TabClick('" + frm.No + "','" + src + "');\" >" + frm.Name + "</a></li>");
                    }
                    this.UCEn1.Add("\t\n </ul>");
                    #endregion 输出标签.

                    #region 输出表单 iframe 内容.
                    foreach (Frm frm in frms)
                    {
                        FrmNode fn = frm.HisFrmNode;
                        this.UCEn1.Add("\t\n <DIV id='" + frm.No + "' style='width:" + frm.FrmW + "px; height:" + frm.FrmH + "px;text-align: left;' >");
                        string src = "loading.htm";
                        this.UCEn1.Add("\t\n <iframe ID='F" + frm.No + "' src='" + src + "' frameborder=0  style='position:absolute;width:" + frm.FrmW + "px; height:" + frm.FrmH + "px;text-align: left;'  leftMargin='0'  topMargin='0'   /></iframe>");
                        this.UCEn1.Add("\t\n </DIV>");
                    }
                    #endregion 输出表单 iframe 内容.

                    this.UCEn1.Add("\t\n</div>"); // end  usual2

                    // 设置选择的默认值.
                    this.UCEn1.Add("\t\n<script type='text/javascript'>");
                    this.UCEn1.Add("\t\n  $(\"#usual2 ul\").idTabs(\"" + frms[0].No + "\");");
                    this.UCEn1.Add("\t\n</script>");
                }
            }
        }
예제 #12
0
        protected void Page_Load(object sender, EventArgs e)
        {
            #region  属性
            string sealName = null;
            #endregion 属性

#warning 没有缓存经常预览与设计不一致

            MapData md = new MapData();
            md.No = this.FK_MapData;
            if (this.Request.QueryString["IsTest"] == "1")
            {
                md.RepairMap();
                BP.Sys.SystemConfig.DoClearCash_del();
            }

            if (this.Request.QueryString["IsLoadData"] == "1")
            {
                this.UCEn1.IsLoadData = true;
            }

            if (md.RetrieveFromDBSources() == 0 && md.Name.Length > 3)
            {
                /*如果没有找到,就可能是 dtl 。*/
                if (md.HisFrmType == FrmType.Url || md.HisFrmType == FrmType.SLFrm)
                {
                    string no       = Request.QueryString["NO"];
                    string urlParas = "OID=" + this.OID + "&NO=" + no + "&WorkID=" + this.WorkID + "&FK_Node=" + this.FK_Node + "&UserNo=" + WebUser.No + "&SID=" + this.SID;
                    /*如果是URL.*/
                    if (md.Url.Contains("?") == true)
                    {
                        this.Response.Redirect(md.Url + "&" + urlParas, true);
                    }
                    else
                    {
                        this.Response.Redirect(md.Url + "?" + urlParas, true);
                    }
                    return;
                }

                /* 没有找到此map. */
                MapDtl dtl   = new MapDtl(this.FK_MapData);
                GEDtl  dtlEn = dtl.HisGEDtl;
                dtlEn.SetValByKey("OID", this.FID);

                if (dtlEn.EnMap.Attrs.Count <= 0)
                {
                    md.RepairMap();
                    this.Response.Redirect(this.Request.RawUrl, true);
                    return;
                }

                int i = dtlEn.RetrieveFromDBSources();

                string[] paras = this.RequestParas.Split('&');
                foreach (string str in paras)
                {
                    if (string.IsNullOrEmpty(str) || str.Contains("=") == false)
                    {
                        continue;
                    }

                    string[] kvs = str.Split('=');
                    dtlEn.SetValByKey(kvs[0], kvs[1]);
                }
                Width = md.MaxRight + md.MaxLeft * 2 + 10 + "";
                if (float.Parse(Width) < 500)
                {
                    Width = "900";
                }

                Height = md.MaxEnd > md.FrmH ? md.MaxEnd + "" : md.FrmH + "";
                if (float.Parse(Height) <= 800)
                {
                    Height = "800";
                }

                this.UCEn1.Add("<div id=divCCForm style='width:" + Width + "px;height:" + Height + "px' >");

                if (md.HisFrmType == FrmType.FreeFrm)
                {
                    this.UCEn1.BindCCForm(dtlEn, this.FK_MapData, !this.IsEdit, 0, this.IsLoadData);
                }

                if (md.HisFrmType == FrmType.Column4Frm)
                {
                    this.UCEn1.BindCCForm(dtlEn, this.FK_MapData, !this.IsEdit, 0, this.IsLoadData);
                }

                this.AddJSEvent(dtlEn);
                this.UCEn1.Add("</div>");
            }
            else
            {
                /*如果没有找到,就可能是dtl。*/
                if (md.HisFrmType == FrmType.Url || md.HisFrmType == FrmType.SLFrm)
                {
                    string no       = Request.QueryString["NO"];
                    string urlParas = "OID=" + this.OID + "&NO=" + no + "&WorkID=" + this.WorkID + "&FK_Node=" + this.FK_Node + "&IsEdit=" + this.IsEdit.ToString() + "&UserNo=" + WebUser.No + "&SID=" + this.SID;
                    /*如果是URL.*/
                    if (md.Url.Contains("?") == true)
                    {
                        this.Response.Redirect(md.Url + "&" + urlParas, true);
                    }
                    else
                    {
                        this.Response.Redirect(md.Url + "?" + urlParas, true);
                    }
                    return;
                }

                if (md.HisFrmType == FrmType.WordFrm)
                {
                    string no       = Request.QueryString["NO"];
                    string urlParas = "OID=" + this.OID + "&NO=" + no + "&WorkID=" + this.WorkID + "&FK_Node=" + this.FK_Node + "&UserNo=" + WebUser.No + "&SID=" + this.SID + "&FK_MapData=" + this.FK_MapData + "&OIDPKVal=" + this.OIDPKVal + "&FID=" + this.FID + "&FK_Flow=" + this.FK_Flow;
                    /*如果是URL.*/
                    string   requestParas = this.RequestParas;
                    string[] parasArrary  = this.RequestParas.Split('&');
                    foreach (string str in parasArrary)
                    {
                        if (string.IsNullOrEmpty(str) || str.Contains("=") == false)
                        {
                            continue;
                        }
                        string[] kvs = str.Split('=');
                        if (urlParas.Contains(kvs[0]))
                        {
                            continue;
                        }
                        urlParas += "&" + kvs[0] + "=" + kvs[1];
                    }
                    if (md.Url.Contains("?") == true)
                    {
                        this.Response.Redirect("FrmWord.aspx?1=2" + "&" + urlParas, true);
                    }
                    else
                    {
                        this.Response.Redirect("FrmWord.aspx" + "?" + urlParas, true);
                    }
                    return;
                }

                if (md.HisFrmType == FrmType.ExcelFrm)
                {
                    this.Response.Redirect("FrmExcel.aspx?1=2" + this.RequestParas, true);
                    return;
                }

                GEEntity en = md.HisGEEn;

                #region 求出 who is pk 值.
                int    pk     = this.OID;
                string nodeid = this.FK_Node.ToString();
                if (nodeid != "0" && string.IsNullOrEmpty(this.FK_Flow) == false)
                {
                    /*说明是流程调用它, 就要判断谁是表单的PK.*/
                    FrmNode fn = new FrmNode(this.FK_Flow, this.FK_Node, this.FK_MapData);
                    switch (fn.WhoIsPK)
                    {
                    case WhoIsPK.FID:
                        pk = this.FID;
                        if (pk == 0)
                        {
                            throw new Exception("@没有接收到参数FID");
                        }
                        break;

                    case WhoIsPK.CWorkID:     /*延续流程ID*/
                        pk = this.CWorkID;
                        if (pk == 0)
                        {
                            throw new Exception("@没有接收到参数CWorkID");
                        }
                        break;

                    case WhoIsPK.PWorkID:     /*父流程ID*/
                        pk = this.PWorkID;
                        if (pk == 0)
                        {
                            throw new Exception("@没有接收到参数PWorkID");
                        }
                        break;

                    case WhoIsPK.OID:
                    default:
                        break;
                    }
                }

                en.SetValByKey("OID", pk);
                #endregion 求出pk 值.

                if (en.EnMap.Attrs.Count <= 0)
                {
                    md.RepairMap(); //让他刷新一下,重新进入.
                    this.Response.Redirect(this.Request.RawUrl, true);
                    return;
                }

                //检查实体数据是否存在,并重新设置默认值
                if (en.RetrieveFromDBSources() == 0)
                {
                    en.ResetDefaultValAllAttr();
                    try
                    {
                        en.DirectInsert();
                    }
                    catch (Exception ex)
                    {
                        md.RepairMap();
                        en.CheckPhysicsTable();
                        throw new Exception("@装载出现错误:如果是第一次出现该错误,请刷新一次,系统有可能自动修复了。技术信息:" + ex.Message);
                    }
                }

                string[] paras = this.RequestParas.Split('&');
                foreach (string str in paras)
                {
                    if (string.IsNullOrEmpty(str) || str.Contains("=") == false)
                    {
                        continue;
                    }

                    string[] kvs = str.Split('=');
                    en.SetValByKey(kvs[0], kvs[1]);
                }

                if (en.ToString() == "0")
                {
                    en.SetValByKey("OID", pk);
                }
                this.OIDPKVal = pk;


                #region 处理表单权限控制方案
                Width = md.FrmW.ToString();//md.MaxRight + md.MaxLeft * 2 + 10 + "";
                if (float.Parse(Width) < 500)
                {
                    Width = "900";
                }

                Height = md.MaxEnd > md.FrmH ? md.MaxEnd + "" : md.FrmH + "";
                if (float.Parse(Height) <= 800)
                {
                    Height = "800";
                }

                this.UCEn1.Add("<div id=divCCForm style='width:" + Width + "px;height:" + Height + "px' >");
                if (nodeid != null)
                {
                    this.UCEn1.FK_Node = this.FK_Node;
                    /*处理表单权限控制方案*/
                    this.HisFrmNode = new FrmNode();
                    int ii = this.HisFrmNode.Retrieve(FrmNodeAttr.FK_Frm, this.FK_MapData,
                                                      FrmNodeAttr.FK_Node, int.Parse(nodeid));

                    if (ii == 0 || this.HisFrmNode.FrmSln == 0)
                    {
                        /*说明没有配置,或者方案编号为默认就不用处理,*/
                        this.UCEn1.BindCCForm(en, this.FK_MapData, !this.IsEdit, 0, this.IsLoadData);
                    }
                    else
                    {
                        FrmFields fls = new FrmFields(this.FK_MapData, this.HisFrmNode.FrmSln);
                        //求出集合.
                        MapAttrs mattrs = new MapAttrs(this.FK_MapData);
                        foreach (FrmField item in fls)
                        {
                            foreach (MapAttr attr in mattrs)
                            {
                                if (attr.KeyOfEn != item.KeyOfEn)
                                {
                                    continue;
                                }

                                if (item.IsSigan)
                                {
                                    item.UIIsEnable = false;
                                }
                                if (attr.SignType == SignType.CA)
                                {
                                    long        workId  = Convert.ToInt64(this.OID);
                                    FrmField    keyOfEn = new FrmField();
                                    QueryObject info    = new QueryObject(keyOfEn);
                                    info.AddWhere(FrmFieldAttr.FK_Node, this.FK_Node);
                                    info.addAnd();
                                    info.AddWhere(FrmFieldAttr.FK_MapData, attr.FK_MapData);
                                    info.addAnd();
                                    info.AddWhere(FrmFieldAttr.KeyOfEn, attr.KeyOfEn);
                                    info.addAnd();
                                    info.AddWhere(MapAttrAttr.UIIsEnable, "1");
                                    if (info.DoQuery() > 0)
                                    {
                                        sealName = en.GetValStrByKey(attr.KeyOfEn);
                                    }
                                }

                                attr.UIIsEnable = item.UIIsEnable;
                                attr.UIVisible  = item.UIVisible;
                                attr.IsSigan    = item.IsSigan;
                                attr.DefValReal = item.DefVal;
                            }
                        }

                        #region 设置默认值.
                        if (this.IsEdit == true)
                        {
                            bool isHave = false;
                            foreach (MapAttr attr in mattrs)
                            {
                                //if (attr.UIIsEnable)
                                //    continue;

                                if (attr.DefValReal.Contains("@") == false)
                                {
                                    continue;
                                }

                                en.SetValByKey(attr.KeyOfEn, attr.DefVal);
                                isHave = true;
                            }
                            if (isHave)
                            {
                                en.DirectUpdate(); //让其直接更新.
                            }
                        }
                        #endregion 设置默认值.

                        //按照当前方案绑定表单.

                        /*
                         * 修改说明:如果是自定义方案,就不要装载填充了.
                         */

                        ////是否要重新装载数据.
                        bool isLoadData = this.IsLoadData;
                        if (this.HisFrmNode.IsEnableLoadData == true)
                        {
                            /*如果允许启用.*/
                        }
                        else
                        {
                            isLoadData = false;
                        }

                        this.UCEn1.BindCCForm(en, md, mattrs, this.FK_MapData, !this.IsEdit, Int64.Parse(Width), isLoadData);

                        #region 检查必填项
                        string scriptCheckFrm = "";
                        scriptCheckFrm += "\t\n<script type='text/javascript' >";
                        scriptCheckFrm += "\t\n function CheckFrmSlnIsNull(){ ";
                        scriptCheckFrm += "\t\n var isPass = true;";
                        scriptCheckFrm += "\t\n var alloweSave = true;";
                        scriptCheckFrm += "\t\n var erroMsg = '提示信息:';";

                        //表单权限设置为必填项
                        //查询出来,需要不为空的
                        Paras ps = new Paras();
                        ps.SQL = "SELECT KeyOfEn, Name FROM Sys_FrmSln WHERE FK_MapData=" + ps.DBStr + "FK_MapData AND FK_Node=" + ps.DBStr + "FK_Node AND IsNotNull=" + ps.DBStr + "IsNotNull";
                        ps.Add(FrmFieldAttr.FK_MapData, this.FK_MapData);
                        ps.Add(FrmFieldAttr.FK_Node, this.FK_Node);
                        ps.Add(FrmFieldAttr.IsNotNull, 1);

                        //查询
                        System.Data.DataTable dtKeys = DBAccess.RunSQLReturnTable(ps);
                        // 检查数据是否完整.
                        foreach (System.Data.DataRow dr in dtKeys.Rows)
                        {
                            string             key        = dr[0].ToString();
                            string             name       = dr[1].ToString();
                            BP.Web.Controls.TB TB_NotNull = this.UCEn1.GetTBByID("TB_" + key);
                            if (TB_NotNull != null)
                            {
                                scriptCheckFrm += "\t\n try{  ";
                                scriptCheckFrm += "\t\n var element = document.getElementById('" + TB_NotNull.ClientID + "');";
                                //验证输入的正则格式
                                scriptCheckFrm += "\t\n if(element && element.readOnly == true) return;";
                                scriptCheckFrm += "\t\n isPass = EleSubmitCheck(element,'.{1}','" + name + ",不能为空。');";
                                scriptCheckFrm += "\t\n  if(isPass == false){";
                                scriptCheckFrm += "\t\n    alloweSave = false;";
                                scriptCheckFrm += "\t\n    erroMsg += '" + name + ",不能为空。';";
                                scriptCheckFrm += "\t\n  }";
                                scriptCheckFrm += "\t\n } catch(e) { ";
                                scriptCheckFrm += "\t\n  alert(e.name  + e.message);  return false;";
                                scriptCheckFrm += "\t\n } ";
                            }
                        }
                        scriptCheckFrm += "\t\n return alloweSave; } ";
                        scriptCheckFrm += "\t\n</script>";
                        #endregion
                        //检查必填项
                        this.UCEn1.Add(scriptCheckFrm);
                    }
                }
                else
                {
                    this.UCEn1.BindCCForm(en, this.FK_MapData, !this.IsEdit, 0, this.IsLoadData);
                }
                this.UCEn1.Add("</div>");
                #endregion

                if (!IsPostBack)
                {
                    if (md.IsHaveCA)
                    {
                        #region 检查是否有ca签名.
                        //if (md.IsHaveCA == true)
                        //{
                        //    if (string.IsNullOrEmpty(sealName))
                        //        sealName = WebUser.No;

                        //    string basePath = Server.MapPath("~/DataUser/Siganture/" + WorkID);

                        //    if (!System.IO.Directory.Exists(basePath))
                        //    {
                        //        System.IO.Directory.CreateDirectory(basePath);
                        //    }

                        //    // basePath = "C:\\";

                        //    this.TB_SealFile.Text = basePath + "\\" + sealName + ".jpg";

                        //    #region 获取存储的 签名信息

                        //    BP.Tools.WFSealData sealData = new BP.Tools.WFSealData();
                        //    sealData.RetrieveByAttrAnd(BP.Tools.WFSealDataAttr.OID, WorkID, BP.Tools.WFSealDataAttr.FK_Node, FK_Node);
                        //    //sealData.RetrieveFromDBSources();
                        //    if (!string.IsNullOrEmpty(sealData.SealData))
                        //    {
                        //        this.TB_SealData.Text = sealData.SealData;
                        //    }
                        //    #endregion

                        //    //this.TB_SealData.Text = en.GetValStringByKey("SealData");
                        //}
                        #endregion 检查是否有ca签名.
                    }
                }
                this.AddJSEvent(en);
            }

            Session["Count"]        = null;
            this.Btn_Save.Visible   = this.HisFrmNode.IsEdit;
            this.Btn_Save.Enabled   = this.HisFrmNode.IsEdit;
            this.Btn_Save.BackColor = System.Drawing.Color.White;
            Node curNd = new Node();
            curNd.NodeID = this.FK_Node;
            curNd.RetrieveFromDBSources();

            if (curNd.FormType == NodeFormType.SheetTree)
            {
                this.Btn_Save.Visible  = true;
                this.Btn_Save.Enabled  = true;
                this.Btn_Print.Enabled = false;
                this.Btn_Print.Visible = false;
            }
            else
            {
                this.Btn_Print.Visible = this.HisFrmNode.IsPrint;
                this.Btn_Print.Enabled = this.HisFrmNode.IsPrint;
                this.Btn_Print.Attributes["onclick"] = "window.open('Print.aspx?FK_Node=" + this.FK_Node + "&FID=" + this.FID + "&FK_MapData=" + this.FK_MapData + "&WorkID=" + this.OID + "', '', 'dialogHeight: 350px; dialogWidth:450px; center: yes; help: no'); return false;";
            }
        }
예제 #13
0
        public void BindList()
        {
            string text = "";

            BP.WF.Node nd  = new BP.WF.Node(this.FK_Node);
            FrmNodes   fns = new FrmNodes(this.FK_Flow, this.FK_Node);

            #region 如果没有ndFrm 就增加上.
            bool isHaveNDFrm = false;
            foreach (FrmNode fn in fns)
            {
                if (fn.FK_Frm == "ND" + this.FK_Node)
                {
                    isHaveNDFrm = true;
                    break;
                }
            }
            if (isHaveNDFrm == false)
            {
                FrmNode fn = new FrmNode();
                fn.FK_Flow = this.FK_Flow;
                fn.FK_Frm  = "ND" + this.FK_Node;
                fn.FK_Node = this.FK_Node;

                fn.FrmEnableRole = FrmEnableRole.Disable; //就是默认不启用.
                fn.FrmSln        = 0;
                //  fn.IsEdit = true;
                fn.IsEnableLoadData = true;
                fn.Insert();
                fns.AddEntity(fn);
            }
            #endregion 如果没有ndFrm 就增加上.

            string tfModel = SystemConfig.AppSettings["TreeFrmModel"];
            this.Pub1.AddTable("width=100%");
            this.Pub1.AddCaption("设置节点:(" + nd.Name + ")绑定表单");
            this.Pub1.AddTR();
            this.Pub1.AddTDTitle("Idx");
            this.Pub1.AddTDTitle("表单编号");
            this.Pub1.AddTDTitle("名称");
            if (tfModel == "1")
            {
                this.Pub1.AddTDTitle("关键字段");
            }

            this.Pub1.AddTDTitle("启用规则");
            // this.Pub1.AddTDTitle("可编辑否?");
            this.Pub1.AddTDTitle("可打印否?");
            this.Pub1.AddTDTitle("是否启用<br>装载填充事件");
            this.Pub1.AddTDTitle("权限控制<br>方案");
            this.Pub1.AddTDTitle("表单元素<br>自定义设置");
            this.Pub1.AddTDTitle("谁是主键?");
            this.Pub1.AddTDTitle("文件模版");

            if (nd.HisRunModel == RunModel.FL || nd.HisRunModel == RunModel.FHL)
            {
                this.Pub1.AddTDTitle("是否1变N"); //add by zhoupeng 2016.03.25 for hainan.
            }
            if (nd.HisRunModel == RunModel.SubThread)
            {
                this.Pub1.AddTDTitle("数据汇总"); //add by zhoupeng 2016.03.25 for hainan.
            }
            this.Pub1.AddTDTitle("顺序");
            this.Pub1.AddTDTitle("");
            this.Pub1.AddTDTitle("");
            this.Pub1.AddTREnd();

            int idx = 1;
            foreach (FrmNode fn in fns)
            {
                MapData md = new MapData();
                md.No = fn.FK_Frm;
                if (md.RetrieveFromDBSources() == 0)
                {
                    fn.Delete();  //说明该表单不存在了,就需要把这个删除掉.
                    continue;
                }

                this.Pub1.AddTR();
                this.Pub1.AddTDIdx(idx++);
                this.Pub1.AddTD(fn.FK_Frm);

                if (fn.FK_Frm == "ND" + this.FK_Node)
                {
                    this.Pub1.AddTDB("<a href=\"javascript:WinOpen('../MapDef/CCForm/Frm.aspx?FK_MapData=" + md.No + "&FK_Flow=" + this.FK_Flow + "');\" >" + md.Name + "</a>");
                }
                else
                {
                    this.Pub1.AddTD("<a href=\"javascript:WinOpen('../MapDef/CCForm/Frm.aspx?FK_MapData=" + md.No + "&FK_Flow=" + this.FK_Flow + "');\" >" + md.Name + "</a>");
                }

                DDL ddl = new DDL();
                //获取当前独立表单中的所有字段  add by 海南  zqp
                if (tfModel == "1")
                {
                    //获取它的字段集合
                    MapAttrs attrs = new MapAttrs();
                    attrs.Retrieve(MapAttrAttr.FK_MapData, md.No);

                    MapAttrs attrNs = new MapAttrs();
                    //去掉一些基础字段
                    foreach (MapAttr attr in attrs)
                    {
                        switch (attr.KeyOfEn)
                        {
                        case "Title":
                        case "FK_Emp":
                        case "MyNum":
                        case "FK_NY":
                        case WorkAttr.Emps:
                        case WorkAttr.OID:
                        case StartWorkAttr.Rec:
                        case StartWorkAttr.FID:
                            continue;

                        default:
                            break;
                        }
                        attrNs.AddEntity(attr);
                    }
                    //添加到页面中
                    DDL myddl = new DDL();
                    myddl.ID = "DDL_Attr_" + md.No;
                    myddl.BindEntities(attrNs, MapAttrAttr.KeyOfEn, MapAttrAttr.Name);
                    myddl.SetSelectItem(fn.GuanJianZiDuan);
                    this.Pub1.AddTD(myddl);
                }

                //为了扩充的需要,把下拉框的模式去掉了.
                //ddl = new DDL();
                //ddl.ID = "DDL_FrmEnableRole_" + md.No;
                //ddl.Items.Add(new ListItem("始终启用", "0"));
                //ddl.Items.Add(new ListItem("有数据时启用", "1"));
                //ddl.Items.Add(new ListItem("有参数时启用", "2"));
                //ddl.Items.Add(new ListItem("按表单字段条件", "3"));
                //ddl.Items.Add(new ListItem("按SQL表达式", "4"));
                //ddl.SetSelectItem(fn.FrmEnableRoleInt); //设置权限控制方案.
                //this.Pub1.AddTD(ddl);

                this.Pub1.AddTD("<a href=\"javascript:WinOpen('./FlowFrm/FrmEnableRole.aspx?FK_Node=" + fn.FK_Node + "&FK_MapData=" + fn.FK_Frm + "')\">设置(" + fn.FrmEnableRoleText + ")</a>");

                CheckBox cb = new CheckBox();
                //cb.ID = "CB_IsEdit_" + md.No;
                //cb.Text = "可编辑否?";
                //cb.Checked = fn.IsEdit;
                //this.Pub1.AddTD(cb);

                cb         = new CheckBox();
                cb.ID      = "CB_IsPrint_" + md.No;
                cb.Text    = "打印否?";
                cb.Checked = fn.IsPrint;
                this.Pub1.AddTD(cb);

                cb         = new CheckBox();
                cb.ID      = "CB_IsEnableLoadData_" + md.No;
                cb.Text    = "启用否?";
                cb.Checked = fn.IsEnableLoadData;
                this.Pub1.AddTD(cb);

                ddl    = new DDL();
                ddl.ID = "DDL_Sln_" + md.No;
                ddl.Items.Add(new ListItem("默认方案", "0"));
                ddl.Items.Add(new ListItem("自定义", this.FK_Node.ToString()));
                ddl.Items.Add(new ListItem("不可编辑", "1")); //让其不可编辑.

                ddl.SetSelectItem(fn.FrmSln);             //设置权限控制方案.
                this.Pub1.AddTD(ddl);

                this.Pub1.AddTDBegin();
                this.Pub1.Add("<a href=\"javascript:WinField('" + md.No + "','" + this.FK_Node + "','" + this.FK_Flow + "')\" >字段</a>");
                this.Pub1.Add("-<a href=\"javascript:WinFJ('" + md.No + "','" + this.FK_Node + "','" + this.FK_Flow + "')\" >附件</a>");
                this.Pub1.Add("-<a href=\"javascript:WinDtl('" + md.No + "','" + this.FK_Node + "','" + this.FK_Flow + "')\" >从表</a>");

                if (md.HisFrmType == FrmType.ExcelFrm)
                {
                    this.Pub1.Add("-<a href=\"javascript:ToolbarExcel('" + md.No + "','" + this.FK_Node + "','" + this.FK_Flow + "')\" >ToolbarExcel</a>");
                }

                if (md.HisFrmType == FrmType.WordFrm)
                {
                    this.Pub1.Add("-<a href=\"javascript:ToolbarWord('" + md.No + "','" + this.FK_Node + "','" + this.FK_Flow + "')\" >ToolbarWord</a>");
                }

                this.Pub1.AddTDEnd();

                ddl    = new DDL();
                ddl.ID = "DDL_WhoIsPK_" + md.No;
                ddl.BindSysEnum("WhoIsPK");
                ddl.SetSelectItem((int)fn.WhoIsPK); //谁是主键?.
                this.Pub1.AddTD(ddl);

                if (md.HisFrmType == FrmType.ExcelFrm || md.HisFrmType == FrmType.WordFrm)
                {
                    ddl    = new DDL();
                    ddl.ID = "DDL_File_" + md.No;
                    string[] files = System.IO.Directory.GetFiles(BP.Sys.SystemConfig.PathOfDataUser + "\\FrmOfficeTemplate\\", md.No + "*.xls");
                    foreach (string str in files)
                    {
                        //System.IO.FileInfo info=new System.IO.FileInfo(
                        ddl.Items.Add(new ListItem(str.Substring(str.LastIndexOf(md.No)), str));
                    }
                    this.Pub1.AddTD(ddl);
                }
                else
                {
                    this.Pub1.AddTD("无效");
                }

                if (nd.HisRunModel == RunModel.FL || nd.HisRunModel == RunModel.FHL)
                {
                    cb         = new CheckBox();
                    cb.ID      = "CB_Is1ToN_" + md.No;
                    cb.Text    = "是否1变N?";
                    cb.Checked = fn.Is1ToN;
                    this.Pub1.AddTD(cb);//add by zhoupeng 2016.03.25 for hainan.
                }

                if (nd.HisRunModel == RunModel.SubThread)
                {
                    ddl    = new DDL();
                    ddl.ID = "DDL_HuiZong_" + md.No;
                    ddl.Items.Add(new ListItem("不汇总数据", "0"));

                    BP.WF.Template.FrmNodes myfns = new FrmNodes();
                    myfns.Retrieve(FrmNodeAttr.FK_Flow, nd.FK_Flow);

                    //组合这个字符串.
                    string strs = ";" + fn.FK_Frm + ";";
                    foreach (BP.WF.Template.FrmNode myfrn in myfns)
                    {
                        if (strs.Contains(";" + myfrn.FK_Frm + ";") == true)
                        {
                            continue;
                        }

                        strs += ";" + myfrn.FK_Frm + ";";

                        //检查该frm 是否有dtl.
                        MapDtls dtls = new MapDtls(myfrn.FK_Frm);
                        if (dtls.Count == 0)
                        {
                            continue;
                        }

                        foreach (MapDtl dtl in dtls)
                        {
                            ddl.Items.Add(new ListItem("汇总到:" + myfrn.HisFrm.Name + "-" + dtl.Name, myfrn.HisFrm.No + "@" + dtl.No));
                        }
                    }
                    ddl.SetSelectItem(fn.HuiZong); //设置汇总..
                    this.Pub1.AddTD(ddl);
                }

                TextBox tb = new TextBox();
                tb.ID      = "TB_Idx_" + md.No;
                tb.Text    = fn.Idx.ToString();
                tb.Columns = 5;
                this.Pub1.AddTD(tb);

                this.Pub1.AddTDA("BindFrms.aspx?ShowType=EditPowerOrder&FK_Node=" + this.FK_Node + "&FK_Flow=" + this.FK_Flow + "&MyPK=" + fn.MyPK + "&DoType=Up", "上移");
                this.Pub1.AddTDA("BindFrms.aspx?ShowType=EditPowerOrder&FK_Node=" + this.FK_Node + "&FK_Flow=" + this.FK_Flow + "&MyPK=" + fn.MyPK + "&DoType=Down", "下移");

                this.Pub1.AddTREnd();
            }

            this.Pub1.AddTableEnd();

            text = "<input type=button onclick=\"javascript:BindFrms('" + this.FK_Node + "','" + this.FK_Flow + "');\" value='修改表单绑定'  class=Btn />";
            this.Pub1.Add(text);

            Button btn = new Button();
            btn.ID       = "Save";
            btn.Text     = "保存";
            btn.CssClass = "Btn";
            btn.Click   += new EventHandler(btn_SavePowerOrders_Click);
            this.Pub1.Add(btn);

            text = "<input type=button onclick=\"javascript:window.close();\" value='关闭'  class=Btn />";
            this.Pub1.Add(text);
        }
예제 #14
0
        protected void Page_Load(object sender, EventArgs e)
        {
            #region 执行功能.
            if (this.IsPostBack == false)
            {
                switch (this.DoType)
                {
                case "Up":
                    FrmNode fnU = new FrmNode(this.MyPK);
                    fnU.DoUp();
                    break;

                case "Down":
                    FrmNode fnD = new FrmNode(this.MyPK);
                    fnD.DoDown();
                    break;

                case "DelFrm":
                    FrmNodes fnsR = new FrmNodes();
                    if (fnsR.Retrieve(FrmNodeAttr.FK_Frm, this.FK_MapData) != 0)
                    {
                        this.Alert("此表单已经被多个流程节点(" + fnsR.Count + ")绑定,所以您不能删除它。");
                    }
                    else
                    {
                        MapData md = new MapData();
                        md.No = this.FK_MapData;
                        md.Delete();
                    }
                    break;

                case "Del":
                    FrmNodes fns = new FrmNodes(this.FK_Flow, this.FK_Node);
                    foreach (FrmNode fn in fns)
                    {
                        if (fn.FK_Frm == this.FK_MapData)
                        {
                            fn.Delete();
                            break;
                        }
                    }
                    break;

                case "Add":
                    FrmNode fnN = new FrmNode();
                    fnN.FK_Frm  = this.FK_MapData;
                    fnN.FK_Node = this.FK_Node;
                    fnN.FK_Flow = this.FK_Flow;
                    fnN.Save();
                    break;

                default:
                    break;
                }
            }
            #endregion 执行功能.

            switch (this.ShowType)
            {
            case "Frm":
                this.BindFrm();
                this.Title = "表单";
                break;

            case "FrmLib":
            case "FrmLab":
                this.BindFrmLib();
                this.Title = "表单库";
                break;

            case "FlowFrms":
                this.BindFlowFrms();
                this.Title = "流程表单";
                break;

            case "FrmSorts":
                this.BindFrmSorts();
                this.Title = "流程类别";
                break;

            case "EditPowerOrder":     //编辑权限与顺序.
                this.BindEditPowerOrder();
                break;

            default:
                break;
            }

            this.BindLeft();
        }
예제 #15
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //没有指定父容器高宽,宽度100%不可用,
            //指定固定width,页面放大缩小,布局不会乱
            this.Pub1.AddTable(" style='width:100%;' ");
            this.Pub1.AddCaption("表单[" + md.Name + "]与流程[" + flow.Name + "]上全部节点的绑定");

            this.Pub1.AddTR();
            string thCenter = "' style='text-align:center;'";

            this.Pub1.AddTH(thCenter, "节点编号");
            this.Pub1.AddTH(thCenter, "是否绑定");
            this.Pub1.AddTH(thCenter, "可否编辑");
            this.Pub1.AddTH(thCenter, "可否打印");
            this.Pub1.AddTH(thCenter, "是否启用装载填充事件");
            this.Pub1.AddTH(thCenter, "权限控制方案");
            this.Pub1.AddTH(thCenter, "表单元素控制方案");
            this.Pub1.AddTH(thCenter, "谁是主键");
            this.Pub1.AddTREnd();


            int      idx = 1;
            FrmNode  fn  = null;
            CheckBox cb  = null;

            BP.Web.Controls.DDL ddl = null;

            #region 循环添加Node
            foreach (Node nd in nds)
            {
                this.Pub1.AddTR();
                this.Pub1.AddTDIdx(nd.NodeID);

                //检索出来的数据是唯一的
                fn = new FrmNode(this.FK_Flow,
                                 nd.NodeID, this.FK_MapData);

                cb      = new CheckBox();
                cb.ID   = "CB_NodeName_" + nd.NodeID;
                cb.Text = nd.Name;

                if (fn.FK_Node == nd.NodeID)
                {
                    cb.Checked = true;
                }
                else
                {
                    cb.Checked = false;
                }

                this.Pub1.AddTD(" ' style='with:100px;' ", cb);


                cb         = new CheckBox();
                cb.ID      = "CB_IsEdit_" + nd.NodeID;
                cb.Text    = "可否编辑";
                cb.Checked = fn.IsEdit;
                this.Pub1.AddTD(thCenter, cb);

                cb         = new CheckBox();
                cb.ID      = "CB_IsPrint_" + nd.NodeID;
                cb.Text    = "可否打印";
                cb.Checked = fn.IsPrint;
                this.Pub1.AddTD(thCenter, cb);

                cb         = new CheckBox();
                cb.ID      = "CB_IsEnableLoadData_" + nd.NodeID;
                cb.Text    = "是否启用";
                cb.Checked = fn.IsEnableLoadData;
                this.Pub1.AddTD(thCenter, cb);

                ddl    = new BP.Web.Controls.DDL();
                ddl.ID = "DDL_Sln_" + nd.NodeID;
                ddl.Items.Add(new ListItem("默认方案", "0"));
                ddl.Items.Add(new ListItem("自定义", nd.NodeID.ToString()));
                ddl.SetSelectItem(fn.FrmSln); //设置权限控制方案.
                this.Pub1.AddTD(thCenter, ddl);


                this.Pub1.AddTDBegin(" style='text-align:center;' ");
                this.Pub1.Add("<a href=\"javascript:WinField('" + md.No + "','" + nd.NodeID + "','" + this.FK_Flow + "')\" >字段</a>");
                this.Pub1.Add("-<a href=\"javascript:WinFJ('" + md.No + "','" + nd.NodeID + "','" + this.FK_Flow + "')\" >附件</a>");
                this.Pub1.Add("-<a href=\"javascript:WinDtl('" + md.No + "','" + nd.NodeID + "','" + this.FK_Flow + "')\" >从表</a>");

                if (md.HisFrmType == FrmType.ExcelFrm)
                {
                    this.Pub1.Add("-<a href=\"javascript:ToolbarExcel('" + md.No + "','" + nd.NodeID + "','" + this.FK_Flow + "')\" >ToolbarExcel</a>");
                }

                if (md.HisFrmType == FrmType.WordFrm)
                {
                    this.Pub1.Add("-<a href=\"javascript:ToolbarWord('" + md.No + "','" + nd.NodeID + "','" + this.FK_Flow + "')\" >ToolbarWord</a>");
                }

                this.Pub1.AddTDEnd();


                ddl    = new BP.Web.Controls.DDL();
                ddl.ID = "DDL_WhoIsPK_" + nd.NodeID;
                ddl.BindSysEnum("WhoIsPK");
                ddl.SetSelectItem((int)fn.WhoIsPK); //谁是主键?.
                this.Pub1.AddTD(thCenter, ddl);

                this.Pub1.AddTREnd();
                idx += 1;
            }
            #endregion  循环添加Node

            this.Pub1.AddTR();
            this.Pub1.AddTDBegin(" colspan='8' style='text-align:right;border:none;padding-top:20px;' ");

            Button btn = new Button();
            btn.ID       = "Save";
            btn.Text     = "保存";
            btn.CssClass = "Btn";
            btn.Click   += new EventHandler(btn_SavePowerOrders_Click);

            this.Pub1.Add(btn);

            string text = "<input style='margin-left:20px;margin-right:40px;' type=button " +
                          "onclick=\"javascript:closeCurTab(\'" + md.Name + "\');\" value='关闭'  class=Btn />";
            this.Pub1.Add(text);

            this.Pub1.AddTDEnd();
            this.Pub1.AddTREnd();
            this.Pub1.AddTableEnd();
        }
        /// <summary>
        /// 打开工作处理器,仅仅查看,不能修改。
        /// </summary>
        public void BindTrack_ViewWorkForm()
        {
            string appPath = this.Request.ApplicationPath;
            Node   nd      = null;
            Track  tk      = new Track();

            tk.FK_Flow = this.FK_Flow;
            tk.NDFrom  = this.FK_Node;

            tk.WorkID = this.WorkID;
            if (this.MyPK != null)
            {
                tk = new Track(this.FK_Flow, this.MyPK);
                nd = new Node(tk.NDFrom);
            }
            else
            {
                nd = new Node(this.FK_Node);
            }

            Flow  fl     = new Flow(this.FK_Flow);
            Int64 workid = 0;

            if (nd.HisRunModel == RunModel.SubThread)
            {
                workid = tk.FID;
            }
            else
            {
                workid = tk.WorkID;
            }

            Int64 fid = this.FID;

            if (this.FID == 0)
            {
                fid = tk.FID;
            }

            DataTable ndrpt = DBAccess.RunSQLReturnTable("SELECT PFlowNo,PWorkID FROM " + fl.PTable + " WHERE OID=" + workid);

            string urlExt = "&PFlowNo=" + ndrpt.Rows[0]["PFlowNo"] + "&PWorkID=" + ndrpt.Rows[0]["PWorkID"] + "&IsToobar=0&IsHidden=true";

            urlExt += "&From=CCFlow&TruckKey=" + tk.GetValStrByKey("MyPK");

            if (nd.HisFormType == NodeFormType.SDKForm || nd.HisFormType == NodeFormType.SelfForm)
            {
                if (nd.FormUrl.Contains("?"))
                {
                    this.Response.Redirect(nd.FormUrl + "&WorkID=" + tk.WorkID + "&FK_Node=" + nd.NodeID + "&FK_Flow=" + nd.FK_Flow + "&FID=" + fid + urlExt, true);
                }
                else
                {
                    this.Response.Redirect(nd.FormUrl + "?WorkID=" + tk.WorkID + "&FK_Node=" + nd.NodeID + "&FK_Flow=" + nd.FK_Flow + "&FID=" + fid + urlExt, true);
                }

                if (nd.HisFormType == NodeFormType.SDKForm)
                {
                    if (nd.FormUrl.Contains("?"))
                    {
                        this.Response.Redirect(nd.FormUrl + "&WorkID=" + tk.WorkID + "&FK_Node=" + nd.NodeID + "&FK_Flow=" + nd.FK_Flow + "&FID=" + fid + urlExt, true);
                    }
                    else
                    {
                        this.Response.Redirect(nd.FormUrl + "?WorkID=" + tk.WorkID + "&FK_Node=" + nd.NodeID + "&FK_Flow=" + nd.FK_Flow + "&FID=" + fid + urlExt, true);
                    }
                    return;
                }

                this.Response.Redirect(nd.FormUrl + "&WorkID=" + tk.WorkID + "&FK_Node=" + nd.NodeID + "&FK_Flow=" + nd.FK_Flow + "&FID=" + fid + urlExt, true);
                return;
            }

            Work wk = nd.HisWork;

            wk.OID = tk.WorkID;
            if (wk.RetrieveFromDBSources() == 0)
            {
                GERpt rtp = nd.HisFlow.HisGERpt;
                rtp.OID = this.WorkID;
                if (rtp.RetrieveFromDBSources() == 0)
                {
                    this.UCEn1.AddFieldSet("打开(" + nd.Name + ")错误");
                    this.UCEn1.AddH1("当前的节点数据已经被删除!!!<br> 造成此问题出现的原因如下。");
                    this.UCEn1.AddBR("1、当前节点数据被非法删除。");
                    this.UCEn1.AddBR("2、节点数据是退回人与被退回人中间的节点,这部分节点数据查看不支持。");
                    this.UCEn1.AddH1("技术信息:表" + wk.EnMap.PhysicsTable + " WorkID=" + this.WorkID);
                    this.UCEn1.AddFieldSetEnd();
                    return;
                }
                wk.Row = rtp.Row;
            }

            GenerWorkFlow gwf = new GenerWorkFlow();

            gwf.WorkID = wk.OID;

            if (nd.HisFlow.IsMD5 && wk.IsPassCheckMD5() == false)
            {
                this.UCEn1.AddFieldSet("打开(" + nd.Name + ")错误");
                this.UCEn1.AddH1("当前的节点数据已经被篡改,请报告管理员。");
                this.UCEn1.AddFieldSetEnd();
                return;
            }
            this.InitToolbar(false, appPath);
            this.UCEn1.IsReadonly = true;
            Frms frms = nd.HisFrms;

            if (frms.Count == 0)
            {
                if (nd.HisFormType == NodeFormType.FreeForm)
                {
                    MapData map = new MapData(nd.NodeFrmID);
                    /* 自由表单 */
                    Width = map.MaxRight + map.MaxLeft * 2 + 10 + "";
                    if (float.Parse(Width) < 500)
                    {
                        Width = "900";
                    }
                    Height = map.MaxEnd + "";
                    BtnLab btnLab = new BtnLab(FK_Node);

                    BtnWord = btnLab.WebOfficeEnable + "";

                    this.UCEn1.Add("<div id=divCCForm style='width:" + Width + "px;height:" + Height + "px' >");
                    this.UCEn1.BindCCForm(wk, nd.NodeFrmID, true, 0, false); //, false, false, null);
                    this.UCEn1.Add("</div>");
                }

                if (nd.HisFormType == NodeFormType.FixForm)
                {
                    MapData map = new MapData(nd.NodeFrmID);
                    if (map.TableWidth.Contains("px"))
                    {
                        Width = map.TableWidth.Replace("px", "");
                    }
                    else
                    {
                        Width = map.TableWidth + "";
                    }
                    if (map.TableWidth.Equals("100%"))
                    {
                        Width = "900";
                    }

                    this.UCEn1.Add("<div id=divCCForm style='width:" + Width + "px;height:" + map.FrmH + "px;overflow-x:scroll;' >");
                    /*傻瓜表单*/
                    this.UCEn1.IsReadonly = true;
                    this.UCEn1.BindColumn4(wk, nd.NodeFrmID); //, false, false, null);
                    //if (wk.WorkEndInfo.Length > 2)
                    //    this.UCEn1.Add(wk.WorkEndInfo);
                    this.UCEn1.Add("</div>");
                }



                BillTemplates bills = new BillTemplates();
                bills.Retrieve(BillTemplateAttr.NodeID, nd.NodeID);
                if (bills.Count >= 1)
                {
                    string title = "";
                    foreach (BillTemplate item in bills)
                    {
                        title += "<img src='/WF/Img/Btn/Word.gif' border=0/>" + item.Name + "</a>";
                    }

                    string urlr = appPath + "WF/WorkOpt/PrintDoc.aspx?FK_Node=" + nd.NodeID + "&FID=" + fid + "&WorkID=" + tk.WorkID + "&FK_Flow=" + nd.FK_Flow;
                    this.UCEn1.Add("<p><a  href=\"javascript:WinOpen('" + urlr + "','dsdd');\"  />" + title + "</a></p>");
                    //this.UCEn1.Add("<a href='' target=_blank><img src='/WF/Img/Btn/Word.gif' border=0/>" + bt.Name + "</a>");
                }
            }
            else
            {
                /* 涉及到多个表单的情况...*/
                if (nd.HisFormType == NodeFormType.SheetTree)
                {
                    Response.Redirect(appPath + "WF/FlowFormTree/FlowFormTreeView.aspx?WorkID=" + tk.WorkID + "&FK_Flow=" + nd.FK_Flow + "&FID=" + fid + "&FK_Node=" + nd.NodeID + "&CWorkID=" + this.CWorkID);
                }
                else if (nd.HisFormType != NodeFormType.DisableIt)
                {
                    Frm myfrm = new Frm();
                    myfrm.No             = "ND" + nd.NodeID;
                    myfrm.Name           = wk.EnDesc;
                    myfrm.HisFormRunType = (FormRunType)(int)nd.HisFormType;

                    FrmNode fnNode = new FrmNode();
                    fnNode.FK_Frm  = myfrm.No;
                    fnNode.IsEdit  = true;
                    fnNode.IsPrint = false;
                    switch (nd.HisFormType)
                    {
                    case NodeFormType.FixForm:
                        fnNode.HisFrmType = FrmType.Column4Frm;
                        break;

                    case NodeFormType.FreeForm:
                        fnNode.HisFrmType = FrmType.FreeFrm;
                        break;

                    case NodeFormType.SelfForm:
                        fnNode.HisFrmType = FrmType.Url;
                        break;

                    default:
                        throw new Exception("出现了未判断的异常。");
                    }
                    myfrm.HisFrmNode = fnNode;
                    frms.AddEntity(myfrm, 0);
                }
                if (frms.Count == 1)
                {
                    /* 如果禁用了节点表单,并且只有一个表单的情况。*/
                    Frm     frm = (Frm)frms[0];
                    FrmNode fn  = frm.HisFrmNode;
                    string  src = "";
                    src = fn.FrmUrl + ".aspx?FK_MapData=" + frm.No + "&FID=" + fid + "&IsEdit=0&IsPrint=0&FK_Node=" + nd.NodeID + "&WorkID=" + tk.WorkID + "&CWorkID=" + this.CWorkID;
                    this.UCEn1.Add("\t\n <DIV id='" + frm.No + "' style='width:" + frm.FrmW + "px; height:" + frm.FrmH + "px;text-align: left; background-color:white;margin:0;padding:0;' >");
                    this.UCEn1.Add("\t\n <iframe ID='F" + frm.No + "' src='" + src + "' frameborder=0  style='margin:0;padding:0;width:" + frm.FrmW + "px; height:" + frm.FrmH + "px;text-align: left;'  leftMargin='0'  topMargin='0'  /></iframe>");
                    this.UCEn1.Add("\t\n </DIV>");
                }
                else
                {
                    Frm frmFirst = null;
                    foreach (Frm frm in frms)
                    {
                        if (frmFirst == null)
                        {
                            frmFirst = frm;
                        }

                        if (frmFirst.FrmW < frm.FrmW)
                        {
                            frmFirst = frm;
                        }
                    }

                    #region 载入相关文件.
                    this.Page.RegisterClientScriptBlock("sg",
                                                        "<link href='./Style/Frm/Tab.css' rel='stylesheet' type='text/css' />");

                    this.Page.RegisterClientScriptBlock("s2g4",
                                                        "<script language='JavaScript' src='./Style/Frm/jquery.min.js' ></script>");

                    this.Page.RegisterClientScriptBlock("sdf24j",
                                                        "<script language='JavaScript' src='./Style/Frm/jquery.idTabs.min.js' ></script>");

                    this.Page.RegisterClientScriptBlock("sdsdf24j",
                                                        "<script language='JavaScript' src='./Style/Frm/TabClick.js' ></script>");
                    #endregion 载入相关文件.

                    this.UCEn1.Clear();
                    this.UCEn1.Add("<div  style='clear:both' ></div>");                                                                                             //
                    this.UCEn1.Add("\t\n<div  id='usual2' class='usual' style='width:" + frmFirst.FrmW + "px;height:auto;margin:0 auto;background-color:white;'>"); //begain.

                    #region 输出标签.
                    this.UCEn1.Add("\t\n <ul  class='abc' style='background:red;border-color: #800000;border-width: 10px;' >");
                    foreach (Frm frm in frms)
                    {
                        FrmNode fn  = frm.HisFrmNode;
                        string  src = "";
                        src = fn.FrmUrl + ".aspx?FK_MapData=" + frm.No + "&FID=" + fid + "&IsEdit=0&IsPrint=0&FK_Node=" + nd.NodeID + "&WorkID=" + tk.WorkID + "&CWorkID=" + this.CWorkID + "&FK_Flow=" + this.FK_Flow;//edited by liuxc,2015-6-17
                        this.UCEn1.Add("\t\n<li><a href=\"#" + frm.No + "\" onclick=\"TabClick('" + frm.No + "','" + src + "');\" >" + frm.Name + "</a></li>");
                    }
                    this.UCEn1.Add("\t\n </ul>");
                    #endregion 输出标签.


                    #region 输出表单 iframe 内容.
                    foreach (Frm frm in frms)
                    {
                        FrmNode fn = frm.HisFrmNode;
                        this.UCEn1.Add("\t\n <DIV id='" + frm.No + "' style='width:" + frm.FrmW + "px; height:" + frm.FrmH + "px;text-align: left;margin:0px;padding:0px;' >");
                        string src = "loading.htm";
                        this.UCEn1.Add("\t\n <iframe ID='F" + frm.No + "' src='" + src + "' frameborder=0  style='margin:0px;padding:0px;width:" + frm.FrmW + "px; height:" + frm.FrmH + "px;text-align: left;'  leftMargin='0'  topMargin='0'   /></iframe>");
                        this.UCEn1.Add("\t\n </DIV>");
                    }
                    #endregion 输出表单 iframe 内容.

                    this.UCEn1.Add("\t\n</div>"); // end  usual2

                    // 设置选择的默认值.
                    this.UCEn1.Add("\t\n<script type='text/javascript'>");
                    this.UCEn1.Add("\t\n  $(\"#usual2 ul\").idTabs(\"" + frms[0].No + "\");");
                    this.UCEn1.Add("\t\n</script>");
                }
            }
        }
예제 #17
0
        public string DoType(string dotype, string v1, string v2, string v3, string v4, string v5)
        {
            string sql = "";

            try
            {
                switch (dotype)
                {
                case "CreateCheckGroup":
                    string gKey    = v1;
                    string gName   = v2;
                    string enName1 = v3;

                    MapAttr attrN = new MapAttr();
                    int     i     = attrN.Retrieve(MapAttrAttr.FK_MapData, enName1, MapAttrAttr.KeyOfEn, gKey + "_Note");
                    i += attrN.Retrieve(MapAttrAttr.FK_MapData, enName1, MapAttrAttr.KeyOfEn, gKey + "_Checker");
                    i += attrN.Retrieve(MapAttrAttr.FK_MapData, enName1, MapAttrAttr.KeyOfEn, gKey + "_RDT");
                    if (i > 0)
                    {
                        return("前缀已经使用:" + gKey + " , 请确认您是否增加了这个审核分组或者,请您更换其他的前缀。");
                    }

                    GroupField gf = new GroupField();
                    gf.Lab    = gName;
                    gf.EnName = enName1;
                    gf.Insert();

                    attrN               = new MapAttr();
                    attrN.FK_MapData    = enName1;
                    attrN.KeyOfEn       = gKey + "_Note";
                    attrN.Name          = "审核意见";
                    attrN.MyDataType    = DataType.AppString;
                    attrN.UIContralType = UIContralType.TB;
                    attrN.UIIsEnable    = true;
                    attrN.UIIsLine      = true;
                    attrN.MaxLen        = 4000;
                    attrN.GroupID       = gf.OID;
                    attrN.UIHeight      = 23 * 3;
                    attrN.IDX           = 1;
                    attrN.Insert();

                    attrN               = new MapAttr();
                    attrN.FK_MapData    = enName1;
                    attrN.KeyOfEn       = gKey + "_Checker";
                    attrN.Name          = "审核人";// "审核人";
                    attrN.MyDataType    = DataType.AppString;
                    attrN.UIContralType = UIContralType.TB;
                    attrN.MaxLen        = 50;
                    attrN.MinLen        = 0;
                    attrN.UIIsEnable    = true;
                    attrN.UIIsLine      = false;
                    attrN.DefVal        = "@WebUser.Name";
                    attrN.UIIsEnable    = false;
                    attrN.GroupID       = gf.OID;
                    attrN.IsSigan       = true;
                    attrN.IDX           = 2;
                    attrN.Insert();

                    attrN               = new MapAttr();
                    attrN.FK_MapData    = enName1;
                    attrN.KeyOfEn       = gKey + "_RDT";
                    attrN.Name          = "审核日期"; // "审核日期";
                    attrN.MyDataType    = DataType.AppDateTime;
                    attrN.UIContralType = UIContralType.TB;
                    attrN.UIIsEnable    = true;
                    attrN.UIIsLine      = false;
                    attrN.DefVal        = "@RDT";
                    attrN.UIIsEnable    = false;
                    attrN.GroupID       = gf.OID;
                    attrN.IDX           = 3;
                    attrN.Insert();
                    return(null);

                case "NewDtl":
                    MapDtl dtlN = new MapDtl();
                    dtlN.No = v1;
                    if (dtlN.RetrieveFromDBSources() != 0)
                    {
                        return("从表已存在");
                    }
                    dtlN.Name       = v1;
                    dtlN.FK_MapData = v2;
                    dtlN.PTable     = v1;
                    dtlN.Insert();
                    dtlN.IntMapAttrs();
                    return(null);

                case "DelM2M":
                    MapM2M m2mDel = new MapM2M();
                    m2mDel.MyPK = v1;
                    m2mDel.Delete();
                    //M2M m2mData = new M2M();
                    //m2mData.Delete(M2MAttr.FK_MapData, v1);
                    return(null);

                case "NewAthM":     // 新建 NewAthM.
                    string fk_mapdataAth = v1;
                    string athName       = v2;

                    BP.Sys.FrmAttachment athM = new FrmAttachment();
                    athM.MyPK = athName;
                    if (athM.IsExits)
                    {
                        return("多选名称:" + athName + ",已经存在。");
                    }

                    athM.X          = float.Parse(v3);
                    athM.Y          = float.Parse(v4);
                    athM.Name       = "多文件上传";
                    athM.FK_MapData = fk_mapdataAth;
                    athM.Insert();
                    return(null);

                case "NewM2M":
                    string fk_mapdataM2M = v1;
                    string m2mName       = v2;
                    MapM2M m2m           = new MapM2M();
                    m2m.FK_MapData = v1;
                    m2m.NoOfObj    = v2;
                    if (v3 == "0")
                    {
                        m2m.HisM2MType = M2MType.M2M;
                        m2m.Name       = "新建一对多";
                    }
                    else
                    {
                        m2m.HisM2MType = M2MType.M2MM;
                        m2m.Name       = "新建一对多多";
                    }

                    m2m.X    = float.Parse(v4);
                    m2m.Y    = float.Parse(v5);
                    m2m.MyPK = m2m.FK_MapData + "_" + m2m.NoOfObj;
                    if (m2m.IsExits)
                    {
                        return("多选名称:" + m2mName + ",已经存在。");
                    }
                    m2m.Insert();
                    return(null);

                case "DelEnum":
                    // 检查这个物理表是否被使用。
                    sql = "SELECT  * FROM Sys_MapAttr WHERE UIBindKey='" + v1 + "'";
                    DataTable dtEnum     = DBAccess.RunSQLReturnTable(sql);
                    string    msgDelEnum = "";
                    foreach (DataRow dr in dtEnum.Rows)
                    {
                        msgDelEnum += "\n 表单编号:" + dr["FK_MapData"] + " , 字段:" + dr["KeyOfEn"] + ", 名称:" + dr["Name"];
                    }

                    if (msgDelEnum != "")
                    {
                        return("该枚举已经被如下字段所引用,您不能删除它。" + msgDelEnum);
                    }

                    sql  = "DELETE FROM Sys_EnumMain WHERE No='" + v1 + "'";
                    sql += "@DELETE FROM Sys_Enum WHERE EnumKey='" + v1 + "' ";
                    DBAccess.RunSQLs(sql);
                    return(null);

                case "DelSFTable":     /* 删除自定义的物理表. */
                    // 检查这个物理表是否被使用。
                    sql = "SELECT  * FROM Sys_MapAttr WHERE UIBindKey='" + v1 + "'";
                    DataTable dt     = DBAccess.RunSQLReturnTable(sql);
                    string    msgDel = "";
                    foreach (DataRow dr in dt.Rows)
                    {
                        msgDel += "\n 表单编号:" + dr["FK_MapData"] + " , 字段:" + dr["KeyOfEn"] + ", 名称:" + dr["Name"];
                    }

                    if (msgDel != "")
                    {
                        return("该数据表已经被如下字段所引用,您不能删除它。" + msgDel);
                    }

                    SFTable sfDel = new SFTable();
                    sfDel.No = v1;
                    sfDel.DirectDelete();
                    return(null);

                case "SaveSFTable":
                    string enName = v2;
                    string chName = v1;
                    if (string.IsNullOrEmpty(v1) || string.IsNullOrEmpty(v2))
                    {
                        return("视图中的中英文名称不能为空。");
                    }

                    SFTable sf = new SFTable();
                    sf.No   = enName;
                    sf.Name = chName;

                    sf.No   = enName;
                    sf.Name = chName;

                    sf.FK_Val = enName;
                    sf.Save();
                    if (DBAccess.IsExitsObject(enName) == true)
                    {
                        /*已经存在此对象,检查一下是否有No,Name列。*/
                        sql = "SELECT No,Name FROM " + enName;
                        try
                        {
                            DBAccess.RunSQLReturnTable(sql);
                        }
                        catch (Exception ex)
                        {
                            return("您指定的表或视图(" + enName + "),不包含No,Name两列,不符合ccflow约定的规则。技术信息:" + ex.Message);
                        }
                        return(null);
                    }
                    else
                    {
                        /*创建这个表,并且插入基础数据。*/
                        try
                        {
                            // 如果没有该表或者视图,就要创建它。
                            sql = "CREATE TABLE " + enName + "(No varchar(30) NOT NULL,Name varchar(50) NULL)";
                            DBAccess.RunSQL(sql);
                            DBAccess.RunSQL("INSERT INTO " + enName + " (No,Name) VALUES('001','Item1')");
                            DBAccess.RunSQL("INSERT INTO " + enName + " (No,Name) VALUES('002','Item2')");
                            DBAccess.RunSQL("INSERT INTO " + enName + " (No,Name) VALUES('003','Item3')");
                        }
                        catch (Exception ex)
                        {
                            sf.DirectDelete();
                            return("创建物理表期间出现错误,可能是非法的物理表名.技术信息:" + ex.Message);
                        }
                    }
                    return(null);      /*创建成功后返回空值*/

                case "FrmTempleteExp": //导出表单.
                    MapData mdfrmtem = new MapData();
                    mdfrmtem.No = v1;
                    if (mdfrmtem.RetrieveFromDBSources() == 0)
                    {
                        if (v1.Contains("ND"))
                        {
                            int  nodeId = int.Parse(v1.Replace("ND", ""));
                            Node nd     = new Node(nodeId);
                            mdfrmtem.Name   = nd.Name;
                            mdfrmtem.PTable = v1;
                            mdfrmtem.EnPK   = "OID";
                            mdfrmtem.Insert();
                        }
                    }

                    DataSet ds   = mdfrmtem.GenerHisDataSet();
                    string  file = System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\Temp\\" + v1 + ".xml";
                    if (System.IO.File.Exists(file))
                    {
                        System.IO.File.Delete(file);
                    }
                    ds.WriteXml(file);

                    // BP.PubClass.DownloadFile(file, mdfrmtem.Name + ".xml");
                    //this.DownLoadFile(System.Web.HttpContext.Current, file, mdfrmtem.Name);
                    return(null);

                case "FrmTempleteImp":     //导入表单.
                    DataSet dsImp   = new DataSet();
                    string  fileImp = System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\Temp\\" + v1 + ".xml";
                    dsImp.ReadXml(fileImp);     //读取文件.
                    MapData.ImpMapData(v1, dsImp, true);
                    return(null);

                case "NewHidF":
                    string  fk_mapdataHid = v1;
                    string  key           = v2;
                    string  name          = v3;
                    int     dataType      = int.Parse(v4);
                    MapAttr mdHid         = new MapAttr();
                    mdHid.MyPK        = fk_mapdataHid + "_" + key;
                    mdHid.FK_MapData  = fk_mapdataHid;
                    mdHid.KeyOfEn     = key;
                    mdHid.Name        = name;
                    mdHid.MyDataType  = dataType;
                    mdHid.HisEditType = EditType.Edit;
                    mdHid.MaxLen      = 100;
                    mdHid.MinLen      = 0;
                    mdHid.LGType      = FieldTypeS.Normal;
                    mdHid.UIVisible   = false;
                    mdHid.UIIsEnable  = false;
                    mdHid.Insert();
                    return(null);

                case "DelDtl":
                    MapDtl dtl = new MapDtl(v1);
                    dtl.Delete();
                    return(null);

                case "DeleteFrm":
                    string  delFK_Frm = v1;
                    MapData mdDel     = new MapData(delFK_Frm);
                    mdDel.Delete();
                    sql = "@DELETE FROM Sys_MapData WHERE No='" + delFK_Frm + "'";
                    sql = "@DELETE FROM WF_FrmNode WHERE FK_Frm='" + delFK_Frm + "'";
                    DBAccess.RunSQLs(sql);
                    return(null);

                case "FrmUp":
                case "FrmDown":
                    FrmNode myfn = new FrmNode();
                    myfn.Retrieve(FrmNodeAttr.FK_Node, v1, FrmNodeAttr.FK_Frm, v2);
                    if (dotype == "FrmUp")
                    {
                        myfn.DoUp();
                    }
                    else
                    {
                        myfn.DoDown();
                    }
                    return(null);

                case "SaveFlowFrm":
                    // 转化参数意义.
                    string vals    = v1;
                    string fk_Node = v2;
                    string fk_flow = v3;
                    bool   isPrint = false;
                    if (v5 == "1")
                    {
                        isPrint = true;
                    }

                    bool isReadonly = false;
                    if (v4 == "1")
                    {
                        isReadonly = true;
                    }

                    string msg = this.SaveEn(vals);
                    if (msg.Contains("Error"))
                    {
                        return(msg);
                    }

                    string fk_frm = msg;
                    Frm    fm     = new Frm();
                    fm.No = fk_frm;
                    fm.Retrieve();

                    FrmNode fn = new FrmNode();
                    if (fn.Retrieve(FrmNodeAttr.FK_Frm, fk_frm,
                                    FrmNodeAttr.FK_Node, fk_Node) == 1)
                    {
                        fn.IsEdit  = !isReadonly;
                        fn.IsPrint = isPrint;
                        fn.FK_Flow = fk_flow;
                        fn.Update();
                        BP.DA.DBAccess.RunSQL("UPDATE Sys_MapData SET FK_FrmSort='01',AppType=1  WHERE No='" + fk_frm + "'");
                        return(fk_frm);
                    }

                    fn.FK_Frm  = fk_frm;
                    fn.FK_Flow = fk_flow;
                    fn.FK_Node = int.Parse(fk_Node);
                    fn.IsEdit  = !isReadonly;
                    fn.IsPrint = isPrint;
                    fn.Idx     = 100;
                    fn.FK_Flow = fk_flow;
                    fn.Insert();

                    MapData md = new MapData();
                    md.No = fm.No;
                    if (md.RetrieveFromDBSources() == 0)
                    {
                        md.Name = fm.Name;
                        md.EnPK = "OID";
                        md.Insert();
                    }

                    MapAttr attr = new MapAttr();
                    attr.FK_MapData    = md.No;
                    attr.KeyOfEn       = "OID";
                    attr.Name          = "WorkID";
                    attr.MyDataType    = BP.DA.DataType.AppInt;
                    attr.UIContralType = UIContralType.TB;
                    attr.LGType        = FieldTypeS.Normal;
                    attr.UIVisible     = false;
                    attr.UIIsEnable    = false;
                    attr.DefVal        = "0";
                    attr.HisEditType   = BP.En.EditType.Readonly;
                    attr.Insert();

                    attr               = new MapAttr();
                    attr.FK_MapData    = md.No;
                    attr.KeyOfEn       = "FID";
                    attr.Name          = "FID";
                    attr.MyDataType    = BP.DA.DataType.AppInt;
                    attr.UIContralType = UIContralType.TB;
                    attr.LGType        = FieldTypeS.Normal;
                    attr.UIVisible     = false;
                    attr.UIIsEnable    = false;
                    attr.DefVal        = "0";
                    attr.HisEditType   = BP.En.EditType.Readonly;
                    attr.Insert();

                    attr               = new MapAttr();
                    attr.FK_MapData    = md.No;
                    attr.KeyOfEn       = "RDT";
                    attr.Name          = "记录日期";
                    attr.MyDataType    = BP.DA.DataType.AppDateTime;
                    attr.UIContralType = UIContralType.TB;
                    attr.LGType        = FieldTypeS.Normal;
                    attr.UIVisible     = false;
                    attr.UIIsEnable    = false;
                    attr.DefVal        = "@RDT";
                    attr.HisEditType   = BP.En.EditType.Readonly;
                    attr.Insert();
                    return(fk_frm);

                default:
                    return("Error:" + dotype + " , 未设置此标记.");
                }
            }
            catch (Exception ex)
            {
                return("Error:" + ex.Message);
            }
        }