【已解决】二开一张单据,和动态表单,打开单据问题
金蝶云社区-jiedong_kingdee
jiedong_kingdee
0人赞赏了该文章 1,785次浏览 未经作者许可,禁止转载编辑于2014年07月06日 23:53:53

1.二开一张单据,发布菜单,测试都ok
2.动态表单 增加使用了树形控件,然后在对每一个节点 点击 事件中写了打开1中的二开单据,测试ok之后,有编写代码然后重启iis ,结果节点单击之后 打不开单据一直进度条,重新新增二开的单据 也是一直进度条,弹出另一网页如图:

3.之前还以为是单据的元数据坏了,{{{/article/1678761}}} 这个帖子,还有{{{/article/1676412}}} 这个帖子,我都认为是元数据话了,
4.结果我就重新画了单据和动态表单,测试ok 后,在写代码,刚开始也ok,可重启之后 就变上图了, 这感觉不像是元数据坏了。求指导?
[code] //用于存放 所有打开的界面PageId
List TotalviewHz = new List();
//树节点打开界面
private BillShowParameter ShowPara = null;

///


/// 树节点单击事件
///

///
public override void TreeNodeClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.TreeNodeArgs e)
{
base.TreeNodeClick(e);
if (e.NodeId != null && ShowPara ==null)
{
// 界面展现层id
string viewPageId = Guid.NewGuid().ToString();
// BillShowParameter ShowPara = null;
ShowPara = new BillShowParameter();

ShowPara.ParentPageId = this.View.PageId;
ShowPara.PageId = viewPageId;
ShowPara.MultiSelect = false;
//单据状态
ShowPara.Status = OperationStatus.VIEW;

ShowPara.FormId = "kd_sjdTaskEdit";
ShowPara.Height = 300;
ShowPara.Width = 600;
ShowPara.PKey =e.NodeId;
//显示风格
ShowPara.OpenStyle.ShowType = ShowType.InContainer;
//显示在哪里,控件标示
ShowPara.OpenStyle.TagetKey = "FTack";
//指定插件
//ShowPara.DynamicPlugins.Add(
//获取View 层
// var childrenView = this.View.GetView(viewPageId);
TotalviewHz.Add(viewPageId);

this.View.ShowForm(ShowPara);
}else if (e.NodeId != null && ShowPara !=null)
{
if( this.View.GetView(ShowPara.PageId) !=null){

//获取刚才打开界面D的View 层 数据
IDynamicFormView ShowParaView = this.View.GetView(ShowPara.PageId);
//获取动态模型数据包
DynamicObject obj = ShowParaView.Model.DataObject;
//重新构建数据包 根据节点点击id
ShowParaView.Model.DataObject = ShowParaView.Model.LoadReferenceData(obj.DynamicObjectType, e.NodeId);
ShowParaView.UpdateView();
}

}
}[/code]