U9 导航范例说明 版 本 号 :V1.0 作者:者文明 版本记录 【此部分要记录该文档形成过程中的历次版本变更过程及变更的内容】 版本 修改与参与人 修改时间 修改原因 修改概述 审批人1.0 者文明 2008/06/26 原始文档建立 一.问题域说明 通过各种事件(点击 Button、TitleClick、单击 Grid 行、双击 Grid 行等)实现从源画面导航到目标画面。这些事件只是一个驱动方式,都是通过在这些事件中调用相同接口实现的,采用哪种方式导航由需求决定。 导航的应用场景通常是从单据 A 点击某功能按纽后推式生单成 B,同时导航到单据 B,但这种场景下有时也用弹出而不用导航,具体要视需求决定。 必须要注意的是目前不支持在弹出 Form 中使用导航功能,导航只能在主 Form 上实现。 二.基本原理 调用平台统一封装的接口:UFIDA.U9.UI.PDHelper.NavigateManager. NavigatePage(IPart part, string pageId, NaviteParamter param) 参数可通过 NaviteParamter 对象传递(祥见代码说明),在目标画面中通过如下方法获取参数:this.NameValues["Key"]。 三.关键代码及说明 private void OnBakNotWholeSetGetItem_Extend(object sender, UIActionEventArgs e) { //调用模版定义的默认实现方法.如需扩展,请直接在此编程. this.OnBakNotWholeSetGetItem_DefaultImpl(sender, e); ((DiscreteMOMainUIFormWebPart)this.CurrentPart).CurrentSessionState[this.CurrentPart.TaskId.ToString()] = this.CurrentModel; //将当前Model写入缓存,目标画面要用 NaviteParamter param = new NaviteParamter(); param.NameValues.Add("SourceDoc", "DiscreteMO");//该参数标识来源Form param.NameValues.Add("SetIssue", "false");//该参数标识是否成套领料 if (NavigateManager.IsTitleLink(this.CurrentPart))//如果当前Form为弹出Form,则只能弹出,不能导航 { NavigateManager.ShowModelWebpart(this.CurrentPart, "12100b76-4f19-4bb6-bfde-34ead8d485c9", this.CurrentPart.TaskId.ToString(), 992, 504, param); } else { NavigateManager.NavigatePage(CurrentPart, "MFG.MO.IssueTXN.IssueTXN", param);//调用统一接口导航到目标Form } } \\U9.VOB.PD.MFG\MO\Code\DiscreteMOUI\Action\DiscreteMOUIModelActionExtend.cs Line 1637 参数说明:this.CurrentPart 为当前页面;"MFG.MO.IssueTXN.IssueTXN"为目标画面的URI;param 为在页面之间传递数据的载体。 四.源代码使用说明 下载:http://u9scm91/isvdoc/download/U9 研发体系(导航).rar将压缩包释放到与 U9Product 环境平级的 U9UICode 目录中即可进行编译及调试。 编译后生成的装配件请放在“U9Product\U9.VOB.Product.U9\Portal\UILib”目录下。本范例包含 2 个: � UFIDA.U9.MFG.MO.DiscreteMOUI.WebPart.pdb � UFIDA.U9.MFG.MO.DiscreteMOUI.WebPart.dll