在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);
}