列表插件重写void ListRowDoubleClick(ListRowDoubleClickArgs e)事件,在事件中处理具体逻辑,具体代码如下
public override void ListRowDoubleClick(Core.List.PlugIn.Args.ListRowDoubleClickArgs e) { base.ListRowDoubleClick(e); BillShowParameter param = new BillShowParameter(); param.FormId = "PUR_PurchaseOrder"; //业务对象唯一标识,采购订单为例; param.OpenStyle.ShowType = ShowType.MainNewTabPage; //新页签方式打开; param.Status = OperationStatus.EDIT; //打开单据状态为修改 param.ParentPageId = this.View.PageId; param.PKey = this.ListView.CurrentSelectedRowInfo.PrimaryKeyValue; //主键值,就是单据内码啦 param.LayoutId = this.ListView.CurrentSelectedRowInfo.LayoutID; this.View.ShowForm(param); }
还有一种是打开一个URL。
public override void ListRowDoubleClick(Kingdee.BOS.Core.List.PlugIn.Args.ListRowDoubleClickArgs e) { base.ListRowDoubleClick(e); e.Cancel = true; //JSONArray paras = new JSONArray(); //JSONObject jo = new JSONObject(); //jo["url"] = "http://www.baidu.com"; /// 如果是本网站相对路径,就不要加http:// //jo["title"] = "百度-Open"; //paras.Add(jo); //this.View.AddAction("OpenUrlWindow", paras); }
也可以使用ShowForm来实现这种场景,看下面的例子:
BillShowParameter param = new BillShowParameter { FormId = ConstTag.HR_JS_GradeSeq, PageId = Guid.NewGuid().ToString() }; param.CustomParams.Add("JSSchemeId", ret[0]["FJSSchemeId"].ToString()); param.CustomParams.Add("FGradeId", selectedRow.PrimaryKeyValue); param.OpenStyle.ShowType = ShowType.Default; this.View.ShowForm(param);
必要的解释:
1FormId是你需要显示的表单的唯一标识。pageid赋一个guid就可以了。
2.param.customParams是一个字符串参数的集合,这里传入一些参数后可以在SHow出的表单中根据key来获取对应的参数。
3.ShowType是显示类型,ShowType.Default默认显示为弹窗模式。当然你可以显示其他的模式,自己写一下就知道了。
新显示的窗体可以用OpenParameter接受你传递的参数,下面是例子:
public override void OnLoad(EventArgs e) { Int64 schemeid = this.View.OpenParameter.GetCustomParameter("JSSchemeId").ConvertTo<Int64>(0); Pkid = this.View.OpenParameter.GetCustomParameter("FGradeId").ConvertTo<Int64>(0); }