Ejemplo n.º 1
0
        public void ProcessRequest(HttpContext context)
        {
            string ensName = context.Request.QueryString["EnsName"];
            string PKVal   = context.Request.QueryString["PKVal"];

            BP.En.Entities ens = BP.En.ClassFactory.GetEns(ensName);
            BP.En.Entity   en  = ens.GetNewEntity;
            if (PKVal != null)
            {
                en.PKVal = PKVal;
                en.RetrieveFromDBSources();
            }
            en = BP.Sys.PubClass.CopyFromRequest(en, context.Request);
            en.Save();



            #region 保存 属性 附件
            try
            {
                //AttrFiles fils = en.EnMap.HisAttrFiles;
                //SysFileManagers sfs = new SysFileManagers(en.ToString(), en.PKVal.ToString());
                //foreach (AttrFile fl in fils)
                //{
                //    HtmlInputFile file = (HtmlInputFile)this.UCEn1.FindControl("F" + fl.FileNo);
                //    if (file.Value.Contains(".") == false)
                //        continue;

                //    SysFileManager enFile = sfs.GetEntityByKey(SysFileManagerAttr.AttrFileNo, fl.FileNo) as SysFileManager;
                //    SysFileManager enN = null;
                //    if (enFile == null)
                //    {
                //        enN = this.FileSave(null, file, en);
                //    }
                //    else
                //    {
                //        enFile.Delete();
                //        enN = this.FileSave(null, file, en);
                //    }

                //    enN.AttrFileNo = fl.FileNo;
                //    enN.AttrFileName = fl.FileName;
                //    enN.EnName = en.ToString();
                //    enN.Update();
                //}
            }
            catch
            {
                //     this.Alert("保存附件出现错误:" + ex.Message);
            }
            #endregion
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 设置
        /// </summary>
        public void SetDGData()
        {
            string sql = "";

            if (this.CurrentSelectedCheckButton.Index == 0)
            {
                sql = "SELECT Val FROM Sys_DefVal WHERE FK_Emp='" + this.FK_Emp + "' AND EnsName='" + this.EnsName + "' AND AttrKey='" + this.AttrKey + "'";
            }
            else if (this.CurrentSelectedCheckButton.Index == 1)
            {
                if (this.FK_Emp != "admin")
                {
                    this.Btn_Delete.Enabled = false;
                }
                else
                {
                    this.Btn_Delete.Enabled = true;
                }


                sql = "SELECT Val FROM Sys_DefVal WHERE EnsName='" + this.EnsName + "' AND AttrKey='" + this.AttrKey + "' AND FK_Emp='0'";
            }
            else if (this.CurrentSelectedCheckButton.Index == 2)
            {
                BP.En.Entity en    = ClassFactory.GetEn(this.EnsName);
                string       field = en.EnMap.GetFieldByKey(this.AttrKey);


                switch (DBAccess.AppCenterDBType)
                {
                case DBType.Oracle:
                    sql = "SELECT DISTINCT  " + field + "  FROM  " + en.EnMap.PhysicsTable + " WHERE  length(   trim(" + field + " )  ) > 0 AND rownum <=40  ";
                    break;

                default:
                    sql = "SELECT DISTINCT TOP 40  " + field + "  FROM  " + en.EnMap.PhysicsTable + " WHERE  len(rtrim(ltrim(" + field + " )) ) > 0 ";
                    break;
                }
            }

            DataTable dt = DBAccess.RunSQLReturnTable(sql);

            this.CBL1.Items.Clear();
            foreach (DataRow dr in dt.Rows)
            {
                this.CBL1.Items.Add(dr[0].ToString());
            }
        }
Ejemplo n.º 3
0
        public string SystemClass_EnsCheck()
        {
            try
            {
                BP.En.Entity en  = BP.En.ClassFactory.GetEn(this.EnName);
                BP.En.Map    map = en.EnMap;
                en.CheckPhysicsTable();
                string msg = "";
                // string msg = "";
                string table  = "";
                string sql    = "";
                string sql1   = "";
                string sql2   = "";
                int    COUNT1 = 0;
                int    COUNT2 = 0;

                DataTable dt    = new DataTable();
                Entity    refen = null;
                foreach (Attr attr in map.Attrs)
                {
Ejemplo n.º 4
0
        /// <summary>
        /// 将实体类转为json格式
        /// </summary>
        /// <param name="ens"></param>
        /// <param name="hidenKeys">隐藏字段</param>
        /// <returns></returns>
        public string TranslateEntityToJson(BP.En.Entity en, string hidenKeys)
        {
            Attrs         attrs  = en.EnMap.Attrs;
            StringBuilder append = new StringBuilder();

            append.Append("{");
            foreach (Attr attr in attrs)
            {
                if (!string.IsNullOrEmpty(hidenKeys) && hidenKeys.Contains("@" + attr.Key))
                {
                    continue;
                }

                string strValue = en.GetValStrByKey(attr.Key);
                if (!string.IsNullOrEmpty(strValue) && strValue.LastIndexOf("\\") > -1)
                {
                    strValue = strValue.Substring(0, strValue.LastIndexOf("\\"));
                }
                append.Append(attr.Key + ":'" + strValue + "',");
            }
            append = append.Remove(append.Length - 1, 1);
            append.Append("}");
            return(ReplaceIllgalChart(append.ToString()));
        }
        public void BindCheck()
        {
            BP.En.Entity en  = BP.En.ClassFactory.GetEn(this.EnsName);
            BP.En.Map    map = en.EnMap;
            en.CheckPhysicsTable();
            string msg = "";
            // string msg = "";
            string table  = "";
            string sql    = "";
            string sql1   = "";
            string sql2   = "";
            int    COUNT1 = 0;
            int    COUNT2 = 0;

            DataTable dt    = new DataTable();
            Entity    refen = null;

            foreach (Attr attr in map.Attrs)
            {
                /**/
                if (attr.MyFieldType == FieldType.FK || attr.MyFieldType == FieldType.PKFK)
                {
                    refen = ClassFactory.GetEns(attr.UIBindKey).GetNewEntity;
                    table = refen.EnMap.PhysicsTable;
                    sql1  = "SELECT COUNT(*) FROM " + table;

                    Attr pkAttr = refen.EnMap.GetAttrByKey(refen.PK);
                    sql2 = "SELECT COUNT( distinct " + pkAttr.Field + ") FROM " + table;

                    COUNT1 = DBAccess.RunSQLReturnValInt(sql1);
                    COUNT2 = DBAccess.RunSQLReturnValInt(sql2);

                    if (COUNT1 != COUNT2)
                    {
                        msg += "<BR>@关联表(" + refen.EnMap.EnDesc + ")主键不唯一,它会造成数据查询不准确或者意向不到的错误:<BR>sql1=" + sql1 + " <BR>sql2=" + sql2;
                        msg += "@SQL= SELECT * FROM (  select " + refen.PK + ",  COUNT(*) AS NUM  from " + table + " GROUP BY " + refen.PK + " ) WHERE NUM!=1";
                    }

                    sql = "SELECT " + attr.Field + " FROM " + map.PhysicsTable + " WHERE " + attr.Field + " NOT IN (SELECT " + pkAttr.Field + " FROM " + table + " )";
                    dt  = DBAccess.RunSQLReturnTable(sql);
                    if (dt.Rows.Count == 0)
                    {
                        continue;
                    }
                    else
                    {
                        msg += "<BR>:有" + dt.Rows.Count + "个错误。" + attr.Desc + " sql= " + sql;
                    }
                }
                if (attr.MyFieldType == FieldType.PKEnum || attr.MyFieldType == FieldType.Enum)
                {
                    sql = "SELECT " + attr.Field + " FROM " + map.PhysicsTable + " WHERE " + attr.Field + " NOT IN ( select Intkey from sys_enum WHERE ENUMKEY='" + attr.UIBindKey + "' )";
                    dt  = DBAccess.RunSQLReturnTable(sql);
                    if (dt.Rows.Count == 0)
                    {
                        continue;
                    }
                    else
                    {
                        msg += "<BR>:有" + dt.Rows.Count + "个错误。" + attr.Desc + " sql= " + sql;
                    }
                }
            }

            // 检查pk是否一致。
            if (en.PKs.Length == 1)
            {
                sql1   = "SELECT COUNT(*) FROM " + map.PhysicsTable;
                COUNT1 = DBAccess.RunSQLReturnValInt(sql1);

                Attr attrMyPK = en.EnMap.GetAttrByKey(en.PK);
                sql2   = "SELECT COUNT(DISTINCT " + attrMyPK.Field + ") FROM " + map.PhysicsTable;
                COUNT2 = DBAccess.RunSQLReturnValInt(sql2);
                if (COUNT1 != COUNT2)
                {
                    msg += "@物理表(" + map.EnDesc + ")中主键不唯一;它会造成数据查询不准确或者意向不到的错误:<BR>sql1=" + sql1 + " <BR>sql2=" + sql2;
                    msg += "@SQL= SELECT * FROM (  select " + en.PK + ",  COUNT(*) AS NUM  from " + map.PhysicsTable + " GROUP BY " + en.PK + " ) WHERE NUM!=1";
                }
            }

            if (msg == "")
            {
                this.UCSys1.AddMsgOfInfo(map.EnDesc + ":数据体检信息:", "体检成功。");
            }
            else
            {
                this.UCSys1.AddMsgOfWarning(map.EnDesc + ":数据体检信息:", "体检失败<BR>" + msg.Replace("@", "<BR>@"));
            }

            string help = "";

            help += "@什么是数据体检?";
            help += "&nbsp;&nbsp;数据体检就是检查数据的完整性。";
            help += "@如果系统升级,一些字段的长度发生变化,字段的类型发生变化系统就会自动修复。";
            help += "@系统会检查出来,外键枚举对应不上的信息,并把该信息列出来让管理员处理。";

            this.UCSys1.AddMsgOfInfo("什么是数据体检?", help);
        }
Ejemplo n.º 6
0
        public void ProcessRequest(HttpContext context)
        {
            string ensName = context.Request.QueryString["EnsName"];
            string PKVal   = context.Request.QueryString["PKVal"];

            BP.En.Entities ens = BP.En.ClassFactory.GetEns(ensName);
            BP.En.Entity   en  = ens.GetNewEntity;
            if (PKVal != null)
            {
                en.PKVal = PKVal;
                en.RetrieveFromDBSources();
            }
            en = BP.Sys.PubClass.CopyFromRequest(en, context.Request);
            en.Save();

            #region 保存 实体附件
            try
            {
                if (en.EnMap.Attrs.Contains("MyFileName"))
                {
                    //HtmlInputFile file = this.UCEn1.FindControl("file") as HtmlInputFile;
                    //if (file != null && file.Value.IndexOf(".") != -1)
                    //{
                    //    BP.Sys.EnCfg cfg = new EnCfg(en.ToString());
                    //    if (System.IO.Directory.Exists(cfg.FJSavePath) == false)
                    //        System.IO.Directory.CreateDirectory(cfg.FJSavePath);

                    //    /* 如果包含这二个字段。*/
                    //    string fileName = file.PostedFile.FileName;
                    //    fileName = fileName.Substring(fileName.LastIndexOf("\\") + 1);

                    //    string filePath = cfg.FJSavePath;
                    //    en.SetValByKey("MyFilePath", filePath);

                    //    string ext = "";
                    //    if (fileName.IndexOf(".") != -1)
                    //        ext = fileName.Substring(fileName.LastIndexOf(".") + 1);

                    //    en.SetValByKey("MyFileExt", ext);
                    //    en.SetValByKey("MyFileName", fileName);
                    //    en.SetValByKey("WebPath", cfg.FJWebPath + en.PKVal + "." + ext);

                    //    string fullFile = filePath + "/" + en.PKVal + "." + ext;

                    //    file.PostedFile.SaveAs(fullFile);
                    //    file.PostedFile.InputStream.Close();
                    //    file.PostedFile.InputStream.Dispose();
                    //    file.Dispose();

                    //    System.IO.FileInfo info = new System.IO.FileInfo(fullFile);
                    //    en.SetValByKey("MyFileSize", BP.DA.DataType.PraseToMB(info.Length));
                    //    if (DataType.IsImgExt(ext))
                    //    {
                    //        System.Drawing.Image img = System.Drawing.Image.FromFile(fullFile);
                    //        en.SetValByKey("MyFileH", img.Height);
                    //        en.SetValByKey("MyFileW", img.Width);
                    //        img.Dispose();
                    //    }
                    //    en.Update();
                    //}
                }
            }
            catch (Exception ex)
            {
                //  this.Alert("保存附件出现错误:" + ex.Message);
            }
            #endregion

            #region 保存 属性 附件
            try
            {
                //AttrFiles fils = en.EnMap.HisAttrFiles;
                //SysFileManagers sfs = new SysFileManagers(en.ToString(), en.PKVal.ToString());
                //foreach (AttrFile fl in fils)
                //{
                //    HtmlInputFile file = (HtmlInputFile)this.UCEn1.FindControl("F" + fl.FileNo);
                //    if (file.Value.Contains(".") == false)
                //        continue;

                //    SysFileManager enFile = sfs.GetEntityByKey(SysFileManagerAttr.AttrFileNo, fl.FileNo) as SysFileManager;
                //    SysFileManager enN = null;
                //    if (enFile == null)
                //    {
                //        enN = this.FileSave(null, file, en);
                //    }
                //    else
                //    {
                //        enFile.Delete();
                //        enN = this.FileSave(null, file, en);
                //    }

                //    enN.AttrFileNo = fl.FileNo;
                //    enN.AttrFileName = fl.FileName;
                //    enN.EnName = en.ToString();
                //    enN.Update();
                //}
            }
            catch
            {
                //     this.Alert("保存附件出现错误:" + ex.Message);
            }
            #endregion
        }