using System; using System.Data; using System.Collections; using BP.DA; using BP.En; using BP.Sys; using System.Web; namespace BP.Sys.FrmUI { /// /// 日期字段 /// public class MapAttrDT : EntityMyPK { #region 文本字段参数属性. /// /// 表单ID /// public string FK_MapData { get { return this.GetValStringByKey(MapAttrAttr.FK_MapData); } set { this.SetValByKey(MapAttrAttr.FK_MapData, value); } } /// /// 字段 /// public string KeyOfEn { get { return this.GetValStringByKey(MapAttrAttr.KeyOfEn); } set { this.SetValByKey(MapAttrAttr.KeyOfEn, value); } } /// /// 绑定的枚举ID /// public string UIBindKey { get { return this.GetValStringByKey(MapAttrAttr.UIBindKey); } set { this.SetValByKey(MapAttrAttr.UIBindKey, value); } } /// /// 数据类型 /// public int MyDataType { get { return this.GetValIntByKey(MapAttrAttr.MyDataType); } set { this.SetValByKey(MapAttrAttr.MyDataType, value); } } public int Format { get { return this.GetValIntByKey(MapAttrAttr.IsSupperText); } set { this.SetValByKey(MapAttrAttr.IsSupperText, value); } } #endregion #region 构造方法 /// /// 控制权限 /// public override UAC HisUAC { get { UAC uac = new UAC(); uac.IsInsert = false; uac.IsUpdate = true; uac.IsDelete = true; return uac; } } /// /// 日期字段 /// public MapAttrDT() { } /// /// EnMap /// public override Map EnMap { get { if (this._enMap != null) return this._enMap; Map map = new Map("Sys_MapAttr", "日期字段"); map.IndexField = MapAttrAttr.FK_MapData; #region 基本信息. map.AddTBStringPK(MapAttrAttr.MyPK, null, "主键", false, false, 0, 200, 20); map.AddTBString(MapAttrAttr.FK_MapData, null, "实体标识", false, false, 1, 100, 20); map.AddTBString(MapAttrAttr.Name, null, "字段中文名", true, false, 0, 200, 20); map.AddTBString(MapAttrAttr.KeyOfEn, null, "字段名", true, true, 1, 200, 20); map.AddDDLSysEnum(MapAttrAttr.MyDataType, 6, "数据类型", true, false); map.AddTBString(MapAttrAttr.DefVal, null, "默认值(@RDT为当前日期)", true, false, 0, 100, 20); map.AddBoolean(MapAttrAttr.UIVisible, true, "是否可见?", true, true); map.AddBoolean(MapAttrAttr.UIIsEnable, true, "是否可编辑?", true, true); map.AddBoolean(MapAttrAttr.UIIsInput, false, "是否必填项?", true, true); map.AddDDLSysEnum(MapAttrAttr.IsSupperText, 1, "格式", true, true, MapAttrAttr.IsSupperText, "@0=yyyy-MM-dd@1=yyyy-MM-dd HH:mm@2=yyyy-MM-dd HH:mm:ss@3=yyyy-MM@4=HH:mm@5=HH:mm:ss@6=MM-dd@7=yyyy@8=MM"); map.AddTBString(MapAttrAttr.Tip, null, "激活提示", true, false, 0, 400, 20, true); //CCS样式 map.AddDDLSQL(MapAttrAttr.CSSCtrl, "0", "自定义样式", MapAttrString.SQLOfCSSAttr, true); #endregion 基本信息. #region 傻瓜表单 map.AddDDLSysEnum(MapAttrAttr.ColSpan, 1, "单元格数量", true, true, "ColSpanAttrDT", "@1=跨1个单元格@2=跨2个单元格@3=跨3个单元格@4=跨4个单元格"); //文本占单元格数量 map.AddDDLSysEnum(MapAttrAttr.LabelColSpan, 1, "文本单元格数量", true, true, "ColSpanAttrString", "@1=跨1个单元格@2=跨2个单元格@3=跨3个单元格@4=跨4个单元格"); //文本跨行 map.AddTBInt(MapAttrAttr.RowSpan, 1, "行数", true, false); //显示的分组. map.AddDDLSQL(MapAttrAttr.GroupID, 0, "显示的分组", MapAttrString.SQLOfGroupAttr, true); map.AddTBInt(MapAttrAttr.Idx, 0, "顺序号", true, false); //@李国文 #endregion 傻瓜表单。 #region 执行的方法. RefMethod rm = new RefMethod(); //rm = new RefMethod(); //rm.Title = "自动计算"; //rm.ClassMethodName = this.ToString() + ".DoAutoFull()"; //rm.RefMethodType = RefMethodType.RightFrameOpen; //map.AddRefMethod(rm); rm = new RefMethod(); rm.Title = "正则表达式"; rm.ClassMethodName = this.ToString() + ".DoRegularExpression()"; rm.RefMethodType = RefMethodType.RightFrameOpen; rm.Icon = "icon-settings"; //正则表达式 map.AddRefMethod(rm); rm = new RefMethod(); rm.Title = "事件绑函数"; rm.ClassMethodName = this.ToString() + ".BindFunction()"; rm.RefMethodType = RefMethodType.RightFrameOpen; rm.Icon = "icon-puzzle"; //事件绑定函数。 map.AddRefMethod(rm); rm = new RefMethod(); rm.Title = "日期输入限制"; rm.ClassMethodName = this.ToString() + ".DataFieldInputRole()"; rm.RefMethodType = RefMethodType.RightFrameOpen; rm.Icon = "icon-ban"; map.AddRefMethod(rm); #endregion 执行的方法. this._enMap = map; return this._enMap; } } protected override bool beforeInsert() { if (this.Format == 0 && this.MyDataType == 7) this.Format = 1; return base.beforeInsert(); } protected override bool beforeUpdateInsertAction() { //if (this.Format == 0 && this.MyDataType == 7) // this.Format = 1; //设置时间类型. int format = this.Format; if (format == 0 || format == 3 || format == 6) this.MyDataType = 6; else this.MyDataType = 7; return base.beforeUpdateInsertAction(); } protected override void afterInsertUpdateAction() { MapAttr mapAttr = new MapAttr(); mapAttr.setMyPK(this.MyPK); mapAttr.RetrieveFromDBSources(); mapAttr.Update(); //调用frmEditAction, 完成其他的操作. BP.Sys.CCFormAPI.AfterFrmEditAction(this.FK_MapData); base.afterInsertUpdateAction(); } /// /// 删除后清缓存 /// protected override void afterDelete() { //删除相对应的rpt表中的字段 if (this.FK_MapData.Contains("ND") == true) { string fk_mapData = this.FK_MapData.Substring(0, this.FK_MapData.Length - 2) + "Rpt"; string sql = "DELETE FROM Sys_MapAttr WHERE FK_MapData='" + fk_mapData + "' AND KeyOfEn='" + this.KeyOfEn + "'"; DBAccess.RunSQL(sql); } //调用frmEditAction, 完成其他的操作. BP.Sys.CCFormAPI.AfterFrmEditAction(this.FK_MapData); base.afterDelete(); } #endregion #region 方法执行. /// /// 绑定函数 /// /// public string BindFunction() { return "../../Admin/FoolFormDesigner/MapExt/BindFunction.htm?FK_MapData=" + this.FK_MapData + "&KeyOfEn=" + this.KeyOfEn + "&T=" + DateTime.Now.ToString(); } /// /// 日期输入限制 /// /// public string DataFieldInputRole() { return "../../Admin/FoolFormDesigner/MapExt/DataFieldInputRole.htm?FK_MapData=" + this.FK_MapData + "&KeyOfEn=" + this.KeyOfEn; } /// /// 自动计算 /// /// public string DoAutoFull() { return "../../Admin/FoolFormDesigner/MapExt/AutoFull.htm?FK_MapData=" + this.FK_MapData + "&ExtType=AutoFull&KeyOfEn=" + this.KeyOfEn; } /// /// 正则表达式 /// /// public string DoRegularExpression() { return "../../Admin/FoolFormDesigner/MapExt/RegularExpression.htm?FK_MapData=" + this.FK_MapData + "&KeyOfEn=" + this.KeyOfEn + "&MyPK=" + this.MyPK; } #endregion 方法执行. } /// /// 实体属性s /// public class MapAttrDTs : EntitiesMyPK { #region 构造 /// /// 实体属性s /// public MapAttrDTs() { } /// /// 得到它的 Entity /// public override Entity GetNewEntity { get { return new MapAttrDT(); } } #endregion #region 为了适应自动翻译成java的需要,把实体转换成List. /// /// 转化成 java list,C#不能调用. /// /// List public System.Collections.Generic.IList ToJavaList() { return (System.Collections.Generic.IList)this; } /// /// 转化成list /// /// List public System.Collections.Generic.List Tolist() { System.Collections.Generic.List list = new System.Collections.Generic.List(); for (int i = 0; i < this.Count; i++) { list.Add((MapAttrDT)this[i]); } return list; } #endregion 为了适应自动翻译成java的需要,把实体转换成List. } }