参照过滤工具类

 实现目标
按照单据类型和组织过滤交易类型。
 应用场景
存在单据类型的业务单据。
 前台动作

 后台处理
工具类:nc.ui.scmpub.ref.FilterTransTypeRefUtils
使用示例:

 功能扩展
A. 转单查询时根据业务流程和目标单据类型过滤

应用场景:上游单据所提供的查询服务中会使用到。
工具类:nc.vo.scmpub.util.FilterBillByBuzitypeUtil
功能:
1.filter(E[] bills, String destBilltype):通过检查业务流程中是否包含下游单据,来过滤出下游单据可见的单据

2.filter(E[] bills, String destBilltype,String destTranstype):通过检查业务流程中是否包含(指定交易类型的)下游单据,来过滤出下游单据可见的单据

参照多选处理

小编:此文为搬运
使用:V6系列

 实现目标
从某个参照选中多个值后,根据所选值新增多行,选择值放入每一行的参照字段。
 应用场景
根据业务需求,需要实现多选效果的单据。
 前台动作

 后台处理
工具类:
nc.ui.pubapp.uif2app.view.util.RefMoreSelectedUtils
方法:
主子表调用 refMoreSelected;
单表调用 refMoreSelectedForBillTable;
实现步骤:
1. 界面初始化时需要将参照(如物料)设置为多选;

2. 编辑后事件中调用工具类,设置按新增或复制来实现多选

第七章 V5 最新变化说明

1. 新增参照节点名称常量接口
nc.vo.bd.ref.RefNodeNameConst
参照初始化举例:

UIRefPane refPane = new UIRefPane();
//公司目录参照。
refPane.setRefNodeName (ref.RefNodeNameConst .CORP)

2. 会计期间默认参照的变化
关于会计期间参照的修改。

最新的需求:2006-08-07会计期间参照由表形改为树表形。

实现:左树为默认会计期间方案下的会计年度,右表为该会计年度下的会计月份。

存在的问题:

以前,会计期间参照的使用者通过设置参照的setWherePart来改变会计期间方案,现在改为树表,使用者要通过setClassWherePart来改变会计期间方案。对于只使用默认会计期间方案的地方不用修改。

修改方法:

((AbstractRefTreeModel)UIRefPane.getRefMole()).setClassWherePart(” PK_ACCPERIODSCHEME = ‘”+pk_accperiodscheme+”‘ “)

3. 控制参照某列数据的显示格式接口
如果要控制某列每行数据的显示格式,如控制数量列的显示精度。
可以实现nc.ui.bd.ref.IRefColDispConverter接口。已实现的例子可以参考nc.ui.bd.ref.busi.AccidDefaultRefModel
4. V5.3 新增功能
1、左树右表参照,支持左树分类可以选择
首先要构造分类VO: nc.vo.bd.ref.RefClassPropVO
然后通过nc.ui.bd.ref.AbstractRefGridTreeModel.setClassPropVOs(RefClassPropVO[] classPropVOs) 方法把VO数组注册到参照模型中即可。

2、 默认参照注册
V5.3 开始,系统默认参照要统一注册到 bd_refinfo表中,以便引用。

第六章 参照值返回与事件处理

在UIRefpane 中
i. 照编码:getRefCode和getRefCodes
ii. 参照名称:getRefName和getRefNames
iii. 参照主键:getPK和getPKs
iv. 参照VO:getVO和getVOs (必须实现convertToVO (Vector)方法才能获取,在参照model中实现)
v. 任意列:getValue(字段名)和getValues(字段名)(字段名必须在字段列表中)

参照支持属性变化事件。
i. 如果需要监听UIRefPane事件,需要实现ValueChangedListener接口,
ii. 加入监听addValueChangedListener(ValueChangedEvent)
iii. 值改变将触发ValueChangedEvent

第五章 参照客户化功能的设定

在初始化一个参照以后,即在本文三或四段落中的红色部分定义好后,无论是系统默认参照还是自定义参照,才可以定制参照的其他功能。
1. UIRefPane中的设置:
setToolTipText(String);//设置参照控件的toolTip
setMaxLength(int);//设置输入字符的最大长度,默认20;
setEditable(boolean);//设置参照是否可编辑
setEnabled(boolean);//设置参照是否可以使用
setDelStr(String);//设置参照输入框不能输入的字符串。
setColor(Color);//设置参照输入框的背景色。
setCacheEnabled(boolean);// 是否使用缓存
setMultiSelectedEnabled(boolean);//是否允许多选择
setAutoCheck(boolean);//是否自动解析输入的参照数据
setButtonFireEvent(boolean);//按钮选择数据后是否触发ValueChanged事件
setNotLeafSelectedEnabled(Boolean);//非末级节点是否可选择(对树参照有效)
setIsCustomDefined(boolean);//是否为用户自定义参照模型
setIncludeSubShow(boolean);//树型参照是否包含下级复选框是否显示
setMultiCorpRef(boolean);//树表参照是否显示公司选项(在参照中动态切换公司)
setTreeGridNodeMultiSelected(boolean);//树表参照是否允许选择不同树节点下的数据。

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_multiLang

addWherePart(String);参照在运行中动态添加过滤条件,每次在原始的WherePart上添加

对参照数据按指定主键数组过滤。
参数说明:newM_filterPks 要过滤的主键数组
filterStrategy 过滤策略
IFilterStrategy.INSECTION = 0; //参照数据集与过滤数据集的交集
IFilterStrategy. REFDATACOLLECT_MINUS_INSECTION = 1; //参照数据集减参照数据集与过滤数据集的交集
AbstractRefModel.setFilterPks(java.lang.String[] newM_filterPks, int filterStrategy)

3. 注意事项

1. 参数区分大小写。
2. 设置字段列表和字段时(主键、编码、名称等),注意保持一致。(同时加别名或不加别名)。
3. 设置公司主键(setPk_corp)后必须设置setWherePart语句。默认参照建议用setRefNodeName(参照名,公司主键),然后设置/追加where子句
4. where语句开头不要包含where短语。

第二章 参照总体结构图

小编:此文是搬运,将小编收集的资料分享到这,是为了和像我一样的开发人能更快速、更轻松地解决问题,欢迎大家分享自己的内容。
使用对象:NC-V5系列

1. 结构图

nc-v5-ref-2

2. 代码结构

2.1 nc.ui.bd.ref

定义接口IRefModel、IrefTreeModel、IrefGridTreeModel、IrefUI、IrefUINew、IrefQueryDlg、IrefQueryDlg2
AbstractRefModel implements IRefModel
AbstractRefTreeModel――>AbstractRefModel implements IRefTreeModel
AbstractRefGridTreeModel――>AbstractRefTreeModel implements IRefGridTreeModel
AccBankDefaulteRefModel――>AbstractRefModel
AreaclDefaultRefModel――>AbstractRefTreeModel
InvmandocDefaultRefModel――>AbstractRefGridTreeModel
UFRefColumnsDlg――>nc.ui.pub.beans.UIDialog
UFRefGridTreeUI――>nc.ui.pub.beans.UIDialog implements IRefUINew
AbstractRefDialog—〉nc.ui.pub.beans.UIDialog implements IRefUINew
UFRefGridUINew――> AbstractRefDialog
UFRefTreeUINew――> AbstractRefDialog
UFRefManage 参照控件控制参照对话框的中介类
nc.ui.bd.ref.IRefColDispConverter 参照列特殊显示格式装换接口类
IBusiType 参照业务信息定义

2.2 nc.ui.bd.ref.busi

具体业务参照,也是Uap默认提供的参照

2.3nc.ui.pub.beans

RefPaneIconFactory参照ImageIcon工厂
UIRefPane 参照控件类
UIRefPaneTextField 参照控件的组成部分,文本框

2.4      nc.vo.bd.ref

DocSealWherePartMng根据参照refNodeName取得参照的封存条件工具类
IFilterStrategy参照过滤数据策略。参照提供设置一些主键,参照的查询结果按策略过滤的功能
IRefAutoMatchMode参照模糊匹配模式
RefColumnDispConvertVO参照列数据特殊显示配置VO
RefcolumnVO参照栏目业务对象子对象
RefException参照异常类
RefIconConfigVO参照 树显示图标配置VO
RefNodeNameConst UAP默认参照常量
RefQueryResultVO参照数据,参照栏目信息复合查询VO
RefQueryVO参照查询数据信息VO
ReftableVO 参照栏目业务对象主对象
RefVO_mlang 参照多语言自动翻译配置对象

2.5 nc.vo.bd.refdatatemp

RefdatatempVO 参照临时表数据VO

2.6nc.bs.bd.ref

RefImpl参照数据查询实现类
ReftableImpl 参照栏目数据查询实现类

2.7nc.itf.uap.busibean

IRef 参照数据查询服务接口
IRefForTempTable  参照从临时表查询接口,需要支持事务处理
IReftable 参照栏目查询服务接口

第一章 前言(参照开发)

小编:此文是搬运,将小编收集的资料分享到这,是为了和像我一样的开发人能更快速、更轻松地解决问题,欢迎大家分享自己的内容。
使用对象:NC-V5系列

统一提供各种基础档案的参照录入。

•提供定位,过滤,模糊查询,高级查询等功能。

•提供自定义参照定义功能。

系统提供表型、树型、树表型参照。

表型:以表格形式显示。
树型:只能是有级次关系的档案,以树型显示。
树表型:对于有分类的档案,一般也是大数据量的档案例,如存货档案。左树是分类树,右表是该分类下的数据。