U9 ToolBar 按钮状态开发范例说明 版 本 号 :V1.0 作者: 版本记录 【此部分要记录该文档形成过程中的历次版本变更过程及变更的内容】 版本 修改与参与人 修改时间 修改原因 修改概述 审批人1.0 罗鹏 2006/6/24 原始文档建立 一.问题域说明 ToolBar 按钮一般在单据档案中应用较多,而且在 ToolBar 按钮状态的处理上也存在或多或少的相同之处,本范例主要讲解处理 ToolBar 按钮状态的相同之处以及特殊情况的处理 二.基本原理 1、使用平台 API 控制按钮状态,平台 API 方法说明: (1)ButtonManger.SetButtonStatus 此方法有三个重载 A 、 SetButtonStatus(IPart currentPart, string buttonName, bool isButtonEnabled); currentPart 当然 part,buttonName 按钮名称, isButtonEnabled 是否可用 控制单个按钮的状态是否可用 B、SetButtonStatus(IPart currentPart, string[] buttonNames, bool isButtonEnabled); currentPart 当然 part,buttonNames 按钮组, isButtonEnabled 是否可用 控制多个 Button,ImageButton 按钮状态(可用,不可用) C、SetButtonStatus(IPart currentPart, string[] buttonNames, bool isButtonEnabled, bool isButtonVisible); currentPart 当然 part,buttonNames 按钮组,isButtonEnabled 是否可用,isButtonVisible 是否可见 控制多个 Button,ImageButton 按钮状态(可用,不可用,可见,不可见) (2)SetToolBarModifyStatus(IUFToolbar toolbar, int model) 自动匹配设置按钮状态:保存后,“审核”“流程”按钮置灰 (3)SetToolBarButtonStatus(IPart currentPart, ButtonStatus buttonStatus); 根据页面状态默认控制 ToolBar 按钮状态 (4)SetToolBarNewStatus(IUFToolbar toolbar, int model); 自动匹配设置按钮状态:新增时,“删除”、“复制”“审核”“流程”“输出”“打印”按钮置灰 (5)SetToolBarStatus(IUFToolbar toolbar, bool enable, string[] btnIDs); toolbar : WebPart 的 ToolBar 对象; enable : 设置按钮集合是否可以操作; btnIDs : 按钮集合 (6)SetToolBarSubmitStatus(IUFToolbar toolbar, int model); 自动匹配设置按钮状态:提交后,“流程”按钮置灰 2、一般情况的处理步骤: (1)获取当前记录 ( 2 ) 判 断 记 录 状 态 , 如 果 是 新 增 状 态 , 则 调 用 平 台 封 装 的ButtonManger.SetToolBarNewStatus方 法 ; 否 则 调 用 平 台 封 装 的ButtonManger.SetToolBarModifyStatus 方法 3、特殊情况的处理: 根据需求调用平台 API 三.关键代码及说明 一般情况的处理: ItemRequestUIMainFormWebPartCodeBehindExtend.cs 文件 660 行 private void SetToolbarState() { //获取当前记录 基本原理第一步 IUIRecord record = Action.MainView.FocusedRecord; //第二步 if (record != null && record.DataRecordState == DataRowState.Added) { ButtonManger.SetToolBarNewStatus(Toolbar2, 0);//自动匹配设置按钮状态:新增时,“删除”、“复制”“审核”“流程”“输出”“打印”按钮置灰Toolbar2 按钮名称 } else { ButtonManger.SetToolBarModifyStatus(Toolbar2, 0);//自动匹配设置按钮状态:保存后,“审核”“流程”按钮置灰 } } 四.源代码使用说明 下载:http://u9scm91/isvdoc/download/U9 研发体系(ToolBar按钮状态开发范例).rar在节点 WebPart 文件夹 ItemRequestUIMainFormWebPartCodeBehindExtend.cs 文件中 AfterUIModelBinding() 方法中调用 五.组装发布说明(可选) 1、解压代码包 ItemRequestUI.rar 2、编译 3、将 UFIDA.U9.SCM.INV.ItemRequestUI.WebPart.dll,UFIDA.U9.SCM.INV.ItemRequestUI.WebPart.pdb 文件 部署到 Portal\UILib 下运行即可。