通过反射获得巫霜的表字段信息并生成模版代码的工具 - DevCodeUtil

2017-02-11 21:15:26  访问(1383) 赞(0) 踩(0)

 /// <summary>
        /// 
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        protected bool DevCodeCreateDetailIsNotShow(string str)
        {
            if (str == null)
                return true;

            str = str.Trim().ToLower();

            switch (str)
            {
                case "id":
                case "createby":
                case "createdate":
                case "updateby":
                case "updatedate":
                case "create_by":
                case "create_date":
                case "update_by":
                case "update_date":
                    return true;
                default:
                    return false;
            }
        }

        protected eKing.EkVehicleLib.Enums.ValidAction.EmValidAction
            DevCodeCreateDetailGetEmValidActionV(DataColumnAttributeInfo da)
        {
            
            switch (da.emVarTypeValue)
            {
                case SlowX.Core.Enums.VarType.EmVarType.DateTime类型:
                    return eKing.EkVehicleLib.Enums.ValidAction.EmValidAction.日期;
                case SlowX.Core.Enums.VarType.EmVarType.DateTimeNull类型:
                    return eKing.EkVehicleLib.Enums.ValidAction.EmValidAction.日期或空;
                case SlowX.Core.Enums.VarType.EmVarType.String类型:
                    return Enums.ValidAction.EmValidAction.非空;
                default:
                    return Enums.ValidAction.EmValidAction.非空;
            }
        }


        /// <summary>
        /// 
        /// </summary>
        /// <param name="da"></param>
        /// <returns></returns>
        protected eKing.EkVehicleLib.Enums.ValidFlag.EmValidFlag
            DevCodeCreateDetailGetEmValidFlagV(DataColumnAttributeInfo da)
        {
            if (!da.AllowDBNull)
            {
                return Enums.ValidFlag.EmValidFlag.校验;
            }

            switch (da.emVarTypeValue)
            {
                case SlowX.Core.Enums.VarType.EmVarType.String类型:
                    return Enums.ValidFlag.EmValidFlag.不校验;
                default:
                    return Enums.ValidFlag.EmValidFlag.校验;
            }
        }
        
        
        /// <summary>
        /// 
        /// </summary>
        /// <param name="da"></param>
        /// <returns></returns>
        protected eKing.EkVehicleLib.Enums.EkCtrlStyle.EmEkCtrlStyle
            DevCodeCreateDetailGetEmEkCtrlStyleV(DataColumnAttributeInfo da)
        {
            string str = da.Name.Trim().ToLower();

            switch (str)
            {
                case "remark":
                case "remarks":
                    return Enums.EkCtrlStyle.EmEkCtrlStyle.多行文本;
                default:
                    break;
            }

            switch (da.emVarTypeValue)
            {
                case SlowX.Core.Enums.VarType.EmVarType.DateTimeNull类型:
                case SlowX.Core.Enums.VarType.EmVarType.DateTime类型:
                    return Enums.EkCtrlStyle.EmEkCtrlStyle.日期;
                default:
                    return Enums.EkCtrlStyle.EmEkCtrlStyle.文本;
            }
            
        }

         
        /// <summary>
        /// 
        /// </summary>
        /// <param name="da"></param>
        /// <returns></returns>
        protected eKing.EkVehicleLib.Enums.SaveValueLogic.EmSaveValueLogic
            DevCodeCreateDetailGetEmSaveValueLogicV(DataColumnAttributeInfo da)
        {
            string str = da.Name.Trim().ToLower();

            switch (str)
            {
                case "remark":
                case "remarks":
                    return Enums.SaveValueLogic.EmSaveValueLogic.字符串;
                default:
                    break;
            }

            switch (da.emVarTypeValue)
            {
                case SlowX.Core.Enums.VarType.EmVarType.DateTimeNull类型:
                case SlowX.Core.Enums.VarType.EmVarType.DateTime类型:
                    return Enums.SaveValueLogic.EmSaveValueLogic.时间;
                default:
                    return Enums.SaveValueLogic.EmSaveValueLogic.字符串Trim;
            }
            
        } 

          
        /// <summary>
        /// 
        /// </summary>
        /// <param name="da"></param>
        /// <returns></returns>
        protected eKing.EkVehicleLib.Enums.SetValueLogic.EmSetValueLogic
            DevCodeCreateDetailGetEmSetValueLogicV(DataColumnAttributeInfo da)
        {
            string str = da.Name.Trim().ToLower();

             
            switch (da.emVarTypeValue)
            {
                case SlowX.Core.Enums.VarType.EmVarType.DateTimeNull类型:
                case SlowX.Core.Enums.VarType.EmVarType.DateTime类型:
                    return Enums.SetValueLogic.EmSetValueLogic.日期;
                default:
                    return Enums.SetValueLogic.EmSetValueLogic.字符串;
            }
            
        } 
        
        /// <summary>
        /// 
        /// </summary>
        /// <param name="bll"></param>
        /// <returns></returns>
        public string DevCodeCreateDetail
            (
                BaseBusiness bll
            )
        {
            StringBuilder theResult = new StringBuilder();

            BaseTableAttribute tb = bll.Entity.GetBaseTableAttribute();

            bool isFirst = true;
            foreach (DataColumnAttributeInfo da in tb.listDataColumnAttributeInfoValue)
            {
                if (da.IsPrimaryKey)
                    continue;

                if(DevCodeCreateDetailIsNotShow(da.Name))
                    continue;

                if (isFirst)
                {
                    theResult.AppendLine("<tr>");
                }

                eKing.EkVehicleLib.Enums.ValidAction.EmValidAction
                    emVA
                    =
                    DevCodeCreateDetailGetEmValidActionV(da);


                eKing.EkVehicleLib.Enums.ValidFlag.EmValidFlag
                    emVF 
                    =
                    DevCodeCreateDetailGetEmValidFlagV(da);

                eKing.EkVehicleLib.Enums.EkCtrlStyle.EmEkCtrlStyle
                    emCS
                    =
                   DevCodeCreateDetailGetEmEkCtrlStyleV(da);

                eKing.EkVehicleLib.Enums.SaveValueLogic.EmSaveValueLogic
                    emSV
                    =
                    DevCodeCreateDetailGetEmSaveValueLogicV(da);

                eKing.EkVehicleLib.Enums.SetValueLogic.EmSetValueLogic
                    emSetV
                    =
            DevCodeCreateDetailGetEmSetValueLogicV(da);

                string strAdd = "";

                if(emCS == Enums.EkCtrlStyle.EmEkCtrlStyle.多行文本)
                {
                    strAdd = " TextMode=\"MultiLine\"";
                }

                theResult.AppendLine(
@"<th><%=txt_" + da.Name + @".PrintLabel() %>
</th>
<td>
    <ek:EkTextBox ID=""txt_" + da.Name + @""" runat=""server""" + strAdd + @" EmEkCtrlStyleV=""" + emCS.ToString() + @""" LabelName=""" + da.Comment + @""" EmSetValueLogicV=""" + emSetV.ToString() + @""" EmValidActionV=""" + emVA.ToString() + @""" EmSaveValueLogicV=""" + emSV.ToString() + @""" EmValidFlagV=""" + emVF.ToString() + @"""  />
</td>"
                    );

                if (!isFirst)
                    theResult.AppendLine("</tr>");

                isFirst = !isFirst;

            }

            if (!isFirst)
            {
                theResult.AppendLine("</tr>");
            }

            return theResult.ToString();
        }


        /// <summary>
        /// 
        /// </summary>
        /// <param name="bll"></param>
        /// <returns></returns>
        public string DevCodeCreateView
            (
                BaseBusiness bll
            )
        {
            StringBuilder theResult = new StringBuilder();

            BaseTableAttribute tb = bll.Entity.GetBaseTableAttribute();

            bool isFirst = true;
            foreach (DataColumnAttributeInfo da in tb.listDataColumnAttributeInfoValue)
            {
                if (da.IsPrimaryKey)
                    continue;

                if (DevCodeCreateDetailIsNotShow(da.Name))
                    continue;

                if (isFirst)
                {
                    theResult.AppendLine("<tr>");
                }

                
                theResult.AppendLine(
@"<th><%=lt_" + da.Name + @".PrintLabel() %>
</th>
<td>
    <ek:EkLiteral ID=""lt_" + da.Name + @""" runat=""server""" + @" LabelName=""" + da.Comment + @""" />
</td>"
                    );

                if (!isFirst)
                    theResult.AppendLine("</tr>");

                isFirst = !isFirst;

            }

            if (!isFirst)
            {
                theResult.AppendLine("</tr>");
            }

            return theResult.ToString();
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="bll"></param>
        /// <returns></returns>
        public string DevCodeCreateGrid
            (
                BaseBusiness bll
            )
        {
            StringBuilder theResult 
                =
                new StringBuilder();

            BaseTableAttribute tb 
                = 
                bll.Entity.GetBaseTableAttribute();

            bool isHidden = false;
            foreach (DataColumnAttributeInfo da in tb.listDataColumnAttributeInfoValue)
            {
                if (da.IsPrimaryKey)
                    isHidden = true;
                else if (da.Name.Trim().ToLower() == "id")
                    isHidden = true;
                else
                    isHidden = false;

                theResult.AppendLine("<ek:EkPqGridColumn Name=\"" + da.Name + "\" Align=\"Center\" HeadText=\"" + da.Comment + "\" Hidden=\"" + isHidden.ToString().ToLower() + "\" />");
            }

            return @"
<ek:EkPqGrid ID=""EkPqGrid1"" runat=""server"">
<ColModel>
" + theResult.ToString() + @"
</ColModel>
</ek:EkPqGrid>";
        }


标签:通过反射获得巫霜的表字段信息并生成模版代码的工具 - DevCodeUtil 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)