本文主要是介绍nc解决自定义参照字段前台保存后只显示主键的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
nc解决自定义参照字段前台保存后只显示主键的问题
- 自定义参照类VoucherRefModel.java
package nc.ui.jych.ref;import nc.ui.bd.ref.AbstractRefModel;/*** @desc 凭证号参照* @author hanh**/
public class VoucherRefModel extends AbstractRefModel {@Overridepublic String[] getFieldCode() {// 参照数据的字段编码return new String[] { "num", "pk_voucher" };}@Overridepublic String[] getFieldName() {// 参照数据的字段名称return new String[] { "凭证号", "主键" };}@Overridepublic String getRefCodeField() {// TODO 自动生成的方法存根return "num";}@Overridepublic String getRefNameField() {// TODO 自动生成的方法存根return "num";}@Overridepublic String getOrderPart() {// TODO 自动生成的方法存根return null;}/*** 隐藏字段* * @return*/@Overridepublic String[] getHiddenFieldCode() {// TODO 自动生成方法存根return new String[] { "pk_voucher" };}@Overridepublic String getTableName() {// 参照数据的表名return "voucherref_view";}@Overridepublic String getPkFieldCode() {// 参照数据对应表的主键return "pk_voucher";}@Overridepublic String getRefTitle() {// TODO 自动生成的方法存根return "凭证号参照";}@Overridepublic int getDefaultFieldCount() {// TODO 自动生成的方法存根return getFieldCode().length - 1;}@Overridepublic String getWherePart() {String wherePart = super.getWherePart();return wherePart;}@Overridepublic void setWherePart(String newWherePart) {super.setWherePart(newWherePart);}}
- 根据自定义参照的字段新建一个视图
CREATE VIEW voucherref_view AS
(select vou.year||'-'||vou.period as period,
typ.name as name,
typ.shortname || '-' || vou.num as num,
vou.pk_voucher as pk_voucher,
vou.pk_accountingbook as pk_accountingbook
from gl_voucher vou
left join bd_vouchertype typ
on typ.pk_vouchertype = vou.pk_vouchertype
where nvl(vou.discardflag, 'N') != 'Y'
and nvl(vou.tempsaveflag, 'N') != 'Y')
- 根据视图中的字段新建一个元数据,元数据的缺省表名为新建的视图名
- 往参照信息表(bd_refinfo)中插入一条记录
select * from bd_refinfo order by ts descinsert into bd_refinfo(CODE,DR,ISNEEDPARA,ISSPECIALREF,LAYER,METADATANAMESPACE,METADATATYPENAME,MODULENAME,NAME,PARA1,PARA2,PARA3,PK_COUNTRY,PK_INDUSTRY,PK_REFINFO,REFCLASS,REFSYSTEM,REFTYPE,RESERV1,RESERV2,RESERV3,RESID,RESIDPATH,TS,WHEREPART)
values('voucherref',--元数据名0,'N',null,null,'jych',--模块名'voucherref',--元数据名'jych',--模块名'凭证号参照',--自定义参照名null,null,null,null,null,'1001A11000001100hanh',--自己构造一个20位的主键'nc.ui.jych.ref.VoucherRefModel',--参照类路径null,0,null,null,null,'1','voucherref',--元数据名'2024-05-30 22:12:25',null);
- 更新实体表(md_class)中该自定义参照的帮助名称和参照名称
select * from md_class order by ts descupdate md_classset help = 'DOC', refmodelname = '凭证号参照'where id = '5a202897-d20b-4620-ac3e-214dcfbe613e'
这篇关于nc解决自定义参照字段前台保存后只显示主键的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!