Esempio n. 1
0
        /// <summary>
        /// 获得外键列表.
        /// </summary>
        /// <returns></returns>
        public string FrmTable_GetSFTableList()
        {
            //WF_Admin_FoolFormDesigner wf = new WF_Admin_FoolFormDesigner(this.context);
            SFTables ens = new SFTables();

            ens.RetrieveAll();
            return(ens.ToJson());
        }
        public void AddSFTable()
        {
            this.Title = "增加新字段向导";

            this.Pub1.AddTable();
            this.Pub1.AddCaption("<a href='Do.aspx?DoType=AddF&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "'>增加新字段向导</a> - 增加外键字段 - <a href='SFTable.aspx?DoType=New&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "' > 新建表</a>");
            this.Pub1.AddTR();
            this.Pub1.AddTDTitle("Idx");
            this.Pub1.AddTDTitle("编号(点击增加到表单)");
            this.Pub1.AddTDTitle("名称");
            this.Pub1.AddTDTitle("类别");
            this.Pub1.AddTDTitle("描述/编辑");
            this.Pub1.AddTDTitle("编辑数据");
            this.Pub1.AddTREnd();

            BP.Sys.SFTables ens = new SFTables();
            QueryObject     qo  = new QueryObject(ens);

            this.Pub2.BindPageIdx(qo.GetCount(), pageSize, this.PageIdx,
                                  "Do.aspx?DoType=AddSFTable&MyPK=" + this.MyPK + "&Idx=&GroupField");
            qo.DoQuery("No", pageSize, this.PageIdx);

            bool is1 = false;
            int  Idx = 0;

            foreach (BP.Sys.SFTable sem in ens)
            {
                Idx++;
                //is1 = this.Pub1.AddTR(is1);
                is1 = this.Pub1.AddTR(is1);
                this.Pub1.AddTDIdx(Idx);
                this.Pub1.AddTD("<a  href=\"javascript:AddSFTable('" + this.MyPK + "','" + this.Idx + "','" + sem.No + "')\" >" + sem.No + "</a>");
                this.Pub1.AddTD(sem.Name);

                if (sem.IsClass)
                {
                    this.Pub1.AddTD("<a href=\"javascript:WinOpen('../Comm/Search.aspx?EnsName=" + sem.No + "','sg')\"  ><img src='../Img/Btn/Edit.gif' border=0/>" + sem.TableDesc + "</a>");
                }
                else
                {
                    this.Pub1.AddTD("<a href=\"javascript:WinOpen('SFTable.aspx?DoType=Edit&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "&RefNo=" + sem.No + "','sg')\"  ><img src='../Img/Btn/Edit.gif' border=0/>" + sem.TableDesc + "</a>");
                }

                if (sem.No.Contains("."))
                {
                    this.Pub1.AddTD("&nbsp;");
                }
                else
                {
                    this.Pub1.AddTD("<a href=\"javascript:WinOpen('SFTableEditData.aspx?RefNo=" + sem.No + "');\" >编辑</a>");
                }
                this.Pub1.AddTREnd();
            }
            this.Pub1.AddTableEnd();
        }
Esempio n. 3
0
        public void AddSFWS()
        {
            this.Title = "增加新WebService接口向导";

            this.Pub1.AddTable();
            this.Pub1.AddCaption("<a href='Do.aspx?DoType=AddF&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "'><img src='/WF/Img/Btn/Back.gif' />&nbsp;返回</a> - WebService接口列表 - <a href='SFWS.aspx?DoType=New&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "' >新建WebService接口</a>");
            this.Pub1.AddTR();
            this.Pub1.AddTDTitle("Idx");
            this.Pub1.AddTDTitle("编号(点击增加到表单)");
            this.Pub1.AddTDTitle("名称(点击名称编辑属性)");
            this.Pub1.AddTDTitle("编码表类型");
            this.Pub1.AddTDTitle("查看数据");
            this.Pub1.AddTREnd();

            BP.Sys.SFTables ens = new SFTables();
            QueryObject     qo  = new QueryObject(ens);

            qo.AddWhere(BP.Sys.SFTableAttr.SrcType, (int)SrcType.WebServices);
            this.Pub2.BindPageIdx(qo.GetCount(), pageSize, this.PageIdx,
                                  "Do.aspx?DoType=AddSFWS&MyPK=" + this.MyPK + "&Idx=&GroupField");
            qo.DoQuery("No", pageSize, this.PageIdx);
            if (ens.Count == 0)
            {
                //string html = "<a href='Do.aspx?DoType=AddF&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "'><img src='/WF/Img/Btn/Back.gif' />&nbsp;返回</a> - 增加外键字段 - <a href='SFTable.aspx?DoType=New&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "' >新建表</a>";
                this.Pub1.AddTR();
                this.Pub1.AddTDBigDoc("colspan=5", "注册到ccform的WebService接口为空,点击上面的新建表,进入创建向导。");
                this.Pub1.AddTREnd();
                this.Pub1.AddTableEnd();
                return;
            }

            bool is1 = false;
            int  idx = 0;

            foreach (BP.Sys.SFTable sem in ens)
            {
                idx++;
                is1 = this.Pub1.AddTR(is1);
                this.Pub1.AddTDIdx(idx);
                this.Pub1.AddTD(sem.No);
                this.Pub1.AddTD("<a href=\"javascript:WinOpen('SFWS.aspx?DoType=Edit&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "&RefNo=" + sem.No + "','sg')\"  ><img src='../Img/Btn/Edit.gif' border=0/>" + sem.Name + "</a>");

                this.Pub1.AddTD(sem.CodeStructT); //编码表类型.
                this.Pub1.AddTD("<a href=\"javascript:WinOpen('SFTableEditData.aspx?RefNo=" + sem.No + "');\" >查看</a>");
                this.Pub1.AddTREnd();
            }
            this.Pub1.AddTableEnd();
        }
Esempio n. 4
0
        public override object Do()
        {
            string msg = "";

            #region 检查数据文件是否完整.
            string path = "C:\\CCFlowTemplete";
            if (System.IO.Directory.Exists(path) == false)
            {
                msg += "@错误:约定的目录不存在服务器" + path + ",请把从ccflow备份的文件放入" + path;
            }

            //PortTables.
            string file = path + "\\PortTables.xml";
            if (System.IO.File.Exists(file) == false)
            {
                msg += "@错误:约定的文件不存在," + file;
            }

            //SysTables.
            file = path + "\\SysTables.xml";
            if (System.IO.File.Exists(file) == false)
            {
                msg += "@错误:约定的文件不存在," + file;
            }

            //FlowTables.
            file = path + "\\FlowTables.xml";
            if (System.IO.File.Exists(file) == false)
            {
                msg += "@错误:约定的文件不存在," + file;
            }
            #endregion 检查数据文件是否完整.

            #region 1 装载流程基础表数据.
            DataSet ds = new DataSet();
            ds.ReadXml(path + "\\FlowTables.xml");

            //流程类别.
            FlowSorts sorts = new FlowSorts();
            sorts.ClearTable();
            DataTable dt = ds.Tables["WF_FlowSort"];
            // sorts = QueryObject.InitEntitiesByDataTable(sorts, dt, null) as FlowSorts;
            foreach (FlowSort item in sorts)
            {
                item.DirectInsert(); //插入数据.
            }
            #endregion 1 装载流程基础表数据.

            #region 2 组织结构.
            ds = new DataSet();
            ds.ReadXml(path + "\\PortTables.xml");

            //Port_Emp.
            Emps emps = new Emps();
            emps.ClearTable();
            dt   = ds.Tables["Port_Emp"];
            emps = QueryObject.InitEntitiesByDataTable(emps, dt, null) as Emps;
            foreach (Emp item in emps)
            {
                item.DirectInsert(); //插入数据.
            }

            //Depts.
            Depts depts = new Depts();
            depts.ClearTable();
            dt    = ds.Tables["Port_Dept"];
            depts = QueryObject.InitEntitiesByDataTable(depts, dt, null) as Depts;
            foreach (Dept item in depts)
            {
                item.DirectInsert(); //插入数据.
            }

            //Stations.
            Stations stas = new Stations();
            stas.ClearTable();
            dt   = ds.Tables["Port_Station"];
            stas = QueryObject.InitEntitiesByDataTable(stas, dt, null) as Stations;
            foreach (Station item in stas)
            {
                item.DirectInsert(); //插入数据.
            }


            //EmpDepts.
            EmpDepts eds = new EmpDepts();
            eds.ClearTable();
            dt  = ds.Tables["Port_EmpDept"];
            eds = QueryObject.InitEntitiesByDataTable(eds, dt, null) as EmpDepts;
            foreach (EmpDept item in eds)
            {
                item.DirectInsert(); //插入数据.
            }

            //EmpStations.
            EmpStations ess = new EmpStations();
            ess.ClearTable();
            dt  = ds.Tables["Port_EmpStation"];
            ess = QueryObject.InitEntitiesByDataTable(ess, dt, null) as EmpStations;
            foreach (EmpStation item in ess)
            {
                item.DirectInsert(); //插入数据.
            }
            #endregion 2 组织结构.

            #region 3 恢复系统数据.
            ds = new DataSet();
            ds.ReadXml(path + "\\SysTables.xml");

            //枚举Main.
            SysEnumMains sems = new SysEnumMains();
            sems.ClearTable();
            dt   = ds.Tables["Sys_EnumMain"];
            sems = QueryObject.InitEntitiesByDataTable(sems, dt, null) as SysEnumMains;
            foreach (SysEnumMain item in sems)
            {
                item.DirectInsert(); //插入数据.
            }

            //枚举.
            SysEnums ses = new SysEnums();
            ses.ClearTable();
            dt  = ds.Tables["Sys_Enum"];
            ses = QueryObject.InitEntitiesByDataTable(ses, dt, null) as SysEnums;
            foreach (SysEnum item in ses)
            {
                item.DirectInsert(); //插入数据.
            }

            ////Sys_FormTree.
            //BP.Sys.SysFormTrees sfts = new SysFormTrees();
            //sfts.ClearTable();
            //dt = ds.Tables["Sys_FormTree"];
            //sfts = QueryObject.InitEntitiesByDataTable(sfts, dt, null) as SysFormTrees;
            //foreach (SysFormTree item in sfts)
            //{
            //    try
            //    {
            //       item.DirectInsert(); //插入数据.
            //    }
            //    catch
            //    {
            //    }
            //}
            #endregion 3 恢复系统数据.

            #region 4.备份表单相关数据.
            if (1 == 2)
            {
                string pathOfTables = path + "\\SFTables";
                System.IO.Directory.CreateDirectory(pathOfTables);
                SFTables tabs = new SFTables();
                tabs.RetrieveAll();
                foreach (SFTable item in tabs)
                {
                    if (item.No.Contains("."))
                    {
                        continue;
                    }

                    string sql = "SELECT * FROM " + item.No;
                    ds = new DataSet();
                    ds.Tables.Add(BP.DA.DBAccess.RunSQLReturnTable(sql));
                    ds.WriteXml(pathOfTables + "\\" + item.No + ".xml");
                }
            }
            #endregion 4 备份表单相关数据.

            #region 5.恢复表单数据.
            //删除所有的流程数据.
            MapDatas mds = new MapDatas();
            mds.RetrieveAll();
            foreach (MapData fl in mds)
            {
                //if (fl.FK_FormTree.Length > 1 || fl.FK_FrmSort.Length > 1)
                //    continue;
                fl.Delete(); //删除流程.
            }

            //清除数据.
            SysFormTrees fss = new SysFormTrees();
            fss.ClearTable();

            // 调度表单文件。
            string          frmPath = path + "\\Form";
            DirectoryInfo   dirInfo = new DirectoryInfo(frmPath);
            DirectoryInfo[] dirs    = dirInfo.GetDirectories();
            foreach (DirectoryInfo item in dirs)
            {
                if (item.FullName.Contains(".svn"))
                {
                    continue;
                }

                string[] fls = System.IO.Directory.GetFiles(item.FullName);
                if (fls.Length == 0)
                {
                    continue;
                }

                SysFormTree fs = new SysFormTree();
                fs.No       = item.Name.Substring(0, item.Name.IndexOf('.'));
                fs.Name     = item.Name.Substring(item.Name.IndexOf('.'));
                fs.ParentNo = "0";
                fs.Insert();

                foreach (string f in fls)
                {
                    try
                    {
                        msg += "@开始调度表单模板文件:" + f;
                        System.IO.FileInfo info = new System.IO.FileInfo(f);
                        if (info.Extension != ".xml")
                        {
                            continue;
                        }

                        ds = new DataSet();
                        ds.ReadXml(f);

                        MapData md = MapData.ImpMapData(ds, false);
                        md.FK_FrmSort = fs.No;
                        md.Update();
                    }
                    catch (Exception ex)
                    {
                        msg += "@调度失败,文件:" + f + ",异常信息:" + ex.Message;
                    }
                }
            }
            #endregion 5.恢复表单数据.

            #region 6.恢复流程数据.
            //删除所有的流程数据.
            Flows flsEns = new Flows();
            flsEns.RetrieveAll();
            foreach (Flow fl in flsEns)
            {
                fl.DoDelete(); //删除流程.
            }

            dirInfo = new DirectoryInfo(path + "\\Flow\\");
            dirs    = dirInfo.GetDirectories();

            //删除数据.
            FlowSorts fsRoots = new FlowSorts();
            fsRoots.ClearTable();

            //生成流程树.
            FlowSort fsRoot = new FlowSort();
            fsRoot.No       = "99";
            fsRoot.Name     = "流程树";
            fsRoot.ParentNo = "0";
            fsRoot.DirectInsert();

            foreach (DirectoryInfo dir in dirs)
            {
                if (dir.FullName.Contains(".svn"))
                {
                    continue;
                }

                string[] fls = System.IO.Directory.GetFiles(dir.FullName);
                if (fls.Length == 0)
                {
                    continue;
                }

                FlowSort fs = new FlowSort();
                fs.No       = dir.Name.Substring(0, dir.Name.IndexOf('.'));
                fs.Name     = dir.Name.Substring(3);
                fs.ParentNo = fsRoot.No;
                fs.Insert();

                foreach (string filePath in fls)
                {
                    msg += "@开始调度流程模板文件:" + filePath;
                    Flow myflow = BP.WF.Flow.DoLoadFlowTemplate(fs.No, filePath, ImpFlowTempleteModel.AsTempleteFlowNo);
                    msg += "@流程:" + myflow.Name + "装载成功。";

                    System.IO.FileInfo info = new System.IO.FileInfo(filePath);
                    myflow.Name = info.Name.Replace(".xml", "");
                    if (myflow.Name.Substring(2, 1) == ".")
                    {
                        myflow.Name = myflow.Name.Substring(3);
                    }

                    myflow.DirectUpdate();
                }
            }
            #endregion 6.恢复流程数据.

            BP.DA.Log.DefaultLogWriteLineInfo(msg);

            //删除多余的空格.
            BP.WF.DTS.DeleteBlankGroupField dts = new DeleteBlankGroupField();
            dts.Do();

            //执行生成签名.
            GenerSiganture gs = new GenerSiganture();
            gs.Do();

            return(msg);
        }
        /// <summary>
        ///  初始化sf0. @于庆海,新方法.
        /// </summary>
        /// <returns></returns>
        public string SF0_Init()
        {
            string    cl = "BP.En.Entities";
            ArrayList al = ClassFactory.GetObjects(cl);

            //定义容器.
            DataTable dt = new DataTable();

            dt.Columns.Add("No");
            dt.Columns.Add("Name");

            SFTables sfs = new SFTables();

            sfs.RetrieveAll();

            foreach (object obj in al)
            {
                Entities ens = obj as Entities;
                if (ens == null)
                {
                    continue;
                }

                try
                {
                    Entity en = ens.GetNewEntity;
                    if (en == null)
                    {
                        continue;
                    }

                    if (en.EnMap.Attrs.Contains("No") == false)
                    {
                        continue;
                    }

                    if (sfs.Contains(ens.ToString()) == true)
                    {
                        continue;
                    }

                    DataRow dr = dt.NewRow();
                    dr["No"] = ens.ToString();

                    if (en.IsTreeEntity)
                    {
                        dr["Name"] = en.EnMap.EnDesc + "(树结构) " + ens.ToString();
                    }
                    else
                    {
                        dr["Name"] = en.EnMap.EnDesc + " " + ens.ToString();
                    }

                    dt.Rows.Add(dr);
                }
                catch
                {
                }
            }
            return(BP.Tools.Json.ToJson(dt));
        }
Esempio n. 6
0
        public void AddSFTable()
        {
            BP.Sys.SFTables ens = new SFTables();
            QueryObject     qo  = new QueryObject(ens);

            qo.AddWhere(BP.Sys.SFTableAttr.SrcType, (int)SrcType.TableOrView);

            this.Pub2.BindPageIdx(qo.GetCount(), pageSize, this.PageIdx,
                                  "Do.aspx?DoType=AddSFTable&MyPK=" + this.MyPK + "&Idx=&GroupField");
            qo.DoQuery("No", pageSize, this.PageIdx);



            this.Title = "增加新字段向导";
            this.Pub1.AddTable();
            this.Pub1.AddCaption("<a href='Do.aspx?DoType=AddF&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "'><img src='/WF/Img/Btn/Back.gif' />&nbsp;返回</a> - 外键列表 - <a href='SFTable.aspx?DoType=New&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "' >新建表</a>");
            this.Pub1.AddTR();
            this.Pub1.AddTDTitle("Idx");
            this.Pub1.AddTDTitle("编号(点击增加到表单)");
            this.Pub1.AddTDTitle("名称(点击修改属性)");
            this.Pub1.AddTDTitle("描述");
            this.Pub1.AddTDTitle("编码表类型");
            this.Pub1.AddTDTitle("编辑数据");
            this.Pub1.AddTREnd();

            if (ens.Count == 0)
            {
                //string html = "<a href='Do.aspx?DoType=AddF&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "'><img src='/WF/Img/Btn/Back.gif' />&nbsp;返回</a> - 增加外键字段 - <a href='SFTable.aspx?DoType=New&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "' >新建表</a>";
                this.Pub1.AddTR();
                this.Pub1.AddTDBigDoc("colspan=5", "注册到ccform的表为空,点击上面的新建表,进入创建向导。");
                this.Pub1.AddTREnd();
                this.Pub1.AddTableEnd();
                return;
            }


            bool is1 = false;
            int  Idx = 0;

            foreach (BP.Sys.SFTable sem in ens)
            {
                Idx++;
                //is1 = this.Pub1.AddTR(is1);
                is1 = this.Pub1.AddTR(is1);
                this.Pub1.AddTDIdx(Idx);
                this.Pub1.AddTD("<a  href=\"javascript:AddSFTable('" + this.MyPK + "','" + this.Idx + "','" + sem.No + "')\" >" + sem.No + "</a>");

                this.Pub1.AddTD("<a href=\"javascript:WinOpen('SFTable.aspx?DoType=Edit&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "&RefNo=" + sem.No + "','sg')\"  ><img src='../Img/Btn/Edit.gif' border=0/>" + sem.Name + "</a>");

                this.Pub1.AddTD(sem.TableDesc); //描述.

                //编码表类型.
                this.Pub1.AddTD(sem.CodeStructT);

                if (sem.No.Contains("."))
                {
                    this.Pub1.AddTD("<a href=\"javascript:WinOpen('/WF/Comm/Search.aspx?EnsName=" + sem.No + "');\" >编辑数据</a>");
                }
                else
                {
                    this.Pub1.AddTD("<a href=\"javascript:WinOpen('SFTableEditData.aspx?RefNo=" + sem.No + "');\" >编辑数据</a>");
                }
                this.Pub1.AddTREnd();
            }
            this.Pub1.AddTableEnd();
        }
Esempio n. 7
0
        /// <summary>
        /// 获取从表数据,用于显示dtl.htm
        /// </summary>
        /// <param name="frmID">表单ID</param>
        /// <param name="pkval">主键</param>
        /// <param name="atParas">参数</param>
        /// <param name="specDtlFrmID">指定明细表的参数,如果为空就标识主表数据,否则就是从表数据.</param>
        /// <returns>数据</returns>
        public static DataSet GenerDBForCCFormDtl(string frmID, MapDtl dtl, int pkval, string atParas)
        {
            //数据容器,就是要返回的对象.
            DataSet myds = new DataSet();

            //映射实体.
            MapData md = new MapData(frmID);

            //实体.
            GEEntity wk = new GEEntity(frmID);

            wk.OID = pkval;
            if (wk.RetrieveFromDBSources() == 0)
            {
                wk.Insert();
            }

            //把参数放入到 En 的 Row 里面。
            if (DataType.IsNullOrEmpty(atParas) == false)
            {
                AtPara ap = new AtPara(atParas);
                foreach (string key in ap.HisHT.Keys)
                {
                    try
                    {
                        if (wk.Row.ContainsKey(key) == true) //有就该变.
                        {
                            wk.Row[key] = ap.GetValStrByKey(key);
                        }
                        else
                        {
                            wk.Row.Add(key, ap.GetValStrByKey(key)); //增加他.
                        }
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(key);
                    }
                }
            }

            #region 加载从表表单模版信息.

            DataTable Sys_MapDtl = dtl.ToDataTableField("Sys_MapDtl");
            myds.Tables.Add(Sys_MapDtl);

            //明细表的表单描述
            DataTable Sys_MapAttr = dtl.MapAttrs.ToDataTableField("Sys_MapAttr");
            myds.Tables.Add(Sys_MapAttr);

            //明细表的配置信息.

            DataTable Sys_MapExt = dtl.MapExts.ToDataTableField("Sys_MapExt");
            myds.Tables.Add(Sys_MapExt);

            #region 把从表的- 外键表/枚举 加入 DataSet.
            MapExts mes = dtl.MapExts;
            MapExt  me  = null;

            foreach (DataRow dr in Sys_MapAttr.Rows)
            {
                string lgType = dr["LGType"].ToString();
                //不是枚举/外键字段
                if (lgType.Equals("0"))
                {
                    continue;
                }

                string uiBindKey = dr["UIBindKey"].ToString();
                var    mypk      = dr["MyPK"].ToString();

                #region 枚举字段
                if (lgType.Equals("1"))
                {
                    // 如果是枚举值, 判断是否存在.
                    if (myds.Tables.Contains(uiBindKey) == true)
                    {
                        continue;
                    }

                    string    mysql  = "SELECT IntKey AS No, Lab as Name FROM Sys_Enum WHERE EnumKey='" + uiBindKey + "' ORDER BY IntKey ";
                    DataTable dtEnum = DBAccess.RunSQLReturnTable(mysql);
                    dtEnum.TableName = uiBindKey;

                    dtEnum.Columns[0].ColumnName = "No";
                    dtEnum.Columns[1].ColumnName = "Name";

                    myds.Tables.Add(dtEnum);
                    continue;
                }
                #endregion

                #region 外键字段
                string UIIsEnable = dr["UIIsEnable"].ToString();
                if (UIIsEnable.Equals("0")) //字段未启用
                {
                    continue;
                }

                // 检查是否有下拉框自动填充。
                string keyOfEn = dr["KeyOfEn"].ToString();

                #region 处理下拉框数据范围. for 小杨.
                me = mes.GetEntityByKey(MapExtAttr.ExtType, MapExtXmlList.AutoFullDLL, MapExtAttr.AttrOfOper, keyOfEn) as MapExt;
                if (me != null) //有范围限制时
                {
                    string fullSQL = me.Doc.Clone() as string;
                    fullSQL = fullSQL.Replace("~", ",");
                    fullSQL = BP.WF.Glo.DealExp(fullSQL, wk, null);

                    DataTable dt = DBAccess.RunSQLReturnTable(fullSQL);

                    dt.TableName = uiBindKey;

                    dt.Columns[0].ColumnName = "No";
                    dt.Columns[1].ColumnName = "Name";

                    myds.Tables.Add(dt);
                    continue;
                }
                #endregion 处理下拉框数据范围.

                // 判断是否存在.
                if (myds.Tables.Contains(uiBindKey) == true)
                {
                    continue;
                }

                myds.Tables.Add(BP.Sys.PubClass.GetDataTableByUIBineKey(uiBindKey));
                #endregion 外键字段
            }
            #endregion 把从表的- 外键表/枚举 加入 DataSet.


            #endregion 加载从表表单模版信息.

            #region 把主表数据放入.
            if (BP.Sys.SystemConfig.IsBSsystem == true)
            {
                // 处理传递过来的参数。
                foreach (string k in System.Web.HttpContext.Current.Request.QueryString.AllKeys)
                {
                    wk.SetValByKey(k, System.Web.HttpContext.Current.Request.QueryString[k]);
                }
            }

            //重设默认值.
            wk.ResetDefaultVal();


            //增加主表数据.
            DataTable mainTable = wk.ToDataTableField(md.No);
            mainTable.TableName = "MainTable";
            myds.Tables.Add(mainTable);
            #endregion 把主表数据放入.

            #region  把从表的数据放入.
            GEDtls      dtls = new GEDtls(dtl.No);
            QueryObject qo   = null;
            try
            {
                qo = new QueryObject(dtls);
                switch (dtl.DtlOpenType)
                {
                case DtlOpenType.ForEmp:      // 按人员来控制.
                    qo.AddWhere(GEDtlAttr.RefPK, pkval);
                    qo.addAnd();
                    qo.AddWhere(GEDtlAttr.Rec, WebUser.No);
                    break;

                case DtlOpenType.ForWorkID:     // 按工作ID来控制
                    qo.AddWhere(GEDtlAttr.RefPK, pkval);
                    break;

                case DtlOpenType.ForFID:     // 按流程ID来控制.
                    qo.AddWhere(GEDtlAttr.FID, pkval);
                    break;
                }
            }
            catch (Exception ex)
            {
                dtls.GetNewEntity.CheckPhysicsTable();
                throw ex;
            }

            //条件过滤.
            if (dtl.FilterSQLExp != "")
            {
                string[] strs = dtl.FilterSQLExp.Split('=');
                qo.addAnd();
                qo.AddWhere(strs[0], strs[1]);
            }

            //增加排序.
            //    qo.addOrderByDesc( dtls.GetNewEntity.PKField );

            //从表
            DataTable dtDtl = qo.DoQueryToTable();

            //查询所有动态SQL查询类型的字典表记录
            SFTable   sftable   = null;
            DataTable dtsftable = null;
            DataRow[] drs       = null;

            SFTables sftables = new SFTables();
            sftables.Retrieve(SFTableAttr.SrcType, (int)SrcType.SQL);

            // 为明细表设置默认值.
            MapAttrs dtlAttrs = new MapAttrs(dtl.No);
            foreach (MapAttr attr in dtlAttrs)
            {
                #region 修改区分大小写.
                if (BP.DA.DBType.Oracle == SystemConfig.AppCenterDBType)
                {
                    foreach (DataColumn dr in dtDtl.Columns)
                    {
                        var a = attr.KeyOfEn;
                        var b = dr.ColumnName;
                        if (attr.KeyOfEn.ToUpper().Equals(dr.ColumnName))
                        {
                            dr.ColumnName = attr.KeyOfEn;
                            continue;
                        }

                        if (attr.LGType == FieldTypeS.Enum || attr.LGType == FieldTypeS.FK)
                        {
                            if (dr.ColumnName.Equals(attr.KeyOfEn.ToUpper() + "TEXT"))
                            {
                                dr.ColumnName = attr.KeyOfEn + "Text";
                            }
                        }
                    }
                    foreach (DataRow dr in dtDtl.Rows)
                    {
                        //本身是大写的不进行修改
                        if (DataType.IsNullOrEmpty(dr[attr.KeyOfEn] + ""))
                        {
                            dr[attr.KeyOfEn]           = dr[attr.KeyOfEn.ToUpper()];
                            dr[attr.KeyOfEn.ToUpper()] = null;
                        }
                    }
                }
                #endregion 修改区分大小写.

                //处理增加动态SQL查询类型的下拉框选中值Text值,added by liuxc,2017-9-22
                if (attr.LGType == FieldTypeS.FK && attr.UIIsEnable == false)
                {
                    sftable = sftables.GetEntityByKey(attr.UIBindKey) as SFTable;
                    if (sftable != null)
                    {
                        dtsftable = sftable.GenerHisDataTable;

                        //为Text赋值
                        foreach (DataRow dr in dtDtl.Rows)
                        {
                            drs = dtsftable.Select("No='" + dr[attr.KeyOfEn] + "'");
                            if (drs.Length == 0)
                            {
                                continue;
                            }

                            dr[attr.KeyOfEn + "Text"] = drs[0]["Name"];
                        }
                    }
                }

                //处理它的默认值.
                if (attr.DefValReal.Contains("@") == false)
                {
                    continue;
                }

                foreach (DataRow dr in dtDtl.Rows)
                {
                    dr[attr.KeyOfEn] = attr.DefVal;
                }
            }

            dtDtl.TableName = "DBDtl";          //修改明细表的名称.
            myds.Tables.Add(dtDtl);             //加入这个明细表, 如果没有数据,xml体现为空.
            #endregion 把从表的数据放入.


            //放入一个空白的实体,用与获取默认值.
            GEDtl dtlBlank = dtls.GetNewEntity as GEDtl;
            dtlBlank.ResetDefaultVal();

            myds.Tables.Add(dtlBlank.ToDataTableField("Blank"));

            return(myds);
        }
Esempio n. 8
0
    protected void Page_Load(object sender, EventArgs e)
    {
        this.Title = "编码表编辑";
        if (this.DoType == "Del")
        {
            MapAttrs attrs = new MapAttrs();
            attrs.Retrieve(MapAttrAttr.UIBindKey, this.RefNo);
            if (attrs.Count != 0)
            {
                this.UCSys1.AddFieldSet("<a href='SFTableList.aspx' ><img src='./../../Img/Btn/Home.gif' border=0/>返回列表</a> - 删除确认");
                this.UCSys1.Add("此编码表已经被其它的字段所引用,您不能删除它。");
                this.UCSys1.AddH2("<a href='SFTableList.aspx' >返回列表</a>");
                this.UCSys1.AddFieldSetEnd();
                return;
            }

            this.UCSys1.AddFieldSet("<a href='SFTableList.aspx' ><img src='./../../Img/Btn/Home.gif' border=0/>返回列表</a> - 删除确认");
            SFTable m = new SFTable(this.RefNo);
            this.UCSys1.AddH2("<a href='SFTableList.aspx?RefNo=" + this.RefNo + "&DoType=DelReal' >删除:" + m.Name + " 确认.</a>");
            this.UCSys1.AddFieldSetEnd();
            return;
        }

        if (this.DoType == "DelReal")
        {
            SFTable m = new SFTable();
            m.No = this.RefNo;
            m.Delete();
            SFTables ses = new SFTables();
            // ses.Delete(SFTableAttr.SFTableKey, this.RefNo);
            this.Response.Redirect("SFTableList.aspx", true);
            return;
        }

        if (this.DoType == "New")
        {
            this.BindNew();
            return;
        }

        if (this.RefNo != null)
        {
            this.BindIt();
            return;
        }

        this.UCSys1.AddTable("class=Table width=500px");
        this.UCSys1.AddCaption("<img src='./../../Img/Btn/Home.gif' border=0/>列表 - <a href='SFTableList.aspx?DoType=New' ><img border=0 src='./../../Img/Btn/New.gif' >新建</a>");
        this.UCSys1.AddTR();
        this.UCSys1.AddTDTitle("序");
        this.UCSys1.AddTDTitle("编号");
        this.UCSys1.AddTDTitle("名称");
        //this.UCSys1.AddTDTitle("类型");
        this.UCSys1.AddTDTitle("描述");
        this.UCSys1.AddTDTitle("操作");
        this.UCSys1.AddTREnd();

        SFTables sems = new SFTables();

        sems.RetrieveAll();
        int i = 0;

        foreach (SFTable se in sems)
        {
            i++;
            this.UCSys1.AddTR();
            this.UCSys1.AddTDIdx(i);
            this.UCSys1.AddTD(se.No);
            this.UCSys1.AddTDA("SFTableList.aspx?RefNo=" + se.No, se.Name);
            //  this.UCSys1.AddTD(se.SFTableTypeT);
            this.UCSys1.AddTD(se.TableDesc);

            this.UCSys1.AddTDA("SFTableList.aspx?RefNo=" + se.No + "&DoType=Del", "<img src='./../../Img/Btn/Delete.gif' border=0 />删除");

            //switch (se.HisSFTableType)
            //{
            //    case SFTableType.SFTable:
            //        this.UCSys1.AddTDA("SFTableList.aspx?RefNo=" + se.No + "&DoType=Del", "<img src='./../../Img/Btn/Delete.gif' border=0 />删除");
            //        break;
            //    case SFTableType.ClsLab:
            //    case SFTableType.SysTable:
            //    default:
            //        this.UCSys1.AddTD();
            //        break;
            //}
            this.UCSys1.AddTREnd();
        }
        this.UCSys1.AddTableEnd();
    }
Esempio n. 9
0
        /// <summary>
        /// 执行
        /// </summary>
        /// <returns>返回执行结果</returns>
        public override object Do()
        {
            string path = "C:\\CCFlowTemplete" + DateTime.Now.ToString("yy年MM月dd日HH时mm分ss秒");

            if (System.IO.Directory.Exists(path) == false)
            {
                System.IO.Directory.CreateDirectory(path);
            }

            #region 1.备份流程类别信息
            DataSet dsFlows = new DataSet();
            //WF_FlowSort
            DataTable dt = DBAccess.RunSQLReturnTable("SELECT * FROM WF_FlowSort");
            dt.TableName = "WF_FlowSort";
            dsFlows.Tables.Add(dt);
            dsFlows.WriteXml(path + "\\FlowTables.xml");
            #endregion 备份流程类别信息.

            #region 2.备份组织结构.
            DataSet dsPort = new DataSet();
            //emps
            dt           = DBAccess.RunSQLReturnTable("SELECT * FROM Port_Emp");
            dt.TableName = "Port_Emp";
            dsPort.Tables.Add(dt);

            //Port_Dept
            dt           = DBAccess.RunSQLReturnTable("SELECT * FROM Port_Dept");
            dt.TableName = "Port_Dept";
            dsPort.Tables.Add(dt);

            //Port_Station
            dt           = DBAccess.RunSQLReturnTable("SELECT * FROM Port_Station");
            dt.TableName = "Port_Station";
            dsPort.Tables.Add(dt);

            //Port_EmpStation
            dt           = DBAccess.RunSQLReturnTable("SELECT * FROM Port_DeptEmpStation");
            dt.TableName = "Port_DeptEmpStation";
            dsPort.Tables.Add(dt);


            dsPort.WriteXml(path + "\\PortTables.xml");
            #endregion 备份表单相关数据.

            #region 3.备份系统数据
            DataSet dsSysTables = new DataSet();

            //Sys_EnumMain
            dt           = DBAccess.RunSQLReturnTable("SELECT * FROM Sys_EnumMain");
            dt.TableName = "Sys_EnumMain";
            dsSysTables.Tables.Add(dt);

            //Sys_Enum
            dt           = DBAccess.RunSQLReturnTable("SELECT * FROM Sys_Enum");
            dt.TableName = "Sys_Enum";
            dsSysTables.Tables.Add(dt);

            //Sys_FormTree
            dt           = DBAccess.RunSQLReturnTable("SELECT * FROM Sys_FormTree");
            dt.TableName = "Sys_FormTree";
            dsSysTables.Tables.Add(dt);
            dsSysTables.WriteXml(path + "\\SysTables.xml");
            #endregion 备份系统数据.

            #region 4.备份表单相关数据.
            string pathOfTables = path + "\\SFTables";
            System.IO.Directory.CreateDirectory(pathOfTables);
            SFTables tabs = new SFTables();
            tabs.RetrieveAll();
            foreach (SFTable item in tabs)
            {
                if (item.No.Contains("."))
                {
                    continue;
                }

                if (item.SrcType != SrcType.CreateTable)
                {
                    continue;
                }

                try
                {
                    string  sql = "SELECT * FROM " + item.No + " ";
                    DataSet ds  = new DataSet();
                    ds.Tables.Add(BP.DA.DBAccess.RunSQLReturnTable(sql));
                    ds.WriteXml(pathOfTables + "\\" + item.No + ".xml");
                }
                catch
                {
                }
            }
            #endregion 备份表单相关数据.

            #region 5.备份流程.
            Flows fls = new Flows();
            fls.RetrieveAllFromDBSource();
            foreach (Flow fl in fls)
            {
                FlowSort fs = new FlowSort();
                fs.No = fl.FK_FlowSort;
                fs.RetrieveFromDBSources();

                string pathDir = path + "\\Flow\\" + fs.No + "." + fs.Name + "\\";
                if (System.IO.Directory.Exists(pathDir) == false)
                {
                    System.IO.Directory.CreateDirectory(pathDir);
                }

                fl.DoExpFlowXmlTemplete(pathDir);
            }
            #endregion 备份流程.

            #region 6.备份表单.
            MapDatas mds = new MapDatas();
            mds.RetrieveAllFromDBSource();
            foreach (MapData md in mds)
            {
                if (md.FK_FrmSort.Length < 2)
                {
                    continue;
                }

                SysFormTree fs = new SysFormTree();
                fs.No = md.FK_FormTree;
                fs.RetrieveFromDBSources();

                string pathDir = path + "\\Form\\" + fs.No + "." + fs.Name;
                if (System.IO.Directory.Exists(pathDir) == false)
                {
                    System.IO.Directory.CreateDirectory(pathDir);
                }
                DataSet ds = BP.Sys.CCFormAPI.GenerHisDataSet(md.No);
                ds.WriteXml(pathDir + "\\" + md.Name + ".xml");
            }
            #endregion 备份表单.

            return("执行成功,存放路径:" + path);
        }