NCV61-参照开发技术红皮书(整理后).docx_第1页
NCV61-参照开发技术红皮书(整理后).docx_第2页
NCV61-参照开发技术红皮书(整理后).docx_第3页
NCV61-参照开发技术红皮书(整理后).docx_第4页
NCV61-参照开发技术红皮书(整理后).docx_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

NC v6.1 参照开发技术红皮书NC v6.1参照开发技术红皮书 UAP中心 编著目录第一章前言2第二章参照总体结构图32.1参照的类结构层次如图32.2代码结构42.2.1 nc.ui.bd.ref42.2.2 nc.ui.bd.ref.busi42.2.3 nc.ui.pub.beans42.2.4 nc.vo.bd.ref52.2.5 nc.vo.bd.refdatatemp52.2.6 nc.bs.bd.ref52.2.7 nc.itf.uap.busibean5第三章系统默认参照使用63.1使用方法6第四章自定义参照开发规范74.1参照界面的定义74.2参照Model的定义74.2.1表型参照84.2.2树型参照设置94.2.3树表型参照94.3参照抽象Model中的方法的注意事项104.4多组织参照设置10第五章参照客户化功能的设定125.1UIRefPane中的设置具125.2refModle中的设置135.3注意事项14第六章参照值返回与事件处理15第一章 前言UAP 技术红皮书系列 第16 / 51页本章内容概要:l 参照功能l 参照类型统一提供各种基础档案的参照录入。提供定位,过滤,模糊查询,高级查询、智能录入搜索等功能。提供自定义参照定义功能。系统提供表型、树型、树表型参照以及大数据量参照(支持分页处理)。表型:以表格形式显示。树型:只能是有级次关系的档案,以树型显示。树表型:对于有分类的档案,一般也是大数据量的档案例,如存货档案。左树是分类树,右表是该分类下的数据。第二章 参照总体结构图本章内容概要:l 参照的类结构层次l 代码结构2.1 参照的类结构层次如图图 2.1参照的类结构层次2.2 代码结构2.2.1 nc.ui.bd.ref定义接口IRefModel、IrefTreeModel、IrefGridTreeModel、IrefUI、IrefUINew、IrefQueryDlg、IrefQueryDlg2AbstractRefModel implements IRefModelAbstractRefTreeModelAbstractRefModel implements IRefTreeModelAbstractRefGridTreeModelAbstractRefTreeModel implements IRefGridTreeModelAccBankDefaulteRefModelAbstractRefModelAreaclDefaultRefModelAbstractRefTreeModelInvmandocDefaultRefModelAbstractRefGridTreeModelUFRefColumnsDlgnc.ui.pub.beans.UIDialogUFRefGridTreeUInc.ui.pub.beans.UIDialog implements IRefUINewAbstractRefDialognc.ui.pub.beans.UIDialog implements IRefUINewUFRefGridUINew AbstractRefDialogUFRefTreeUINew AbstractRefDialogUFRefManage 参照控件控制参照对话框的中介类nc.ui.bd.ref.IRefColDispConverter 参照列特殊显示格式装换接口类2.2.2 nc.ui.bd.ref.busi 具体业务参照,也是Uap默认提供的参照2.2.3 nc.ui.pub.beansRefPaneIconFactory参照ImageIcon工厂UIRefPane 参照控件类UIRefPaneTextField 参照控件的组成部分,文本框UIRefPopup 参照智能录入,下拉快速选择2.2.4 nc.vo.bd.refIFilterStrategy参照过滤数据策略。参照提供设置一些主键,参照的查询结果按策略过滤的功能IRefAutoMatchMode参照模糊匹配模式RefColumnDispConvertVO参照列数据特殊显示配置VORefcolumnVO参照栏目业务对象子对象RefException参照异常类RefIconConfigVO参照 树显示图标配置VORefNodeNameConst UAP默认参照常量RefQueryResultVO参照数据,参照栏目信息复合查询VORefQueryVO参照查询数据信息ReftableVO 参照栏目业务对象主对象RefVO_mlang 参照多语言自动翻译配置对象2.2.5 nc.vo.bd.refdatatempRefdatatempVO 参照临时表数据VO2.2.6 nc.bs.bd.refRefImpl 参照数据查询实现类ReftableImpl 参照栏目数据查询实现类2.2.7 nc.itf.uap.busibeanIRef 参照数据查询服务接口IRefForTempTable 参照从临时表查询接口,需要支持事务处理IReftable 参照栏目查询服务接口第三章 系统默认参照使用本章内容概要:l 使用方法3.1使用方法NC系统中存在大量的基本档案,与之对应,每种基本档案都配置了相应的参照。各参照的提供者,请把实现好的参照Model类注册到bd_refinfo表中,这样参照就可以供公共使用了。使用方法:UIRefPane是一个控件UIRefPane ref = new UIRefPane();ref.setRefNodeName(“部门档案”);/部门档案这样就定义好了一个部门档案参照。系统也可以通过Refcall来初始化参照UIRefPane nc.ui.bd.ref.RefCall.getUIRefPaneByRefInfo(String pk_refinfo)UIRefPane nc.ui.bd.ref.RefCall.getUIRefPaneByRefNodeName(String refNodeName)UIRefPane nc.ui.bd.ref.RefCall.getUIRefPaneByRefModelClassName(String modelClassName)第四章 自定义参照开发规范本章内容概要:l 参照界面定义l 参照Model定义l 参照Model注意事项l 多组织参照设置参照支持自定义参照的定义。自定义参照可以定义参照的UI界面,也可以只定义参照的Model4.1 参照界面的定义参照分为下拉列表型、表型、树型、树表型、树表型大数据参照5种。注意下拉列表型参照只针对小数据量表型的参照。后4种继承了UIDialog并实现了IRefUI60接口。程序员可自定义参照界面,最好也继承UIDialog,须实现IRefUI60接口。4.2 参照Model的定义对应与4种类型的参照,Model也有4个抽象类:表型: AbstrarctRefModel树型 AbstractRefTreeModel树表型 AbstractRefGridTreeModel大数据量树表型 AbstractRefGridTreeBigDataModel要自定义不同类型参照Model ,请继承相关的抽象类。并设置如下属性: 4.2.1 表型参照(黑体为必设项)i.如果需要distinct短语,或其他断语:setStrPatch(distinct);如果需要公司主键(一定在setWherePart前执行,对于默认参照在设置pk_corp后,还须重新设定setWherePart):setPk_corp(公司主键)已废弃setPk_org(组织主键);setPk_group(集团主键)setWherePart();设置参照名(弹出窗口标题),可以和RefNodeName不同:setRefTitle(参照名)ii.设置select子句:1/可显示字段setFieldCode(new String bd_psndoc.psncode, bd_psndoc.psnname,bd_deptdoc.deptname );/不可显示字段如主键setHiddenFieldCode(new Stringpk_corp);iii.中文名称表头和栏目用setFieldName(new String(“人员代码”,”姓名”,”部门名称”);iv.设置from子句:setTableName(bd_psndoc left outer join bd_deptdoc on bd_psndoc.pk_deptdoc=bd_deptdoc.pk_deptdoc );v.设置where子句:setWherePart( bd_psndoc.pk_corp= + getPk_corp() + );注:需要根据不同的公司返回查询,参数中用getPk_corp()方法。 在原setWherPart的基础上追加where子句:addWherePart();注:每次都从原where中追加,不允许连续追加where子句。vi.设置group子句:(默认为空)setGroupPart();vii.设置order子句:(默认为第一列)setOrderPart();viii.前几列在表中显示:(默认前2列)setDefaultFieldCount(2);ix.设定主键字段:主键字段必须在setHiddenFieldCode或setFieldCode已设定setPkFieldCode(bd_psndoc.pk_psndoc);x.设定界面输入字段:(默认为第一列)setBlurField(字段名);xi.设定参照代码字段:(默认为第一列)setRefCodeField(字段名);xii.设定参照名称字段:(默认为第二列)setRefNameField(字段名);xiii.设置助记码字段名:setMnecode(字段名数组)xiv.V6 权限标识setPowerOperator(String powerOperator)xv.V6权限资源IDsetPowerResourceID(String powerResourceID)4.2.2 树型参照设置 (同表型参照的设置,表型参照的必输部分一定要输入。树形设置group子句无效)指定编码规则(如果为空,则按上下级关系构造树必须指定父字段,子字段):setCodingRule(222222);指定父字段名:setFatherField(字段名)必输一项,否则没有分级规则。指定子字段名:setChildField(字段名)指定根名(默认和参照名相同):setRootName(根名);4.2.3 树表型参照 黑体为必设项设置树数据i.setClassFieldCode(字段名数组);ii.setClassFieldName(表名)iii.setClassWherePart(where子句)iv.SetOrderPart(Order子句)v.SetClassJoinField(要和表关联的字段名)vi.SetClassDefaultFieldCount(数值)(树节点显示字段默认为2)vii.指定定编码规则:如果为空,按上下级关系setCodingRule(222222);viii.指定父字段名setFatherField(字段名)ix.指定子字段名setChildField(字段名)10.指定根名setRootName(根名);设置表数据(同表型参照的设置,表型参照的必输部分一定要输入。下面只列出不同的属性)i.设定和树节点数据关联的字段setDocJoinField(字段名)ii.设置精确匹配:默认精确匹配(树上选择一个节点后,查询表数据是否为精确匹配。)setExactOn(boolean)iii.设定读表的树节点最小级次:默认1(末级节点一定会读表数据,其他情况要大于等于该值是才读数据)setExpandLevel(int)如果你已经定义好了UI和Model部分,恭喜你,自定义参照已基本定义完成。使用时在进行如下设置即可:UIRefPane ref = new UIRefPane();Ref.setRefUI(自定义界面,一般不需定义用系统默认的);Ref.setRefModel(自定义参照模型)4.3 参照抽象Model中的方法的注意事项nc.ui.bd.ref.AbstractRefModel.getData()参照默认是按照设定好的Sql语句到后台查询数据,如果想自定义取数,可以覆盖getData() 方法。返回自定义数据即可。但要注意,参照的数据默认情况下是有内存级缓存的,缓存的key为AbstractRefModel.getRefSql()的值,如果该值为null,那参照系统将不会缓存数据。如果要使用参照内存缓存,getRefSql()要有非null的值。4.4 多组织参照设置代码示例可以参看BusinessUnitDefaultRefModel1 参照的过滤参照设置接口nc.ui.bd.ref.AbstractRefModel.setFilterRefNodeName(String filterRefNodeNames)在参照的模型中设置,filterRefNodeNames是该参照的过滤参照(也可以是任何参照,只要你的参照可以和这个参照有关系) filterRefNodeNames可以是多个参照。 例如,你的参照要按组织过滤的,那么filterRefNodeNames就是组织参照的RefNodeName。2、多组织参照选择后,通过这个接口得到要过滤的值nc.ui.bd.ref.AbstractRefModel.filterValueChanged(ValueChangedEvent changedValue) 该代码请在子类覆盖该方法 代码示例 public void filterValueChanged(ValueChangedEvent changedValue) super.filterValueChanged(changedValue);String selectedPKs = (String) changedValue.getNewValue();if (selectedPKs != null & selectedPKs.length 0) setPk_group(selectedPKs0);如果是多个过滤参照,ValueChangedEvent.getSource() 区别是那个参照发生了选择事件。 可以通过这个方法得到某个参照的Model nc.ui.bd.ref.AbstractRefModel.getFilterRefModel(String refNodeName)3、多组织参照显示,通过下面接口设置nc.ui.pub.beans.UIRefPane.setMultiCorpRef(boolean multiCorpRef)第五章 参照客户化功能的设定本章内容概要:l UIRefPane中的设置l refModle中的设置l 注意事项在初始化一个参照以后,即在本文三或四段落中的红色部分定义好后,无论是系统默认参照还是自定义参照,才可以定制参照的其他功能。5.1 UIRefPane中的设置具setToolTipText(String);/设置参照控件的toolTipsetMaxLength(int);/设置输入字符的最大长度,默认20;setEditable(boolean);/设置参照是否可编辑setEnabled(boolean);/设置参照是否可以使用setDelStr(String);/设置参照输入框不能输入的字符串。setColor(Color);/设置参照输入框的背景色。setCacheEnabled(boolean);/是否使用缓存setMultiSelectedEnabled(boolean);/是否允许多选择setAutoCheck(boolean);/是否自动解析输入的参照数据setButtonFireEvent(boolean);/按钮选择数据后是否触发ValueChanged事件setIncludeSubShow(boolean);/树型参照是否包含下级复选框是否显示setMultiCorpRef(boolean);/是否多组织参照setTreeGridNodeMultiSelected(boolean);/树表参照是否允许选择不同树节点下的数据。setRefType(int refType);设置参照显示类型,通过这个方法设置参照为下拉列表的显示样式。refType的定义在IRefConst中。setMultiOrgSelected(boolean isMultiOrgSelected) /多组织参照是否可以多组织选择数据setMultiRefFilterPKs(String filterPKs) 设置多组织参照过滤组织参照的PK范围setIBeforeRefDlgShow(IBeforeRefDlgShow beforeRefDlgShow) /系统默认的表型、树形参照,在弹出对话框前调用的接口,通过这个可以实现添加自定义按钮的功能。例子参见 AddonButtonExample5.2 refModle中的设置setUseDataPower(boolean) ;/设置参数是否自动关联基本档案数据权限setSealedDataShow(boolean);/设置封存数据是否显示setRefQueryDlgClaseName(String);/设置参照查询类名称(参照的查询功能)setLocQueryEnable(boolean);/树表参照,在启用查询功能后,是否启用定位查询功能setDynamicColClassName(String);/是否为动态列参照。setFormulas(String formulas);/设置公,用于参照内容转换;setDispConvertor(java.util.Hashtable newDispConvertor);/用于参照内容转换的影射表 setMatchField(String);/设置参照setpk时匹配的字段getRefVO_mlang();/为多语言添加此方法, 请覆盖此方法返回要翻译字段数组。详见DefaultRefModel_multiLangaddWherePart(String);参照在运行中动态添加过滤条件,每次在原始的WherePart上添加对参照数据按指定主键数组过滤。参数说明:newM_filterPks 要过滤的主键数组 filterStrategy 过滤策略IFilterStrateg

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论