using BP.DA;
using BP.En;
using BP.Sys;
namespace BP.WF.Template.Frm
{
///
/// 表单属性
///
public class MapDataExt : EntityNoName
{
#region 权限控制.
public override UAC HisUAC
{
get
{
UAC uac = new UAC();
if (BP.Web.WebUser.No.Equals("admin")==true)
{
uac.IsDelete = false;
uac.IsUpdate = true;
return uac;
}
uac.Readonly();
return uac;
}
}
#endregion 权限控制.
#region 自动计算属性.
///
/// 左边界.
///
public float MaxLeft
{
get
{
return this.GetParaFloat(MapDataAttr.MaxLeft);
}
set
{
this.SetPara(MapDataAttr.MaxLeft, value);
}
}
///
/// 右边界
///
public float MaxRight
{
get
{
return this.GetParaFloat(MapDataAttr.MaxRight);
}
set
{
this.SetPara(MapDataAttr.MaxRight, value);
}
}
///
/// 最高top
///
public float MaxTop
{
get
{
return this.GetParaFloat(MapDataAttr.MaxTop);
}
set
{
this.SetPara(MapDataAttr.MaxTop, value);
}
}
///
/// 最低
///
public float MaxEnd
{
get
{
return this.GetParaFloat(MapDataAttr.MaxEnd);
}
set
{
this.SetPara(MapDataAttr.MaxEnd, value);
}
}
#endregion 自动计算属性.
#region 报表属性(参数方式存储).
///
/// 是否关键字查询
///
public bool ItIsSearchKey
{
get
{
return this.GetParaBoolen(MapDataAttr.IsSearchKey, true);
}
set
{
this.SetPara(MapDataAttr.IsSearchKey, value);
}
}
///
/// 时间段查询方式
///
public DTSearchWay DTSearchWay
{
get
{
return (DTSearchWay)this.GetParaInt(MapDataAttr.DTSearchWay);
}
set
{
this.SetPara(MapDataAttr.DTSearchWay, (int)value);
}
}
///
/// 时间字段
///
public string DTSearchKey
{
get
{
return this.GetParaString(MapDataAttr.DTSearchKey);
}
set
{
this.SetPara(MapDataAttr.DTSearchKey, value);
}
}
///
/// 查询外键枚举字段
///
public string RptSearchKeys
{
get
{
return this.GetParaString(MapDataAttr.RptSearchKeys,"*");
}
set
{
this.SetPara(MapDataAttr.RptSearchKeys, value);
}
}
#endregion 报表属性(参数方式存储).
#region 外键属性
public string Ver
{
get
{
return this.GetValStringByKey(MapDataAttr.Ver);
}
set
{
this.SetValByKey(MapDataAttr.Ver, value);
}
}
///
/// 顺序号
///
public int Idx
{
get
{
return this.GetValIntByKey(MapDataAttr.Idx);
}
set
{
this.SetValByKey(MapDataAttr.Idx, value);
}
}
#endregion
#region 属性
///
/// 物理表
///
public string PTable
{
get
{
string s = this.GetValStrByKey(MapDataAttr.PTable);
if (DataType.IsNullOrEmpty(s)== true)
return this.No;
return s;
}
set
{
this.SetValByKey(MapDataAttr.PTable, value);
}
}
///
/// URL
///
public string UrlExt
{
get
{
return this.GetValStrByKey(MapDataAttr.UrlExt);
}
set
{
this.SetValByKey(MapDataAttr.UrlExt, value);
}
}
public DBUrlType HisDBUrl
{
get
{
return DBUrlType.AppCenterDSN;
}
}
public AppType HisAppType
{
get
{
return (AppType)this.GetValIntByKey(MapDataAttr.AppType);
}
set
{
this.SetValByKey(MapDataAttr.AppType, (int)value);
}
}
///
/// 备注
///
public string Note
{
get
{
return this.GetValStrByKey(MapDataAttr.Note);
}
set
{
this.SetValByKey(MapDataAttr.Note, value);
}
}
///
/// 是否有CA.
///
public bool ItIsHaveCA
{
get
{
return this.GetParaBoolen("IsHaveCA", false);
}
set
{
this.SetPara("IsHaveCA", value);
}
}
///
/// 类别,可以为空.
///
public string FK_FormTree
{
get
{
return this.GetValStrByKey(MapDataAttr.FK_FormTree);
}
set
{
this.SetValByKey(MapDataAttr.FK_FormTree, value);
}
}
///
/// 从表集合.
///
public string Dtls
{
get
{
return this.GetValStrByKey(MapDataAttr.Dtls);
}
set
{
this.SetValByKey(MapDataAttr.Dtls, value);
}
}
///
/// 主键
///
public string EnPK
{
get
{
string s = this.GetValStrByKey(MapDataAttr.EnPK);
if (DataType.IsNullOrEmpty(s))
return "OID";
return s;
}
set
{
this.SetValByKey(MapDataAttr.EnPK, value);
}
}
private Entities _HisEns = null;
public new Entities HisEns
{
get
{
if (_HisEns == null)
{
_HisEns = BP.En.ClassFactory.GetEns(this.No);
}
return _HisEns;
}
}
public Entity HisEn
{
get
{
return this.HisEns.GetNewEntity;
}
}
public float FrmW
{
get
{
return this.GetValFloatByKey(MapDataAttr.FrmW);
}
set
{
this.SetValByKey(MapDataAttr.FrmW, value);
}
}
/////
///// 表单控制方案
/////
//public string Slns
//{
// get
// {
// return this.GetValStringByKey(MapDataAttr.Slns);
// }
// set
// {
// this.SetValByKey(MapDataAttr.Slns, value);
// }
//}
///
/// 表格显示的列
///
public int TableCol
{
get
{
int i = this.GetValIntByKey(MapDataAttr.TableCol);
if (i == 0 || i == 1)
return 4;
return i;
}
set
{
this.SetValByKey(MapDataAttr.TableCol, value);
}
}
#endregion
#region 构造方法
///
/// 表单属性
///
public MapDataExt()
{
}
///
/// 表单属性
///
/// 映射编号
public MapDataExt(string no)
: base(no)
{
}
///
/// EnMap
///
public override Map EnMap
{
get
{
if (this._enMap != null)
return this._enMap;
Map map = new Map("Sys_MapData", "表单属性");
map.CodeStruct = "4";
#region 基本属性.
map.AddGroupAttr("基本属性");
map.AddTBStringPK(MapDataAttr.No, null, "表单编号", true, false, 1, 190, 20);
map.AddTBString(MapDataAttr.Name, null, "表单名称", true, false, 0, 500, 20);
map.AddTBString(MapDataAttr.PTable, null, "存储表", true, false, 0, 500, 20);
//表单的运行类型.
map.AddDDLSysEnum(MapDataAttr.FrmType, (int)BP.Sys.FrmType.FoolForm, "表单类型",true, true, MapDataAttr.FrmType);
map.AddTBString(MapDataAttr.UrlExt, null, "URL连接(对嵌入式表单有效)", true, false, 0, 500, 20, true);
//数据源.
map.AddDDLEntities(MapDataAttr.DBSrc, "local", "数据源", new BP.Sys.SFDBSrcs(), true);
map.AddDDLEntities(MapDataAttr.FK_FormTree, "01", "表单类别", new SysFormTrees(), true);
#endregion 基本属性.
#region 设计者信息.
map.AddGroupAttr("设计者信息");
map.AddTBString(MapDataAttr.Designer, null, "设计者", true, false, 0, 500, 20);
map.AddTBString(MapDataAttr.DesignerContact, null, "联系方式", true, false, 0, 500, 20);
map.AddTBString(MapDataAttr.DesignerUnit, null, "单位", true, false, 0, 500, 20,true);
map.AddTBString(MapDataAttr.GUID, null, "GUID", true, true, 0, 128, 20,false);
map.AddTBString(MapDataAttr.Ver, null, "版本号", true, true, 0, 30, 20);
map.AddTBStringDoc(MapDataAttr.Note, null, "备注", true, false,true);
//增加参数字段.
map.AddTBAtParas(4000);
map.AddTBInt(MapDataAttr.Idx, 100, "顺序号", false, false);
#endregion 设计者信息.
//查询条件.
map.AddSearchAttr(MapDataAttr.DBSrc);
//RefMethod rm = new RefMethod();
//rm.Title = "设计自由表单"; // "设计表单";
//rm.ClassMethodName = this.ToString() + ".DoDFrom";
//rm.Icon = ../../Img/Form.png";
//rm.Visable = true;
//rm.Target = "_blank";
//map.AddRefMethod(rm);
//rm = new RefMethod();
//rm.Title = "设计傻瓜表单"; // "设计表单";
//rm.ClassMethodName = this.ToString() + ".DoDFromCol4";
//rm.Icon = ../../Img/Form.png";
//rm.Visable = true;
//rm.Target = "_blank";
//map.AddRefMethod(rm);
#region 方法 - 基本功能.
map.AddGroupMethod("基本功能");
RefMethod rm = new RefMethod();
rm.Title = "装载填充"; // "设计表单";
rm.ClassMethodName = this.ToString() + ".DoPageLoadFull";
rm.Icon = "../../WF/Img/FullData.png";
rm.Visable = true;
rm.RefMethodType = RefMethodType.RightFrameOpen;
rm.Target = "_blank";
map.AddRefMethod(rm);
rm = new RefMethod();
rm.Title = "表单事件"; // "设计表单";
rm.ClassMethodName = this.ToString() + ".DoEvent";
rm.Icon = "../../WF/Img/Event.png";
rm.Visable = true;
rm.RefMethodType = RefMethodType.RightFrameOpen;
rm.Target = "_blank";
map.AddRefMethod(rm);
rm = new RefMethod();
rm.Title = "批量设置验证规则";
rm.Icon = "../../WF/Img/Btn/DTS.gif";
rm.ClassMethodName = this.ToString() + ".DoRegularExpressionBatch";
rm.RefMethodType = RefMethodType.RightFrameOpen;
map.AddRefMethod(rm);
rm = new RefMethod();
rm.Title = "批量修改字段"; // "设计表单";
rm.ClassMethodName = this.ToString() + ".DoBatchEditAttr";
rm.Icon = "../../WF/Admin/CCBPMDesigner/Img/field.png";
rm.Visable = true;
rm.RefMethodType = RefMethodType.RightFrameOpen;
rm.Target = "_blank";
// map.AddRefMethod(rm);
rm = new RefMethod();
rm.Title = "傻瓜表单设计器";
rm.ClassMethodName = this.ToString() + ".DoDesignerFool";
rm.Icon = "../../WF/Img/FileType/xlsx.gif";
rm.Visable = true;
rm.Target = "_blank";
rm.RefMethodType = RefMethodType.LinkeWinOpen;
map.AddRefMethod(rm);
rm = new RefMethod();
rm.Title = "手机端表单";
rm.Icon = "../../WF/Img/Btn/DTS.gif";
rm.ClassMethodName = this.ToString() + ".MobileFrmDesigner";
rm.RefMethodType = RefMethodType.RightFrameOpen;
map.AddRefMethod(rm);
rm = new RefMethod();
rm.Title = "JS编程"; // "设计表单";
rm.ClassMethodName = this.ToString() + ".DoInitScript";
rm.Icon = "../../WF/Img/Script.png";
rm.Visable = true;
rm.RefMethodType = RefMethodType.RightFrameOpen;
rm.Target = "_blank";
map.AddRefMethod(rm);
rm = new RefMethod();
rm.Title = "表单body属性"; // "设计表单";
rm.ClassMethodName = this.ToString() + ".DoBodyAttr";
rm.Icon = "../../WF/Img/Script.png";
rm.Visable = true;
rm.RefMethodType = RefMethodType.RightFrameOpen;
rm.Target = "_blank";
map.AddRefMethod(rm);
rm = new RefMethod();
rm.Title = "导出XML表单模版"; // "设计表单";
rm.ClassMethodName = this.ToString() + ".DoExp";
rm.Icon = "../../WF/Img/Export.png";
rm.Visable = true;
rm.RefAttrLinkLabel = "导出到xml";
rm.RefMethodType = RefMethodType.RightFrameOpen;
rm.Target = "_blank";
map.AddRefMethod(rm);
rm = new RefMethod();
rm.Title = "重命表单ID";
// rm.GroupName = "高级设置";
rm.HisAttrs.AddTBString("NewFrmID1", null, "新表单ID名称", true, false, 0, 100, 100);
rm.HisAttrs.AddTBString("NewFrmID2", null, "确认表单ID名称", true, false, 0, 100, 100);
rm.ClassMethodName = this.ToString() + ".DoChangeFrmID";
rm.Icon = "../../WF/Img/ReName.png";
map.AddRefMethod(rm);
rm = new RefMethod();
rm.Title = "检查表单";
rm.ClassMethodName = this.ToString() + ".DoCheckFrm";
rm.Icon = "../../WF/Img/check.png";
rm.Visable = true;
rm.RefMethodType = RefMethodType.RightFrameOpen;
rm.Target = "_blank";
map.AddRefMethod(rm);
#endregion 方法 - 基本功能.
#region 方法 - 开发接口.
map.AddGroupMethod("开发接口");
rm = new RefMethod();
rm.Title = "调用查询API"; // "设计表单";
rm.ClassMethodName = this.ToString() + ".DoSearch";
rm.Icon = "../../WF/Img/Table.gif";
rm.Visable = true;
rm.RefMethodType = RefMethodType.LinkeWinOpen;
rm.Target = "_blank";
// rm.GroupName = "开发接口";
map.AddRefMethod(rm);
rm = new RefMethod();
rm.Title = "调用分析API"; // "设计表单";
rm.ClassMethodName = this.ToString() + ".DoGroup";
rm.Icon = "../../WF/Img/Table.gif";
rm.Visable = true;
rm.RefMethodType = RefMethodType.LinkeWinOpen;
rm.Target = "_blank";
// rm.GroupName = "开发接口";
map.AddRefMethod(rm);
#endregion 方法 - 开发接口.
//rm = new RefMethod();
//rm.Title = "Word表单属性"; // "设计表单";
//rm.ClassMethodName = this.ToString() + ".DoWordFrm";
//rm.Icon = ../../Img/Btn/Word.gif";
//rm.Visable = true;
//rm.RefMethodType = RefMethodType.RightFrameOpen;
//rm.Target = "_blank";
//rm.GroupName = "开发接口";
//map.AddRefMethod(rm);
//rm = new RefMethod();
//rm.Title = "Excel表单属性"; // "设计表单";
//rm.ClassMethodName = this.ToString() + ".DoExcelFrm";
//rm.Icon = ../../Img/Btn/Excel.gif";
//rm.Visable = true;
//rm.RefMethodType = RefMethodType.RightFrameOpen;
//rm.Target = "_blank";
//rm.GroupName = "开发接口";
//map.AddRefMethod(rm);
//rm = new RefMethod();
//rm.Title = "数据源管理"; // "设计表单";
//rm.ClassMethodName = this.ToString() + ".DoDBSrc";
//rm.Icon = "/WF/Img/DB.png";
//rm.RefMethodType = RefMethodType.RightFrameOpen;
//rm.Visable = true;
//rm.RefAttrLinkLabel = "数据源管理";
//rm.Target = "_blank";
//map.AddRefMethod(rm);
this._enMap = map;
return this._enMap;
}
}
#endregion
#region 基本方法.
///
/// 傻瓜表单设计器
///
///
public string DoDesignerFool()
{
return "../../Admin/FoolFormDesigner/Designer.htm?FK_MapData=" + this.No + "&IsFirst=1&MyPK=" + this.No + "&IsEditMapData=True";
}
#endregion
#region 方法.
///
/// 重命名
///
///
///
///
public string DoChangeFrmID(string frmID1, string frmID2)
{
MapData md = new MapData();
md.No = frmID1;
if (md.IsExits == true)
return "表单ID【" + frmID1 + "】已经存在";
if (frmID1 != frmID2)
return "两次输入的ID不一致.";
string frmIDOld = this.No;
string sqls = "";
sqls += "@UPDATE Sys_MapData SET No='" + frmID1 + "' WHERE No='" + frmIDOld + "'";
// sqls += "UPDATE Sys_FrmLine SET FK_MapData='" + frmID1 + "' WHERE FK_MapData='" + frmIDOld + "'";
// sqls += "UPDATE Sys_FrmLab SET FK_MapData='" + frmID1 + "' WHERE FK_MapData='" + frmIDOld + "'";
sqls += "UPDATE Sys_FrmBtn SET FK_MapData='" + frmID1 + "' WHERE FK_MapData='" + frmIDOld + "'";
sqls += "UPDATE Sys_MapAttr SET FK_MapData='" + frmID1 + "' WHERE FK_MapData='" + frmIDOld + "'";
sqls += "UPDATE Sys_MapExt SET FK_MapData='" + frmID1 + "' WHERE FK_MapData='" + frmIDOld + "'";
sqls += "UPDATE Sys_FrmImg SET FK_MapData='" + frmID1 + "' WHERE FK_MapData='" + frmIDOld + "'";
sqls += "UPDATE Sys_FrmImgAth SET FK_MapData='" + frmID1 + "' WHERE FK_MapData='" + frmIDOld + "'";
sqls += "UPDATE Sys_FrmRB SET FK_MapData='" + frmID1 + "' WHERE FK_MapData='" + frmIDOld + "'";
sqls += "UPDATE Sys_MapDtl SET FK_MapData='" + frmID1 + "' WHERE FK_MapData='" + frmIDOld + "'";
sqls += "UPDATE Sys_MapFrame SET FK_MapData='" + frmID1 + "' WHERE FK_MapData='" + frmIDOld + "'";
sqls += "UPDATE Sys_FrmEle SET FK_MapData='" + frmID1 + "' WHERE FK_MapData='" + frmIDOld + "'";
sqls += "UPDATE Sys_FrmEvent SET FK_MapData='" + frmID1 + "' WHERE FK_MapData='" + frmIDOld + "'";
DBAccess.RunSQLs(sqls);
return "重命名成功,你需要关闭窗口重新刷新。";
}
///
/// 替换名称
///
/// 旧名称
/// 新字段
/// 新字段名称(可以为空)
///
public string DoChangeFieldName(string fieldOld, string newField, string newFieldName)
{
MapAttr attrOld = new MapAttr();
attrOld.setKeyOfEn(fieldOld);
attrOld.FrmID =this.No;
attrOld.setMyPK(attrOld.FrmID + "_" + attrOld.KeyOfEn);
if (attrOld.RetrieveFromDBSources() == 0)
return "@旧字段输入错误[" + attrOld.KeyOfEn + "].";
//检查是否存在该字段?
MapAttr attrNew = new MapAttr();
attrNew.setKeyOfEn(newField);
attrNew.FrmID =this.No;
attrNew.setMyPK(attrNew.FrmID + "_" + attrNew.KeyOfEn);
if (attrNew.RetrieveFromDBSources() == 1)
return "@该字段[" + attrNew.KeyOfEn + "]已经存在.";
//删除旧数据.
attrOld.Delete();
//copy这个数据,增加上它.
attrNew.Copy(attrOld);
attrNew.setKeyOfEn(newField);
attrNew.FrmID =this.No;
if (newFieldName != "")
attrNew.Name = newFieldName;
attrNew.Insert();
//更新处理他的相关业务逻辑.
MapExts exts = new MapExts(this.No);
foreach (MapExt item in exts)
{
item.setMyPK(item.MyPK.Replace("_" + fieldOld, "_" + newField));
if (item.AttrOfOper == fieldOld)
item.AttrOfOper = newField;
if (item.AttrsOfActive == fieldOld)
item.AttrsOfActive = newField;
item.Tag = item.Tag.Replace(fieldOld, newField);
item.Tag1 = item.Tag1.Replace(fieldOld, newField);
item.Tag2 = item.Tag2.Replace(fieldOld, newField);
item.Tag3 = item.Tag3.Replace(fieldOld, newField);
item.AtPara = item.AtPara.Replace(fieldOld, newField);
item.Doc = item.Doc.Replace(fieldOld, newField);
item.Save();
}
return "执行成功";
}
///
/// 检查表单
///
///
public string DoCheckFrm()
{
return "../../Admin/AttrNode/CheckFrm.htm?FK_MapData=" +
this.No + "&t=" + BP.DA.DataType.CurrentDateTime;
}
///
/// 批量设置正则表达式规则.
///
///
public string DoRegularExpressionBatch()
{
return "../../Admin/FoolFormDesigner/MapExt/RegularExpressionBatch.htm?FK_Flow=&FK_MapData=" +
this.No + "&t=" + DataType.CurrentDateTime;
}
///
/// 排序字段顺序
///
///
public string MobileFrmDesigner()
{
return "../../Admin/MobileFrmDesigner/Default.htm?FK_Flow=&FK_MapData=" +
this.No + "&t=" + DataType.CurrentDateTime;
}
///
/// 设计表单
///
///
public string DoDFrom()
{
return "../../Admin/FoolFormDesigner/CCForm/Frm.htm?FK_MapData=" + this.No + "&UserNo=" + BP.Web.WebUser.No + "&Token=" + Web.WebUser.Token + "&AppCenterDBType=" + DBAccess.AppCenterDBType + "&CustomerNo=" + BP.Difference.SystemConfig.CustomerNo;
}
///
/// 设计傻瓜表单
///
///
public string DoDFromCol4()
{
return "../../Admin/FoolFormDesigner/Designer.htm?FK_MapData=" + this.No + "&IsFirst=1&UserNo=" + BP.Web.WebUser.No + "&Token=" + Web.WebUser.Token + "&AppCenterDBType=" + DBAccess.AppCenterDBType + "&CustomerNo=" + BP.Difference.SystemConfig.CustomerNo;
}
///
/// 查询
///
///
public string DoSearch()
{
return "../../Comm/Search.htm?s=34&FK_MapData=" + this.No + "&EnsName=" + this.No;
}
///
/// 调用分析API
///
///
public string DoGroup()
{
return "../../Comm/Group.htm?s=34&FK_MapData=" + this.No + "&EnsName=" + this.No;
}
///
/// 数据源管理
///
///
public string DoDBSrc()
{
return "../../Comm/Search.htm?s=34&FK_MapData=" + this.No + "&EnsName=BP.Sys.SFDBSrcs";
}
public string DoPageLoadFull()
{
return "../../Admin/FoolFormDesigner/MapExt/PageLoadFull.htm?s=34&FK_MapData=" + this.No + "&ExtType=PageLoadFull&RefNo=";
}
public string DoInitScript()
{
return "../../Admin/FoolFormDesigner/MapExt/InitScript.htm?s=34&FK_MapData=" + this.No + "&ExtType=PageLoadFull&RefNo=";
}
///
/// 表单属性.
///
///
public string DoBodyAttr()
{
return "../../Admin/FoolFormDesigner/MapExt/BodyAttr.htm?s=34&FK_MapData=" + this.No + "&ExtType=BodyAttr&RefNo=";
}
///
/// 表单事件
///
///
public string DoEvent()
{
return "../../Admin/CCFormDesigner/Action.htm?FK_MapData=" + this.No + "&T=sd&FK_Node=0";
}
///
/// 导出表单
///
///
public string DoExp()
{
return "../../Admin/FoolFormDesigner/ImpExp/Exp.htm?FK_MapData=" + this.No;
}
#endregion 方法.
}
///
/// 表单属性s
///
public class MapDataExts : EntitiesNoName
{
#region 构造
///
/// 表单属性s
///
public MapDataExts()
{
}
///
/// 得到它的 Entity
///
public override Entity GetNewEntity
{
get
{
return new MapDataExt();
}
}
#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((MapDataExt)this[i]);
}
return list;
}
#endregion 为了适应自动翻译成java的需要,把实体转换成List.
}
}