Ejemplo n.º 1
0
    /// <summary>
    /// 文件保存
    /// </summary>
    /// <param name="fileNameDesc"></param>
    /// <param name="File1"></param>
    /// <returns></returns>
    private SysFileManager FileSave(string fileNameDesc, HtmlInputFile File1, Entity myen)
    {
        SysFileManager en = new SysFileManager();

        en.EnName = myen.ToString();
        // en.FileID = this.RefPK + "_" + count.ToString();
        EnCfg cfg = new EnCfg(en.EnName);

        string filePath = cfg.FJSavePath; // BP.SystemConfig.PathOfFDB + "\\" + this.EnName + "\\";

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

        string ext = System.IO.Path.GetExtension(File1.PostedFile.FileName);

        ext          = ext.Replace(".", "");
        en.MyFileExt = ext;
        if (fileNameDesc == "" || fileNameDesc == null)
        {
            en.MyFileName = System.IO.Path.GetFileNameWithoutExtension(File1.PostedFile.FileName);
        }
        else
        {
            en.MyFileName = fileNameDesc;
        }
        en.RDT        = DataType.CurrentData;
        en.RefVal     = myen.PKVal.ToString();
        en.MyFilePath = filePath;
        en.Insert();

        string fileName = filePath + en.OID + "." + en.MyFileExt;

        File1.PostedFile.SaveAs(fileName);

        File1.PostedFile.InputStream.Close();
        File1.PostedFile.InputStream.Dispose();
        File1.Dispose();

        System.IO.FileInfo fi = new System.IO.FileInfo(fileName);
        en.MyFileSize = DataType.PraseToMB(fi.Length);

        if (DataType.IsImgExt(en.MyFileExt))
        {
            System.Drawing.Image img = System.Drawing.Image.FromFile(fileName);
            en.MyFileH = img.Height;
            en.MyFileW = img.Width;
            img.Dispose();
        }
        en.WebPath = cfg.FJWebPath + en.OID + "." + en.MyFileExt;
        en.Update();
        return(en);
    }
Ejemplo n.º 2
0
        /// <summary>
        /// 实体初始化
        /// </summary>
        /// <returns></returns>
        public string EntityOnly_Init()
        {
            try
            {
                //是否是空白记录.
                bool isBlank = DataType.IsNullOrEmpty(this.PKVal);

                //初始化entity.
                string enName = this.EnName;
                Entity en     = null;
                if (isBlank == true)
                {
                    if (DataType.IsNullOrEmpty(this.EnsName) == true)
                    {
                        return("err@类名没有传递过来");
                    }
                    Entities ens = ClassFactory.GetEns(this.EnsName);
                    en = ens.GetNewEntity;
                }
                else
                {
                    en = ClassFactory.GetEn(this.EnName);
                }

                if (en == null)
                {
                    return("err@参数类名不正确.");
                }

                //获得描述.
                Map    map   = en.EnMap;
                string pkVal = this.PKVal;
                if (isBlank == false)
                {
                    en.PKVal = pkVal;
                    int i = en.RetrieveFromDBSources();
                    if (i == 0)
                    {
                        return("err@数据[" + map.EnDesc + "]主键为[" + pkVal + "]不存在,或者没有保存。");
                    }
                }
                else
                {
                    foreach (Attr attr in en.EnMap.Attrs)
                    {
                        en.SetValByKey(attr.Key, attr.DefaultVal);
                    }

                    //设置默认的数据.
                    en.ResetDefaultVal();

                    en.SetValByKey("RefPKVal", this.RefPKVal);

                    //自动生成一个编号.
                    if (en.IsNoEntity == true && en.EnMap.IsAutoGenerNo == true)
                    {
                        en.SetValByKey("No", en.GenerNewNoByKey("No"));
                    }
                }


                //定义容器.
                DataSet ds = new DataSet();

                //定义Sys_MapData.
                MapData md = new MapData();
                md.No   = this.EnName;
                md.Name = map.EnDesc;

                //附件类型.
                md.SetPara("BPEntityAthType", (int)map.HisBPEntityAthType);

                #region 加入权限信息.
                //把权限加入参数里面.
                if (en.HisUAC.IsInsert)
                {
                    md.SetPara("IsInsert", "1");
                }
                if (en.HisUAC.IsUpdate)
                {
                    md.SetPara("IsUpdate", "1");
                }
                if (isBlank == true)
                {
                    if (en.HisUAC.IsDelete)
                    {
                        md.SetPara("IsDelete", "0");
                    }
                }
                else
                {
                    if (en.HisUAC.IsDelete)
                    {
                        md.SetPara("IsDelete", "1");
                    }
                }
                #endregion 加入权限信息.


                ds.Tables.Add(md.ToDataTableField("Sys_MapData"));

                //把主数据放入里面去.
                DataTable dtMain = en.ToDataTableField("MainTable");
                ds.Tables.Add(dtMain);

                #region 增加上分组信息.
                EnCfg  ec         = new EnCfg(this.EnName);
                string groupTitle = ec.GroupTitle;
                if (DataType.IsNullOrEmpty(groupTitle) == true)
                {
                    groupTitle = "@" + en.PK + ",基本信息," + map.EnDesc + "";
                }

                //增加上.
                DataTable dtGroups = new DataTable("Sys_GroupField");
                dtGroups.Columns.Add("OID");
                dtGroups.Columns.Add("Lab");
                dtGroups.Columns.Add("Tip");
                dtGroups.Columns.Add("CtrlType");
                dtGroups.Columns.Add("CtrlID");

                string[] strs = groupTitle.Split('@');
                foreach (string str in strs)
                {
                    if (DataType.IsNullOrEmpty(str))
                    {
                        continue;
                    }

                    string[] vals = str.Split('=');
                    if (vals.Length == 1)
                    {
                        vals = str.Split(',');
                    }

                    if (vals.Length == 0)
                    {
                        continue;
                    }

                    DataRow dr = dtGroups.NewRow();
                    dr["OID"] = vals[0];
                    dr["Lab"] = vals[1];
                    if (vals.Length == 3)
                    {
                        dr["Tip"] = vals[2];
                    }
                    dtGroups.Rows.Add(dr);
                }
                ds.Tables.Add(dtGroups);

                #endregion 增加上分组信息.

                #region 字段属性.
                MapAttrs  attrs        = en.EnMap.Attrs.ToMapAttrs;
                DataTable sys_MapAttrs = attrs.ToDataTableField("Sys_MapAttr");
                sys_MapAttrs.Columns.Remove(MapAttrAttr.GroupID);
                sys_MapAttrs.Columns.Add("GroupID");


                //sys_MapAttrs.Columns[MapAttrAttr.GroupID].DataType = typeof(string); //改变列类型.

                //给字段增加分组.
                string currGroupID = "";
                foreach (DataRow drAttr in sys_MapAttrs.Rows)
                {
                    if (currGroupID.Equals("") == true)
                    {
                        currGroupID = dtGroups.Rows[0]["OID"].ToString();
                    }

                    string keyOfEn = drAttr[MapAttrAttr.KeyOfEn].ToString();
                    foreach (DataRow drGroup in dtGroups.Rows)
                    {
                        string field = drGroup["OID"].ToString();
                        if (keyOfEn.Equals(field))
                        {
                            currGroupID = field;
                        }
                    }
                    drAttr[MapAttrAttr.GroupID] = currGroupID;
                }
                ds.Tables.Add(sys_MapAttrs);
                #endregion 字段属性.

                #region 加入扩展属性.
                MapExts   mapExts    = new MapExts(this.EnName + "s");
                DataTable Sys_MapExt = mapExts.ToDataTableField("Sys_MapExt");
                ds.Tables.Add(Sys_MapExt);
                #endregion 加入扩展属性.

                #region 把外键与枚举放入里面去.

                //加入外键.
                foreach (DataRow dr in sys_MapAttrs.Rows)
                {
                    string uiBindKey = dr["UIBindKey"].ToString();
                    string lgType    = dr["LGType"].ToString();
                    if (lgType.Equals("2") == false)
                    {
                        continue;
                    }

                    string UIIsEnable = dr["UIVisible"].ToString();

                    if (UIIsEnable.Equals("0") == true)
                    {
                        continue;
                    }

                    if (DataType.IsNullOrEmpty(uiBindKey) == true)
                    {
                        string myPK = dr["MyPK"].ToString();
                        /*如果是空的*/
                        //   throw new Exception("@属性字段数据不完整,流程:" + fl.No + fl.Name + ",节点:" + nd.NodeID + nd.Name + ",属性:" + myPK + ",的UIBindKey IsNull ");
                    }

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

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

                    DataTable dt = BP.Sys.PubClass.GetDataTableByUIBineKey(uiBindKey);
                    dt.TableName = keyOfEn;

                    ds.Tables.Add(dt);
                }

                //加入sql模式的外键.
                foreach (Attr attr in en.EnMap.Attrs)
                {
                    if (attr.IsRefAttr == true)
                    {
                        continue;
                    }

                    if (DataType.IsNullOrEmpty(attr.UIBindKey) || attr.UIBindKey.Length <= 10)
                    {
                        continue;
                    }

                    if (attr.UIIsReadonly == true)
                    {
                        continue;
                    }

                    if (attr.UIBindKey.Contains("SELECT") == true || attr.UIBindKey.Contains("select") == true)
                    {
                        /*是一个sql*/
                        string sqlBindKey = attr.UIBindKey.Clone() as string;
                        sqlBindKey = BP.WF.Glo.DealExp(sqlBindKey, en, null);

                        DataTable dt = DBAccess.RunSQLReturnTable(sqlBindKey);
                        dt.TableName = attr.Key;

                        //@杜. 翻译当前部分.
                        if (SystemConfig.AppCenterDBType == DBType.Oracle)
                        {
                            dt.Columns["NO"].ColumnName   = "No";
                            dt.Columns["NAME"].ColumnName = "Name";
                        }

                        ds.Tables.Add(dt);
                    }
                }

                //加入枚举的外键.
                string enumKeys = "";
                foreach (Attr attr in map.Attrs)
                {
                    if (attr.MyFieldType == FieldType.Enum)
                    {
                        enumKeys += "'" + attr.UIBindKey + "',";
                    }
                }

                if (enumKeys.Length > 2)
                {
                    enumKeys = enumKeys.Substring(0, enumKeys.Length - 1);
                    // Sys_Enum
                    string    sqlEnum = "SELECT * FROM Sys_Enum WHERE EnumKey IN (" + enumKeys + ")";
                    DataTable dtEnum  = DBAccess.RunSQLReturnTable(sqlEnum);
                    dtEnum.TableName = "Sys_Enum";

                    if (SystemConfig.AppCenterDBType == DBType.Oracle)
                    {
                        dtEnum.Columns["MYPK"].ColumnName    = "MyPK";
                        dtEnum.Columns["LAB"].ColumnName     = "Lab";
                        dtEnum.Columns["ENUMKEY"].ColumnName = "EnumKey";
                        dtEnum.Columns["INTKEY"].ColumnName  = "IntKey";
                        dtEnum.Columns["LANG"].ColumnName    = "Lang";
                    }

                    ds.Tables.Add(dtEnum);
                }
                #endregion 把外键与枚举放入里面去.


                #region 增加 上方法.
                DataTable dtM = new DataTable("dtM");
                dtM.Columns.Add("No");
                dtM.Columns.Add("Title");
                dtM.Columns.Add("Tip");
                dtM.Columns.Add("Visable");

                dtM.Columns.Add("Url");
                dtM.Columns.Add("Target");
                dtM.Columns.Add("Warning");
                dtM.Columns.Add("RefMethodType");
                dtM.Columns.Add("GroupName");
                dtM.Columns.Add("W");
                dtM.Columns.Add("H");
                dtM.Columns.Add("Icon");
                dtM.Columns.Add("IsCanBatch");
                dtM.Columns.Add("RefAttrKey");

                RefMethods rms = map.HisRefMethods;
                foreach (RefMethod item in rms)
                {
                    string myurl = "";
                    if (item.RefMethodType != RefMethodType.Func)
                    {
                        myurl = item.Do(null) as string;
                        if (myurl == null)
                        {
                            continue;
                        }
                    }
                    else
                    {
                        myurl = "../RefMethod.htm?Index=" + item.Index + "&EnName=" + en.ToString() + "&EnsName=" + en.GetNewEntities.ToString() + "&PKVal=" + this.PKVal;
                    }

                    DataRow dr = dtM.NewRow();

                    dr["No"]      = item.Index;
                    dr["Title"]   = item.Title;
                    dr["Tip"]     = item.ToolTip;
                    dr["Visable"] = item.Visable;
                    dr["Warning"] = item.Warning;

                    dr["RefMethodType"] = (int)item.RefMethodType;
                    dr["RefAttrKey"]    = item.RefAttrKey;
                    dr["Url"]           = myurl;
                    dr["W"]             = item.Width;
                    dr["H"]             = item.Height;
                    dr["Icon"]          = item.Icon;
                    dr["IsCanBatch"]    = item.IsCanBatch;
                    dr["GroupName"]     = item.GroupName;

                    dtM.Rows.Add(dr); //增加到rows.
                }
                #endregion 增加 上方法.

                //增加方法。
                ds.Tables.Add(dtM);

                return(BP.Tools.Json.ToJson(ds));
            }
            catch (Exception ex)
            {
                return("err@" + ex.Message);
            }
        }
Ejemplo n.º 3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        #region 清除缓存;
        this.Response.Expires         = -1;
        this.Response.ExpiresAbsolute = DateTime.Now.AddMonths(-1);
        this.Response.CacheControl    = "no-cache";
        #endregion 清除缓存

        try
        {
            #region 判断权限
            string pk = this.Request.QueryString["PK"];
            if (pk == null)
            {
                pk = this.Request.QueryString[this.CurrEn.PK];
            }

            UAC uac = this.CurrEn.HisUAC;
            if (uac.IsView == false)
            {
                throw new Exception("@对不起,您没有查看的权限!");
            }

            this.IsReadonly = !uac.IsUpdate;  //是否更有修改的权限.
            if (this.Request.QueryString["IsReadonly"] == "1" ||
                this.Request.QueryString["Readonly"] == "1")
            {
                this.IsReadonly = true;
            }
            #endregion

            this.ToolBar1.InitFuncEn(uac, this.CurrEn);

            this.UCEn1.IsReadonly = this.IsReadonly;
            this.UCEn1.IsShowDtl  = true;
            this.UCEn1.HisEn      = this.CurrEn;

            EnCfg ec = new EnCfg();
            ec.No = this.EnName;
            int i = ec.RetrieveFromDBSources();

            if (i >= 1)
            {
                this.UCEn1.BindV2(this.CurrEn, this.CurrEn.ToString(), this.IsReadonly, true);
            }
            else
            {
                this.UCEn1.Bind(this.CurrEn, this.CurrEn.ToString(), this.IsReadonly, true);
            }
        }
        catch (Exception ex)
        {
            this.Response.Write(ex.Message);
            Entity en = ClassFactory.GetEns(this.EnsName).GetNewEntity;
            en.CheckPhysicsTable();
            return;
        }

        this.Page.Title = this.CurrEn.EnDesc;

        #region 设置事件
        if (this.Btn_DelFile != null)
        {
            this.Btn_DelFile.Click += new ImageClickEventHandler(Btn_DelFile_Click);
        }

        if (this.ToolBar1.IsExit(NamesOfBtn.New))
        {
            this.ToolBar1.GetLinkBtnByID(NamesOfBtn.New).Click += new System.EventHandler(this.ToolBar1_ButtonClick);
        }

        if (this.ToolBar1.IsExit(NamesOfBtn.Save))
        {
            this.ToolBar1.GetLinkBtnByID(NamesOfBtn.Save).Click += new System.EventHandler(this.ToolBar1_ButtonClick);
        }

        if (this.ToolBar1.IsExit(NamesOfBtn.SaveAndClose))
        {
            this.ToolBar1.GetLinkBtnByID(NamesOfBtn.SaveAndClose).Click += new System.EventHandler(this.ToolBar1_ButtonClick);
        }

        if (this.ToolBar1.IsExit(NamesOfBtn.SaveAndNew))
        {
            this.ToolBar1.GetLinkBtnByID(NamesOfBtn.SaveAndNew).Click += new System.EventHandler(this.ToolBar1_ButtonClick);
        }

        if (this.ToolBar1.IsExit(NamesOfBtn.Delete))
        {
            this.ToolBar1.GetLinkBtnByID(NamesOfBtn.Delete).Click += new System.EventHandler(this.ToolBar1_ButtonClick);
        }

        AttrFiles fls = this.CurrEn.EnMap.HisAttrFiles;
        foreach (AttrFile fl in fls)
        {
            if (this.UCEn1.IsExit("Btn_DelFile" + fl.FileNo))
            {
                this.UCEn1.GetImageButtonByID("Btn_DelFile" + fl.FileNo).Click += new ImageClickEventHandler(Btn_DelFile_X_Click);
            }
        }
        #endregion 设置事件

        //此处增加一个判断删除成功的逻辑,办法不太好,暂用,added by liuxc,2015-11-10
        if (!IsPostBack)
        {
            if (Request["DeleteOver"] == "1")
            {
                Page.ClientScript.RegisterClientScriptBlock(GetType(), "showmsg", "alert('删除成功!');", true);
            }
        }
    }
Ejemplo n.º 4
0
    public void Save()
    {
        Entity en = this.GetEns.GetNewEntity;

        if (this.PKVal != null)
        {
            en.PKVal = this.PKVal;
            en.RetrieveFromDBSources();
        }

        en = this.UCEn1.GetEnData(en);

        this.CurrEn = en;
        en.Save();
        this.PKVal = en.PKVal;

        #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 (Exception ex)
        {
            this.Alert("保存附件出现错误:" + ex.Message);
        }
        #endregion
    }
Ejemplo n.º 5
0
    public void Bind()
    {
        #region 生成标题
        Entity en  = this.HisEn;
        Map    map = this.HisEn.EnMap;
        EnCfg  cfg = new EnCfg(en.ToString());

        UIConfig uicfg = new UIConfig(en);

        Attrs attrs = map.Attrs;
        if (attrs.Count >= 4)
        {
            this.ucsys1.Add("<table border=0 cellpadding='0'  style='border-collapse: collapse;width:100%' cellspacing='0'  >");
        }
        else
        {
            this.ucsys1.Add("<table border=0 cellpadding='0'  style='border-collapse: collapse;width:50%' cellspacing='0'  >");
        }

        this.ucsys1.AddTR();
        CheckBox cb   = new CheckBox();
        string   str1 = "<INPUT id='checkedAll' onclick='SelectAll()' type='checkbox' name='checkedAll'>";
        this.ucsys1.AddTDGroupTitle(str1);
        foreach (Attr attr in attrs)
        {
            if (attr.UIVisible == false)
            {
                continue;
            }
            this.ucsys1.AddTDGroupTitle(attr.Desc);
        }

        if (map.IsHaveFJ)
        {
            this.ucsys1.AddTDGroupTitle("附件");
        }
        this.ucsys1.AddTDGroupTitle();
        this.ucsys1.AddTREnd();
        #endregion 生成标题

        this.Title = en.EnDesc;

        Entities    ens = this.HisEns;
        QueryObject qo  = new QueryObject(ens);

        #region 用户界面属性设置- del
        //BP.Web.Comm.UIRowStyleGlo tableStyle = (UIRowStyleGlo)ens.GetEnsAppCfgByKeyInt("UIRowStyleGlo"); // 界面风格。
        //bool IsEnableDouclickGlo = ens.GetEnsAppCfgByKeyBoolen("IsEnableDouclickGlo"); // 是否启用双击
        //bool IsEnableRefFunc = ens.GetEnsAppCfgByKeyBoolen("IsEnableRefFunc"); // 是否显示相关功能。
        //bool IsEnableFocusField = ens.GetEnsAppCfgByKeyBoolen("IsEnableFocusField"); //是否启用焦点字段。
        //bool isShowOpenICON = ens.GetEnsAppCfgByKeyBoolen("IsEnableOpenICON"); //是否启用 OpenICON 。
        //string FocusField = null;
        //if (IsEnableFocusField)
        //    FocusField = ens.GetEnsAppCfgByKeyString("FocusField");

        //int WinCardH = ens.GetEnsAppCfgByKeyInt("WinCardH"); // 弹出窗口高度
        //int WinCardW = ens.GetEnsAppCfgByKeyInt("WinCardW"); // 弹出窗口宽度.
        #endregion 用户界面属性设置

        #region 生成翻页
        try
        {
            this.ucsys2.Clear();
            this.ucsys2.BindPageIdx(qo.GetCount(), BP.Sys.SystemConfig.PageSize, this.PageIdx, "Ens.aspx?EnsName=" + this.EnsName);
            qo.DoQuery(en.PK, BP.Sys.SystemConfig.PageSize, this.PageIdx, false);
        }
        catch (Exception ex)
        {
            //自动创建表.
            Log.DebugWriteInfo(ex.Message);

            ens.GetNewEntity.CheckPhysicsTable();
            return;
        }
        #endregion 生成翻页

        en.PKVal = "0";
        ens.AddEntity(en);
        DDL  ddl = new DDL();
        bool is1 = false;

        #region 生成数据
        int i = 0;
        foreach (Entity dtl in ens)
        {
            string urlExt = "\"javascript:ShowEn('./RefFunc/UIEn.aspx?EnsName=" + ens.ToString() + "&PK=" + dtl.PKVal + "', 'cd');\"";
            i++;
            if (Equals(dtl.PKVal, "0"))
            {
                this.ucsys1.AddTRSum();
                this.ucsys1.AddTDIdx("<b>*</b>");
            }
            else
            {
                is1     = this.ucsys1.AddTR(is1, "ondblclick=" + urlExt);
                cb      = new CheckBox();
                cb.ID   = "IDX_" + dtl.PKVal;
                cb.Text = i.ToString();
                this.ucsys1.AddTDIdx(cb);
            }
            foreach (Attr attr in attrs)
            {
                if (attr.UIVisible == false)
                {
                    continue;
                }

                if (attr.Key == "OID")
                {
                    continue;
                }

                string val = dtl.GetValByKey(attr.Key).ToString();
                switch (attr.UIContralType)
                {
                case UIContralType.TB:
                    TB tb = new TB();
                    tb.LoadMapAttr(attr);
                    this.ucsys1.AddTD(tb);
                    tb.ID = "TB_" + attr.Key + "_" + dtl.PKVal;
                    switch (attr.MyDataType)
                    {
                    case DataType.AppMoney:
                    case DataType.AppRate:
                        tb.TextExtMoney = decimal.Parse(val);
                        break;

                    default:
                        tb.Text = val;
                        break;
                    }

                    if (attr.IsNum && attr.IsFKorEnum == false)
                    {
                        if (tb.Enabled)
                        {
                            // OnKeyPress="javascript:return VirtyNum(this);"
                            //  tb.Attributes["OnKeyDown"] = "javascript:return VirtyNum(this);";
                            // tb.Attributes["onkeyup"] += "javascript:C" + dtl.PKVal + "();C" + attr.Key + "();";
                            tb.Attributes["class"] = "TBNum";
                        }
                        else
                        {
                            //   tb.Attributes["onpropertychange"] += "C" + attr.Key + "();";
                            tb.Attributes["class"] = "TBNumReadonly";
                        }
                    }
                    break;

                case UIContralType.DDL:
                    if (attr.UIIsReadonly)
                    {
                        ddl = new DDL();
                        ddl.LoadMapAttr(attr);
                        ddl.ID = "DDL_" + attr.Key + "_" + dtl.PKVal;
                        //  this.ucsys1.AddTD(ddl);
                        this.ucsys1.AddTD(ddl);
                        ddl.SetSelectItem(val);
                    }
                    else
                    {
                        this.ucsys1.AddTD(dtl.GetValRefTextByKey(attr.Key));
                    }
                    break;

                case UIContralType.CheckBok:
                    cb    = new CheckBox();
                    cb.ID = "CB_" + attr.Key + "_" + dtl.PKVal;
                    //cb.Text = attr.Name;
                    if (val == "1")
                    {
                        cb.Checked = true;
                    }
                    else
                    {
                        cb.Checked = false;
                    }
                    this.ucsys1.AddTDCenter(cb);
                    break;

                default:
                    break;
                }
            }
            if (map.IsHaveFJ)
            {
                string ext = dtl.GetValStrByKey("MyFileExt");
                if (ext == null || ext.Length > 1)
                {
                    this.ucsys1.AddTD("<a href='" + cfg.FJWebPath + "/" + dtl.PKVal + "." + ext + "' target=_blank ><img src='../Images/FileType/" + dtl.GetValStrByKey("MyFileExt") + ".gif' border=0/>" + dtl.GetValStrByKey("MyFileName") + "</a>");
                }
                else
                {
                    this.ucsys1.AddTD();
                }
            }
            if (uicfg.IsEnableOpenICON)
            {
                this.ucsys1.Add("<TD class='TD' style='cursor:hand;' nowrap=true><a href=" + urlExt + " ><img src='../Img/Btn/Open.gif' border=0/></a></TD>");
            }
            else
            {
                this.ucsys1.AddTD();
            }
            this.ucsys1.AddTREnd();
        }

        #region 生成合计,屏蔽
        //if (false)
        //{
        //    this.ucsys1.AddTRSum();
        //    this.ucsys1.AddTD("colspan=1", "合计");
        //    foreach (Attr attr in attrs)
        //    {
        //        if (attr.UIVisible == false)
        //            continue;

        //        if (attr.IsNum && attr.IsFKorEnum == false)
        //        {
        //            TB tb = new TB();
        //            tb.ID = "TB_" + attr.Key;
        //            tb.Text = attr.DefaultVal.ToString();
        //            tb.ShowType = attr.HisTBType;
        //            tb.ReadOnly = true;
        //            tb.Font.Bold = true;
        //            tb.BackColor = System.Drawing.Color.FromName("#FFFFFF");

        //            switch (attr.MyDataType)
        //            {
        //                case DataType.AppRate:
        //                case DataType.AppMoney:
        //                    tb.TextExtMoney = ens.GetSumDecimalByKey(attr.Key);
        //                    break;
        //                case DataType.AppInt:
        //                    tb.TextExtInt = ens.GetSumIntByKey(attr.Key);
        //                    break;
        //                case DataType.AppFloat:
        //                    tb.TextExtFloat = ens.GetSumFloatByKey(attr.Key);
        //                    break;
        //                default:
        //                    break;
        //            }
        //            this.ucsys1.AddTD(tb);
        //        }
        //        else
        //        {
        //            this.ucsys1.AddTD();
        //        }
        //    }

        //    if (map.IsHaveFJ)
        //        this.ucsys1.AddTD();

        //    this.ucsys1.AddTD();
        //    this.ucsys1.AddTREnd();
        //}
        #endregion 生成合计

        #endregion 生成数据

        this.ucsys1.AddTableEnd();
    }