在KDTable中,如果该列是枚举,则显示的value,不会显示别名,要显示别名有两个方法:
1、在Query中用case 语句,这个办法比较笨,如果枚举添加,或者比较多,需要重新修改Query。不建议使用。
2、覆盖父类方法getQueryExecutor
protected IQueryExecutor getQueryExecutor(IMetaDataPK queryPK,
EntityViewInfo viewInfo) {
IQueryExecutor iec = super.getQueryExecutor(queryPK, viewInfo);
iec.option().isAutoTranslateEnum = true;//显示枚举
iec.option().isAutoTranslateBoolean=true;//显示checkbox
return iec;
}
3、在KDTable的列中设置Editor。这样该列也会显示成下拉框:
private void addCtrl() {
tblMain.checkParsed();
KDComboBox tblMain_useToGuarUnit = new KDComboBox();
tblMain_useToGuarUnit.setName("tblMain_useToGuarUnit");
tblMain_useToGuarUnit.setVisible(true);
tblMain_useToGuarUnit.addItems(EnumUtils.getEnumList("com.kingdee.eas.huar.common.YesOrNoEnum").toArray());
KDTDefaultCellEditor tblMain_useToGuarUnit_CellEditor = new KDTDefaultCellEditor(tblMain_useToGuarUnit);
this.tblMain.getColumn("useToGuarUnit").setEditor(tblMain_useToGuarUnit_CellEditor);
}
本文介绍了在KDTable中如何让枚举类型的列显示其别名而非实际值的方法。提供了三种解决方案:通过Query中的case语句手动转换(不推荐)、覆盖getQueryExecutor方法以启用枚举自动转换功能以及在KDTable的列中设置Editor来实现下拉选择。
1310

被折叠的 条评论
为什么被折叠?



