You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

850 lines
32 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using System.Collections.Generic;
using System.Data;
using BP.DA;
using BP.Sys;
using BP.En;
namespace BP.WF.HttpHandler
{
/// <summary>
/// 手机表单设计器
/// </summary>
public class WF_Admin_MobileFrmDesigner : BP.WF.HttpHandler.DirectoryPageBase
{
public string Default_Init()
{
//分组.
GroupFields gfs = new GroupFields();
gfs.Retrieve(GroupFieldAttr.FrmID, this.FrmID, GroupFieldAttr.Idx);
MapAttrs attrs = new MapAttrs();
attrs.Retrieve(MapAttrAttr.FK_MapData, this.FrmID, GroupFieldAttr.Idx);
MapDtls mapDtls = new MapDtls();
mapDtls.Retrieve(MapDtlAttr.FK_MapData, this.FrmID);
FrmAttachments aths = new FrmAttachments(this.FrmID);
DataSet ds = new DataSet();
//分组.
ds.Tables.Add(gfs.ToDataTableField("Sys_GroupFields"));
//字段.
ds.Tables.Add(attrs.ToDataTableField("Sys_MapAttrs"));
//从表.
ds.Tables.Add(mapDtls.ToDataTableField("Sys_MapDtls"));
//附件.
ds.Tables.Add(aths.ToDataTableField("Sys_FrmAttachments"));
return BP.Tools.Json.ToJson(ds);
}
public string Default_Init_bak()
{
Nodes nodes = null;
#region 获取数据
MapDatas mapdatas = new MapDatas();
QueryObject qo = new QueryObject(mapdatas);
qo.AddWhere(MapDataAttr.No, "Like", this.FrmID + "%");
qo.addOrderBy(MapDataAttr.Idx);
qo.DoQuery();
MapAttrs attrs = new MapAttrs();
attrs.Retrieve(MapDtlAttr.FK_MapData, this.FrmID, MapAttrAttr.EditType, 0,
GroupFieldAttr.Idx);
FrmBtns btns = new FrmBtns(this.FrmID);
FrmAttachments athMents = new FrmAttachments(this.FrmID);
MapDtls dtls = new MapDtls();
dtls.Retrieve(MapDtlAttr.FK_MapData, this.FrmID, GroupFieldAttr.Idx);
GroupFields groups = new GroupFields();
groups.Retrieve(GroupFieldAttr.FrmID, this.FrmID, GroupFieldAttr.Idx);
#endregion
DataSet ds = new DataSet();
BindData4Default_Init(mapdatas,
attrs,
groups,
dtls,
athMents,
btns,
nodes,
ds);
//控制页面按钮需要的
MapDtl tdtl = new MapDtl();
tdtl.No = this.FrmID;
if (tdtl.RetrieveFromDBSources() == 1)
{
ds.Tables.Add(tdtl.ToDataTableField("tdtl"));
}
return BP.Tools.Json.ToJson(ds);
}
private void BindData4Default_Init(MapDatas mapdatas,
MapAttrs attrs,
GroupFields groups,
MapDtls dtls,
FrmAttachments athMents,
FrmBtns btns,
Nodes nodes,
DataSet ds)
{
MapData mapdata = mapdatas.GetEntityByKey(this.FrmID) as MapData;
DataTable dtAttrs = attrs.ToDataTableField("dtAttrs");
DataTable dtDtls = dtls.ToDataTableField("dtDtls");
DataTable dtGroups = groups.ToDataTableField("dtGroups");
DataTable dtNoGroupAttrs = null;
DataRow[] rows_Attrs = null;
int idx_Attr = 1;
int gidx = 1;
GroupField group = null;
if (mapdata != null)
{
#region 一、面板1、 分组数据+未分组数据
#region A、构建数据dtNoGroupAttrs这个放在前面
//检索全部字段,查找出没有分组或分组信息不正确的字段,存入“无分组”集合
dtNoGroupAttrs = dtAttrs.Clone();
foreach (DataRow dr in dtAttrs.Rows)
{
if (IsExistInDataRowArray(dtGroups.Rows, GroupFieldAttr.OID, dr[MapAttrAttr.GroupID]) == false)
dtNoGroupAttrs.Rows.Add(dr.ItemArray);
}
#endregion
#region B、构建数据dtGroups这个放在后面(!!涉及更新数据库)
#region 如果没有则创建分组1.明细2.多附件3.按钮)
//01、未分组明细表,自动创建一个
foreach (MapDtl mapDtl in dtls)
{
if (GetGroupID(mapDtl.No, groups) == 0)
{
group = new GroupField();
group.Lab = mapDtl.Name;
group.FrmID = mapDtl.FrmID;
group.CtrlType = GroupCtrlType.Dtl;
group.CtrlID = mapDtl.No;
group.Insert();
groups.AddEntity(group);
}
}
//02、未分组多附件自动分配一个
foreach (FrmAttachment athMent in athMents)
{
if (GetGroupID(athMent.MyPK, groups) == 0)
{
group = new GroupField();
group.Lab = athMent.Name;
group.EnName = athMent.FrmID;
group.CtrlType = GroupCtrlType.Ath;
group.CtrlID = athMent.MyPK;
group.Insert();
athMent.GroupID = group.OID;
athMent.Update();
groups.AddEntity(group);
}
}
//03、未分组按钮自动创建一个
foreach (FrmBtn fbtn in btns)
{
if (GetGroupID(fbtn.MyPK, groups) == 0)
{
group = new GroupField();
group.Lab = fbtn.Lab;
group.FrmID = fbtn.FrmID;
group.CtrlType = GroupCtrlType.Btn;
group.CtrlID = fbtn.MyPK;
group.Insert();
fbtn.GroupID = group.OID;
fbtn.Update();
groups.AddEntity(group);
}
}
#endregion
dtGroups = groups.ToDataTableField("dtGroups");
#endregion
#endregion
#region 三、其他。如果是明细表的字段排序,则增加“返回”按钮;否则增加“复制排序”按钮,2016-03-21
DataTable isDtl = new DataTable();
isDtl.Columns.Add("tdDtl", typeof(int));
isDtl.Columns.Add("FK_MapData", typeof(string));
isDtl.Columns.Add("No", typeof(string));
isDtl.TableName = "TRDtl";
DataRow tddr = isDtl.NewRow();
MapDtl tdtl = new MapDtl();
tdtl.No = this.FrmID;
if (tdtl.RetrieveFromDBSources() == 1)
{
tddr["tdDtl"] = 1;
tddr["FK_MapData"] = tdtl.FrmID;
tddr["No"] = tdtl.No;
}
else
{
tddr["tdDtl"] = 0;
tddr["FK_MapData"] = this.FrmID;
tddr["No"] = tdtl.No;
}
isDtl.Rows.Add(tddr.ItemArray);
#endregion
#region 增加节点信息
if (DataType.IsNullOrEmpty(this.FlowNo) == false)
{
nodes = new Nodes();
nodes.Retrieve(BP.WF.Template.NodeAttr.FK_Flow, this.FlowNo, BP.WF.Template.NodeAttr.Step);
if (nodes.Count == 0)
{
string nodeid = this.FrmID.Replace("ND", "");
string flowno = string.Empty;
if (nodeid.Length > 2)
{
flowno = nodeid.Substring(0, nodeid.Length - 2).PadLeft(3, '0');
nodes.Retrieve(BP.WF.Template.NodeAttr.FK_Flow, flowno, BP.WF.Template.NodeAttr.Step);
}
}
DataTable dtNodes = nodes.ToDataTableField("dtNodes");
dtNodes.TableName = "dtNodes";
ds.Tables.Add(dtNodes);
}
#endregion
ds.Tables.Add(mapdatas.ToDataTableField("mapdatas"));
dtGroups.TableName = "dtGroups";
ds.Tables.Add(dtGroups);
dtNoGroupAttrs.TableName = "dtNoGroupAttrs";
ds.Tables.Add(dtNoGroupAttrs);
dtAttrs.TableName = "dtAttrs";
ds.Tables.Add(dtAttrs);
dtDtls.TableName = "dtDtls";
ds.Tables.Add(dtDtls);
ds.Tables.Add(athMents.ToDataTableField("athMents"));
ds.Tables.Add(btns.ToDataTableField("btns"));
ds.Tables.Add(isDtl);
//ds.Tables.Add(nodes.ToDataTableField("nodes"));
}
}
private int GetGroupID(string ctrlID, GroupFields gfs)
{
GroupField gf = gfs.GetEntityByKey(GroupFieldAttr.CtrlID, ctrlID) as GroupField;
return gf == null ? 0 : gf.OID;
}
/// <summary>
/// 判断在DataRow数组中是否存在指定列指定值的行
/// </summary>
/// <param name="rows">DataRow数组</param>
/// <param name="field">指定列名</param>
/// <param name="value">指定值</param>
/// <returns></returns>
private bool IsExistInDataRowArray(DataRowCollection rows, string field, object value)
{
foreach (DataRow row in rows)
{
int rw = int.Parse(row[field].ToString());
if (rw == int.Parse(value.ToString()))
return true;
}
return false;
}
/// <summary>
/// 手机表单设计器
/// </summary>
public WF_Admin_MobileFrmDesigner()
{
}
/// <summary>
/// 保存需要在手机端表单显示的字段
/// </summary>
/// <returns></returns>
public string Default_From_Save()
{
//获取需要显示的字段集合
string atts = this.GetRequestVal("attrs");
try
{
MapAttrs mattrs = new MapAttrs(this.FrmID);
MapAttr att = null;
//更新每个字段的显示属性
foreach (MapAttr attr in mattrs)
{
att = mattrs.GetEntityByKey(MapAttrAttr.FK_MapData, this.FrmID, MapAttrAttr.KeyOfEn, attr.KeyOfEn) as MapAttr;
if (atts.Contains("," + attr.KeyOfEn + ","))
att.ItIsEnableInAPP = true;
else
att.ItIsEnableInAPP = false;
att.Update();
}
//获取附件
FrmAttachments aths = new FrmAttachments();
aths.Retrieve(FrmAttachmentAttr.FK_MapData, this.FrmID, FrmAttachmentAttr.FK_Node, 0);
foreach (FrmAttachment ath in aths)
{
if (atts.Contains("," + ath.MyPK + ",") == true)
ath.SetPara("IsShowMobile", 1);
else
ath.SetPara("IsShowMobile", 0);
ath.Update();
}
return "保存成功!";
}
catch (Exception ex)
{
return "err@" + ex.Message.ToString();
}
}
/// <summary>
/// 将分组、字段排序复制到其他节点
/// </summary>
/// <returns></returns>
public string Default_Copy()
{
try
{
string[] nodeids = this.GetRequestVal("NodeIDs").Split(',');
MapDatas mapdatas = new MapDatas();
QueryObject obj = new QueryObject(mapdatas);
obj.AddWhere(MapDataAttr.No, "Like", this.FrmID + "%");
obj.addOrderBy(MapDataAttr.Idx);
obj.DoQuery();
MapAttrs mattrs = new MapAttrs();
obj = new QueryObject(mattrs);
obj.AddWhere(MapAttrAttr.FK_MapData, this.FrmID);
obj.addAnd();
obj.AddWhere(MapAttrAttr.UIVisible, true);
obj.addOrderBy(MapAttrAttr.GroupID, MapAttrAttr.Idx);
obj.DoQuery();
FrmBtns btns = new FrmBtns(this.FrmID);
FrmAttachments athMents = new FrmAttachments(this.FrmID);
MapDtls dtls = new MapDtls(this.FrmID);
GroupFields groups = new GroupFields();
obj = new QueryObject(groups);
obj.AddWhere(GroupFieldAttr.FrmID, this.FrmID);
obj.addOrderBy(GroupFieldAttr.Idx);
obj.DoQuery();
string tmd = null;
GroupField group = null;
MapDatas tmapdatas = null;
MapAttrs tattrs = null, oattrs = null, tarattrs = null;
GroupFields tgroups = null, ogroups = null, targroups = null;
MapDtls tdtls = null;
MapData tmapdata = null;
MapAttr tattr = null;
GroupField tgrp = null;
MapDtl tdtl = null;
int maxGrpIdx = 0; //当前最大分组排序号
int maxAttrIdx = 0; //当前最大字段排序号
int maxDtlIdx = 0; //当前最大明细表排序号
List<string> idxGrps = new List<string>(); //复制过的分组名称集合
List<string> idxAttrs = new List<string>(); //复制过的字段编号集合
List<string> idxDtls = new List<string>(); //复制过的明细表编号集合
foreach (string nodeid in nodeids)
{
tmd = "ND" + nodeid;
#region 获取数据
tmapdatas = new MapDatas();
QueryObject qo = new QueryObject(tmapdatas);
qo.AddWhere(MapDataAttr.No, "Like", tmd + "%");
qo.addOrderBy(MapDataAttr.Idx);
qo.DoQuery();
tattrs = new MapAttrs();
qo = new QueryObject(tattrs);
qo.AddWhere(MapAttrAttr.FK_MapData, tmd);
qo.addAnd();
qo.AddWhere(MapAttrAttr.UIVisible, true);
qo.addOrderBy(MapAttrAttr.GroupID, MapAttrAttr.Idx);
qo.DoQuery();
tgroups = new GroupFields();
qo = new QueryObject(tgroups);
qo.AddWhere(GroupFieldAttr.FrmID, tmd);
qo.addOrderBy(GroupFieldAttr.Idx);
qo.DoQuery();
tdtls = new MapDtls();
qo = new QueryObject(tdtls);
qo.AddWhere(MapDtlAttr.FK_MapData, tmd);
qo.addAnd();
qo.AddWhere(MapDtlAttr.IsView, true);
//qo.addOrderBy(MapDtlAttr.RowIdx);
qo.DoQuery();
#endregion
#region 复制排序逻辑
#region //分组排序复制
foreach (GroupField grp in groups)
{
//通过分组名称来确定是同一个组,同一个组在不同的节点分组编号是不一样的
tgrp = tgroups.GetEntityByKey(GroupFieldAttr.Lab, grp.Lab) as GroupField;
if (tgrp == null) continue;
tgrp.Idx = grp.Idx;
tgrp.DirectUpdate();
maxGrpIdx = Math.Max(grp.Idx, maxGrpIdx);
idxGrps.Add(grp.Lab);
}
foreach (GroupField grp in tgroups)
{
if (idxGrps.Contains(grp.Lab))
continue;
grp.Idx = maxGrpIdx = maxGrpIdx + 1;
grp.DirectUpdate();
}
#endregion
#region //字段排序复制
foreach (MapAttr attr in mattrs)
{
//排除主键
if (attr.ItIsPK == true)
continue;
tattr = tattrs.GetEntityByKey(MapAttrAttr.KeyOfEn, attr.KeyOfEn) as MapAttr;
if (tattr == null) continue;
group = groups.GetEntityByKey(GroupFieldAttr.OID, attr.GroupID) as GroupField;
//比对字段的分组是否一致,不一致则更新一致
if (group == null)
{
//源字段分组为空则目标字段分组置为0
tattr.setGroupID(0);
}
else
{
//此处要判断目标节点中是否已经创建了这个源字段所属分组,如果没有创建,则要自动创建
tgrp = tgroups.GetEntityByKey(GroupFieldAttr.Lab, group.Lab) as GroupField;
if (tgrp == null)
{
tgrp = new GroupField();
tgrp.Lab = group.Lab;
tgrp.FrmID = tmd;
tgrp.Idx = group.Idx;
tgrp.Insert();
tgroups.AddEntity(tgrp);
tattr.GroupID = tgrp.OID;
}
else
{
if (tgrp.OID != tattr.GroupID)
tattr.GroupID = tgrp.OID;
}
}
tattr.Idx = attr.Idx;
tattr.DirectUpdate();
maxAttrIdx = Math.Max(attr.Idx, maxAttrIdx);
idxAttrs.Add(attr.KeyOfEn);
}
foreach (MapAttr attr in mattrs)
{
//排除主键
if (attr.ItIsPK == true)
continue;
if (idxAttrs.Contains(attr.KeyOfEn))
continue;
attr.Idx = maxAttrIdx = maxAttrIdx + 1;
attr.DirectUpdate();
}
#endregion
#region //明细表排序复制
string dtlIdx = string.Empty;
GroupField tgroup = null;
int groupidx = 0;
int tgroupidx = 0;
foreach (MapDtl dtl in dtls)
{
dtlIdx = dtl.No.Replace(dtl.FrmID + "Dtl", "");
tdtl = tdtls.GetEntityByKey(MapDtlAttr.No, tmd + "Dtl" + dtlIdx) as MapDtl;
if (tdtl == null)
continue;
//判断目标明细表是否有分组,没有分组,则创建分组
tgroup = GetGroup(tdtl.No, tgroups);
tgroupidx = tgroup == null ? 0 : tgroup.Idx;
group = GetGroup(dtl.No, groups);
groupidx = group == null ? 0 : group.Idx;
if (tgroup == null)
{
group = new GroupField();
group.Lab = tdtl.Name;
group.FrmID = tdtl.FrmID;
group.CtrlType = GroupCtrlType.Dtl;
group.CtrlID = tdtl.No;
group.Idx = groupidx;
group.Insert();
tgroupidx = groupidx;
tgroups.AddEntity(group);
}
#region 1.明细表排序
if (tgroupidx != groupidx && group != null)
{
tgroup.Idx = groupidx;
tgroup.DirectUpdate();
tgroupidx = groupidx;
tmapdata = tmapdatas.GetEntityByKey(MapDataAttr.No, tdtl.No) as MapData;
if (tmapdata != null)
{
tmapdata.Idx = tgroup.Idx;
tmapdata.DirectUpdate();
}
}
maxDtlIdx = Math.Max(tgroupidx, maxDtlIdx);
idxDtls.Add(dtl.No);
#endregion
#region 2.获取源节点明细表中的字段分组、字段信息
oattrs = new MapAttrs();
qo = new QueryObject(oattrs);
qo.AddWhere(MapAttrAttr.FK_MapData, dtl.No);
qo.addAnd();
qo.AddWhere(MapAttrAttr.UIVisible, true);
qo.addOrderBy(MapAttrAttr.GroupID, MapAttrAttr.Idx);
qo.DoQuery();
ogroups = new GroupFields();
qo = new QueryObject(ogroups);
qo.AddWhere(GroupFieldAttr.FrmID, dtl.No);
qo.addOrderBy(GroupFieldAttr.Idx);
qo.DoQuery();
#endregion
#region 3.获取目标节点明细表中的字段分组、字段信息
tarattrs = new MapAttrs();
qo = new QueryObject(tarattrs);
qo.AddWhere(MapAttrAttr.FK_MapData, tdtl.No);
qo.addAnd();
qo.AddWhere(MapAttrAttr.UIVisible, true);
qo.addOrderBy(MapAttrAttr.GroupID, MapAttrAttr.Idx);
qo.DoQuery();
targroups = new GroupFields();
qo = new QueryObject(targroups);
qo.AddWhere(GroupFieldAttr.FrmID, tdtl.No);
qo.addOrderBy(GroupFieldAttr.Idx);
qo.DoQuery();
#endregion
#region 4.明细表字段分组排序
maxGrpIdx = 0;
idxGrps = new List<string>();
foreach (GroupField grp in ogroups)
{
//通过分组名称来确定是同一个组,同一个组在不同的节点分组编号是不一样的
tgrp = targroups.GetEntityByKey(GroupFieldAttr.Lab, grp.Lab) as GroupField;
if (tgrp == null) continue;
tgrp.Idx = grp.Idx;
tgrp.DirectUpdate();
maxGrpIdx = Math.Max(grp.Idx, maxGrpIdx);
idxGrps.Add(grp.Lab);
}
foreach (GroupField grp in targroups)
{
if (idxGrps.Contains(grp.Lab))
continue;
grp.Idx = maxGrpIdx = maxGrpIdx + 1;
grp.DirectUpdate();
}
#endregion
#region 5.明细表字段排序
maxAttrIdx = 0;
idxAttrs = new List<string>();
foreach (MapAttr attr in oattrs)
{
tattr = tarattrs.GetEntityByKey(MapAttrAttr.KeyOfEn, attr.KeyOfEn) as MapAttr;
if (tattr == null) continue;
group = ogroups.GetEntityByKey(GroupFieldAttr.OID, attr.GroupID) as GroupField;
//比对字段的分组是否一致,不一致则更新一致
if (group == null)
{
//源字段分组为空则目标字段分组置为0
tattr.setGroupID(0);
}
else
{
//此处要判断目标节点中是否已经创建了这个源字段所属分组,如果没有创建,则要自动创建
tgrp = targroups.GetEntityByKey(GroupFieldAttr.Lab, group.Lab) as GroupField;
if (tgrp == null)
{
tgrp = new GroupField();
tgrp.Lab = group.Lab;
tgrp.EnName = tdtl.No;
tgrp.Idx = group.Idx;
tgrp.Insert();
targroups.AddEntity(tgrp);
tattr.GroupID = tgrp.OID;
}
else
{
if (tgrp.OID != tattr.GroupID)
tattr.GroupID = tgrp.OID;
}
}
tattr.Idx = attr.Idx;
tattr.DirectUpdate();
maxAttrIdx = Math.Max(attr.Idx, maxAttrIdx);
idxAttrs.Add(attr.KeyOfEn);
}
foreach (MapAttr attr in tarattrs)
{
if (idxAttrs.Contains(attr.KeyOfEn))
continue;
attr.Idx = maxAttrIdx = maxAttrIdx + 1;
attr.DirectUpdate();
}
#endregion
}
//确定目标节点中,源节点没有的明细表的排序
foreach (MapDtl dtl in tdtls)
{
if (idxDtls.Contains(dtl.No))
continue;
maxDtlIdx = maxDtlIdx + 1;
tgroup = GetGroup(dtl.No, tgroups);
if (tgroup == null)
{
tgroup = new GroupField();
tgroup.Lab = tdtl.Name;
tgroup.FrmID = tdtl.FrmID;
tgroup.CtrlType = GroupCtrlType.Dtl;
tgroup.CtrlID = tdtl.No;
tgroup.Idx = maxDtlIdx;
tgroup.Insert();
tgroups.AddEntity(group);
}
if (tgroup.Idx != maxDtlIdx)
{
tgroup.Idx = maxDtlIdx;
tgroup.DirectUpdate();
}
tmapdata = tmapdatas.GetEntityByKey(MapDataAttr.No, dtl.No) as MapData;
if (tmapdata != null)
{
tmapdata.Idx = maxDtlIdx;
tmapdata.DirectUpdate();
}
}
#endregion
#endregion
}
return "复制成功!";
}
catch (Exception ex)
{
return "err@" + ex.Message.ToString();
}
}
private GroupField GetGroup(string ctrlID, GroupFields gfs)
{
return gfs.GetEntityByKey(GroupFieldAttr.CtrlID, ctrlID) as GroupField;
}
public string Default_Save()
{
Node nd = new Node(this.NodeID);
BP.Sys.MapData md = new BP.Sys.MapData("ND" + this.NodeID);
//用户选择的表单类型.
string selectFModel = this.GetValFromFrmByKey("FrmS");
//使用ccbpm内置的节点表单
if (selectFModel == "DefFrm")
{
string frmModel = this.GetValFromFrmByKey("RB_Frm");
if (frmModel == "0")
{
nd.FormType = NodeFormType.Develop;
nd.DirectUpdate();
md.HisFrmType = BP.Sys.FrmType.Develop;
md.Update();
}
else
{
nd.FormType = NodeFormType.FoolForm;
nd.DirectUpdate();
md.HisFrmType = BP.Sys.FrmType.FoolForm;
md.Update();
}
string refFrm = this.GetValFromFrmByKey("RefFrm");
if (refFrm == "0")
{
nd.NodeFrmID = "";
nd.DirectUpdate();
}
if (refFrm == "1")
{
nd.NodeFrmID = "ND" + this.GetValFromFrmByKey("DDL_Frm");
nd.DirectUpdate();
}
}
//使用傻瓜轨迹表单模式.
if (selectFModel == "FoolTruck")
{
nd.FormType = NodeFormType.FoolTruck;
nd.DirectUpdate();
md.HisFrmType = BP.Sys.FrmType.FoolForm; //同时更新表单表住表.
md.Update();
}
//使用嵌入式表单
if (selectFModel == "SelfForm")
{
nd.FormType = NodeFormType.SelfForm;
nd.FormUrl = this.GetValFromFrmByKey("TB_CustomURL");
nd.DirectUpdate();
md.HisFrmType = BP.Sys.FrmType.Url; //同时更新表单表住表.
md.UrlExt = this.GetValFromFrmByKey("TB_CustomURL");
md.Update();
}
//使用SDK表单
if (selectFModel == "SDKForm")
{
nd.FormType = NodeFormType.SDKForm;
nd.FormUrl = this.GetValFromFrmByKey("TB_FormURL");
nd.DirectUpdate();
md.HisFrmType = BP.Sys.FrmType.Url;
md.UrlExt = this.GetValFromFrmByKey("TB_FormURL");
md.Update();
}
//绑定多表单
if (selectFModel == "SheetTree")
{
string sheetTreeModel = this.GetValFromFrmByKey("SheetTreeModel");
if (sheetTreeModel == "0")
{
nd.FormType = NodeFormType.SheetTree;
nd.DirectUpdate();
md.HisFrmType = BP.Sys.FrmType.FoolForm; //同时更新表单表住表.
md.Update();
}
else
{
nd.FormType = NodeFormType.DisableIt;
nd.DirectUpdate();
md.HisFrmType = BP.Sys.FrmType.FoolForm; //同时更新表单表住表.
md.Update();
}
}
return "保存成功...";
}
/// <summary>
/// 重置字段顺序
/// </summary>
/// <returns></returns>
public string Default_ReSet()
{
try
{
MapAttrs mattrs = new MapAttrs();
QueryObject qo = new QueryObject(mattrs);
qo.AddWhere(MapAttrAttr.FK_MapData, this.FrmID);//添加查询条件
qo.addAnd();
qo.AddWhere(MapAttrAttr.UIVisible, true);
//qo.addOrderBy(MapAttrAttr.Y, MapAttrAttr.X);
qo.DoQuery();//执行查询
int rowIdx = 0;
//执行更新
foreach (MapAttr mapAttr in mattrs)
{
mapAttr.Idx = rowIdx;
mapAttr.DirectUpdate();
rowIdx++;
}
return "重置成功!";
}
catch (Exception ex)
{
return "err@" + ex.Message.ToString();
}
}
}
}