一般实现参照在高级属性那里选择就好了,不用去自定义。有的特别坑。遇到那种客户进行二开的,源码什么都没有什么都要自己写。被一个参照自定义给难倒。怕自己以后忘掉,也给你们参考。我就随便写下
1.NC系列参照分为三种类型。(网上都能找到的,实现类) 如果要参照系统自带参照类,查询【bd_refinfo】这张表。
(1)树形参照
a.自定义一个类放在client端。实现类:AbstractRefTreeModel
b.分为两种方式实现。注释有标明
public ArealRefModel() {
super();
}
@Override
public String getRootName() {
// TODO Auto-generated method stub
return "地区编码";
}
// 参照标题
@Override
public String getRefTitle() {
return "地区分类";
}
// ==参照表名
@Override
public String getTableName() {
return " bd_areacl ";
}
// ==主键
@Override
public String getPkFieldCode() {
return " pk_areacl ";
}
// 父 对应的字段
@Override
public String getFatherField() { //如果没有编码规则,则用父类主键、子类主键这样代替。 放字段名
return "pk_fatherarea";
}
@Override
public String getChildField() { //子类主键为 表名。参照实际情况 如果有编码规则,这两个不必出现。直接删掉 即可
return "pk_areacl";
}
// == pk 树----end
public int getExpandLevel() {
return 2;
}
// ==显示的字段
@Override
public String[] getFieldCode() { //如果没有编码规则,需要把父主键、子主键查询出来。到时候再页面设置不比显示即可
return new String[] { "areaclcode", "areaclname","pk_areacl","pk_fatherarea"};
}
@Override
public String getWherePart() {
StringBuffer sql = new StringBuffer();
// sql.append("dr = 0");
sql.append(" pk_fatherarea='0001M110000000000B0Q' or pk_fatherarea='0001M110000000000B0S' ")