您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > NCV5单据开发及模板的使用
NC502客户化开发培训-单据开发用友软件股份有限公司集团及行业客开管理部张时栋2008年10月6日表单单据和单据类型单据模板(标准化、行业化、个性化)UI工厂(单据开发框架,多种设计模式)UAP集成开发框架集成开发框架,向导工具支持建立标准开发流程简单快速的开发,快速响应客户需求,大幅降低开发风险目标:支持标准+行业+个性基于四大配置模板TemplateBasedApp表单模板FormTemplate查询模板QueryTemplate打印模板PrintTemplate报表模板ReportTemplate数据集成平台DataExchange权限模型PermissionModel业务动作脚本BusinessScript工作流平台Workflow基于UAP基础平台UAPBasedApp表单开发框架业务动作脚本BusinessScript数据存取DataAccess前后台数据校验DataVerifier按钮管理ButtonManager按钮状态ButtonStatus按钮定义ButtonDefine数据模型DataModel用户界面GUI事件处理EventHandler编辑新增保存查询删除打印卡片界面CardUI列表界面ListUI混合型界面ManagerUI树形界面TreeUI基础平台(流程)Infrastructure代码框架-主要类间的关联UI工厂类简述UI继承ToftPanel,功能节点注册时需注册该类,是一个节点的入口类。在UI工厂的框架中,相当于Mediator的角色。BillUIBuffer前台业务数据的缓冲,翻页ButtonManager按钮管理器,负责按钮的创建和运行期状态控制。BusinessDelegator业务委托类,负责和后台进行交互(除了BusinessAction中的任务,其他所有和后台交互,即对XBO_Client调用都必须放到该类中,其他类必须通过这个Delegator与后台交互)IController界面控制器。不要把它和MVC模式中的“C”之间划上等号。它在这里相当于一个配置文件的作用(包括那些按钮,表信息,单据类型,合计行显示等)。在使用具体的模式时都有对应的IController实现,使用者需要根据实际情况补充其中的信息。EventHandler按钮事件处理器。所有对按钮事件的处理都在这个类中实现。BusinessAction业务动作处理类。处理保存、审批等“业务”动作。HYQueryDlg查询对话框。支持增加常用条件页签。单据模型+setParent(CircularlyAccessibleValueObject)+getParent()+setChildrenVO(CircularlyAccessibleValueObject[])+getChildernVO()AggregatedValueObjectDetailTableVOMasterTableVOCircularlyAccessibleValueObject1:11:n单据模型主子表默认形式多子表有多个子表.这种情况需要集成专门的多子表基类。其中聚合VO需要实现IExAggVO接口。单表头没有表体的卡片。实际实现时是把聚合VO的子表当成NULL处理。Controller实现ISingleController接口单表体没有表头的卡片,一般用于一些基本档案节点。实际实现时是把聚合VO的主表当成NULL处理。Controller实现ISingleController接口UAP表单集成开发工具表单开发流程DEMO1.建数据库表2.导入数据字典3.选择GUI界面类型4.绑定数据模型5.使用表单设计器设计表单6.定义表单程序的按钮7.定义业务动作脚本8.校验规则设定9.生成及部署代码报销业务差旅交通费报销业务。填写报销单明细:日期,交通工具,单据数量,金额,城市,备注。填写表头:预算项目,部门,领款人,部门负责人,日期,总金额,出差原因导入数据字典uap集成工具中选择数据字典导入新建项目新建单据功能绑定数据模型选择主子表设置值对象关系配置单据模板定义表单程序的按钮选择系统预制按钮建立自定义按钮并选择定义业务动作脚本校验规则设定保存单据并部署代码打印模板简介打印变量模板编辑器数据源IDataSource接口packagenc.ui.pub.print;publicinterfaceIDataSource{//返回数据源中所有的变量表达式publicjava.lang.String[]getAllDataItemExpress();//返回数据源中所有的变量名publicjava.lang.String[]getAllDataItemNames();//根据变量的表达式,取得变量的真实的值publicjava.lang.String[]getItemValuesByExpress(StringitemExpress);//如果某变量的值都是数字型的,返回truepublicbooleanisNumber(StringitemExpress);//取的节点编号,推荐不实现publicjava.lang.StringgetModuleName();//取得变量依赖的其他变量,推荐不实现publicjava.lang.String[]getDependentItemExpressByExpress(StringitemExpress);}调用打印PrintEntrync.ui.pub.print.PrintEntrype=newPrintEntry(当前窗口对象,newMyTestDataSource());//设置打印模板ID的查询条件pe.setTemplateID(公司,节点编号,用户,业务类型);//如果分配了多个打印模板,可选择一个模板pe.selectTemplate();//开始打印pe.print();//也可以先预览,再在预览界面打印//pe.preview();查询模板(QueryConditionClient)查询模板打印模板报表模板
本文标题:NCV5单据开发及模板的使用
链接地址:https://www.777doc.com/doc-2889486 .html