BOS常用代码

验证某个用户是否拥有某个权限

BOSUuid userId=SysContext.getSysContext().getCurrentUserInfo().getId();  
BOSUuid orgId=SysContext.getSysContext().getCurrentOrgUnit().getId();  
ObjectUuidPK userPK = new ObjectUuidPK(userId);  
ObjectUuidPK orgPK = new ObjectUuidPK(orgId);  
com.kingdee.eas.base.permission.IPermission perm= null;  
try {  
    perm =PermissionFactory.getRemoteInstance();  
       perm.hasFunctionPermission(userPK, orgPK, "custom_qua_QuaTarget_addnew");   
} catch (Exception e) {  
    e.printStackTrace();  
}  

通过id获取bostype

BOSUuid id = BOSUuid.read(billId);
BOSObjectType type = id.getType();

通过bostype获取实体、table

BOSObjectType bosobjecttype = BOSObjectType.create(bostype);
IMetaDataLoader metadataloader = MetaDataLoaderFactory.getLocalMetaDataLoader(ctx);
EntityObjectInfo entity = metadataloader.getEntity(bosobjecttype);
//获取实体对象object
IObjectValue ov = null;
String objectClassName = entity.getObjectValueClass();
try {
	    Class objectClass = Class.forName(objectClassName);
		ov = (IObjectValue) objectClass.newInstance();
	} catch (ClassNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (InstantiationException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (IllegalAccessException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		    
}

//获取table
String tableName = entity.getTable().getName();

通过人员获取职位信息

部门可以通过职位getAdminOrgUnit获取
 /**
     * 通过人员获取职位
     * @param info
     * @return
     * @throws EASBizException
     * @throws BOSException
     */
    public PositionInfo getPositionByPerson(PersonInfo info)throws EASBizException, BOSException
	{
		 	EntityViewInfo view = new EntityViewInfo();
	        SelectorItemCollection sic = new SelectorItemCollection();
	        sic.add(new SelectorItemInfo("id"));
	        sic.add(new SelectorItemInfo("position.adminOrgUnit.id"));
	        sic.add(new SelectorItemInfo("position.adminOrgUnit.name"));
	        sic.add(new SelectorItemInfo("person.id"));
	        sic.add(new SelectorItemInfo("person.name"));
	        sic.add(new SelectorItemInfo("person.number"));
	        sic.add(new SelectorItemInfo("position.id"));
	        sic.add(new SelectorItemInfo("position.number"));
	        sic.add(new SelectorItemInfo("position.name"));
	        sic.add(new SelectorItemInfo("position.job.id"));
	        sic.add(new SelectorItemInfo("position.job.number"));
	        sic.add(new SelectorItemInfo("position.job.name"));

	        view.setSelector(sic);
	        FilterInfo filter = new FilterInfo();
	        filter.getFilterItems().add(new FilterItemInfo("person.id", info.getId() + ""));
	        filter.getFilterItems().add(new FilterItemInfo("isPrimary", new Integer(1)));
	        view.setFilter(filter);
	        PositionMemberCollection col = PositionMemberFactory.getRemoteInstance().getPositionMemberCollection(view);

	        if ((col != null) && (col.size() > 0) && (col.get(0) != null)) {
	        	return col.get(0).getPosition();
	        }
		
		return null;
	}

 

控件相关常用代码 begin

禁用f7历史记录

prmtbox.setHistoryRecordEnabled(false);

f7设置过滤条件

EntityViewInfo view = new EntityViewInfo();
//过滤条件
FilterInfo filter = new FilterInfo();
filter.getFilterItems().add(new FilterItemInfo("freightBoxType","XY"));
view.setFilter(filter);
//排序
SorterItemCollection sii = new SorterItemCollection();
view.setSorter(sii);
sii.add(new SorterItemInfo("number"));
sii.get(0).setSortType(SortType.DESCEND);
//设置f7过滤条件
prmtbox.setEntityViewInfo(view);
prmtbox.getQueryAgent().resetRuntimeEntityView();

多语言文本框取值

txtDescription.getSelectedItemData();

 

打开新窗口

public static void openTabWin(CoreUI parentUI, Class clazz, Map params, String oprtState) throws Exception {
UIContext uiContext = new UIContext(parentUI);
uiContext.putAll(params);
IUIWindow win = UIFactory.createUIFactory(UIFactoryName.NEWTAB).create(clazz.getName(), uiContext, null, 		   oprtState);
win.show();
}

去掉关闭eas页面时校验是否修改的提示

@Override
public boolean checkBeforeWindowClosing() {
    return true;
}

 

控件相关常用代码 end

 

 

KDTable常用代码  begin

表格行高度自适应 显示多行文本

//设置表格内容支持多行文本显示
tblMain.getStyleAttributes().setWrapText(true);
//设置行高自适应
KDTableHelper.autoFitRowHeight(tblMain, _row.getRowIndex());

//ListUI可以这样处理
@Override
protected void afterTableFillData(KDTDataRequestEvent e) {
   for (int i = e.getFirstRow(); i <= e.getLastRow(); i++) {
       KDTableHelper.autoFitRowHeight(tblMain, i);
   }

}

表格滚动到某一行

table.getLayoutManager().scrollRowToShow(rowIndex);

格式化列数字显示格式

/**
* 格式化指定的列为数字类型
* @param table
* @param key 列名
* @param format
*/
public static void formatTableNumber(KDTable table, String key, String format) {
     table.getColumn(key).getStyleAttributes().setNumberFormat(format);
table.getColumn(key).getStyleAttributes().setHorizontalAlign(Styles.HorizontalAlignment.RIGHT);
   }

设置点击列头自动排序

/**
 * 描述: 设置需要排序的列.
 * 
 * @param tbl
 * @param keys 列名称
 */
public static void setSortColumnKeys(KDTable tbl, String[] keys) {
if (null == keys || 0 == keys.length) {
return;
}
KDTSortManager sortManager = new KDTSortManager(tbl);
sortManager.setSortAuto(true);
sortManager.setClickCount(1);
for (int i = 0; i < keys.length; i++) {
IColumn col = tbl.getColumn(keys[i]);
if (null == col) {
continue;
}
col.setSortable(true);
}
}

设置表格冻结列

/**
 * 冻结列
 * @param table
 * @param colname
 * @param rowindex
 */
public static void setTableFreeze(KDTable table, String colname)  
{  
    if(table.getColumn(colname)!=null){
        table.getViewManager().setFreezeView(-1,table.getColumnIndex(colname)+1);           
    }  
}

设置table F7列的字段显示格式

ObjectValueRender ovr=new ObjectValueRender();
ovr.setFormat(new BizDataFormat("$number$/$name$"));
myTable.getColumn("columnKey").setRenderer(ovr);

单据中的分录表格如果对应计算逻辑的事件时,用键盘的删除或复制功能操作表格会不进事件导致bug,处理方式为去除表格的复制删除等功能。 

ActionMap actionMap = table.getActionMap();

actionMap.remove("Cut");
actionMap.remove("Delete");
actionMap.remove("Paste");

table新增右键菜单

/**
	 * 描述:给table新增右键菜单,建议:在super.onLoad()之后调用
	 * 
	 * @param ui
	 *            可以为"this"
	 * @param table
	 *            需绑定右键菜单的table
	 * @param action
	 *            需绑定的事件
	 * @param menuName
	 *            菜单名
	 */
	public static void appendMenuToTable(CoreUI ui, KDTable table, Action action, String menuName)
	{
		PopupMenuManager mgr;
		if (ui.getPopupMenuManager(table) != null)
		{
			mgr = ui.getPopupMenuManager(table);
		} else
		{
			mgr = ui.createPopupMenuManager(table);
		}
		MenuSection section = new MenuSection(menuName);
		mgr.addMenuSection(section);
		section = mgr.findMenuSection(menuName);
		action.putValue("Name", menuName);
		section.insertAfter(action);
	}

单据list表格 枚举字段自动转换为枚举名

IQueryExecutor executor = super.getQueryExecutor(queryPK, viewInfo);
executor.option().isAutoTranslateEnum = true;

单据list表格 金额字段为0,不显示空白,显示0

IQueryExecutor executor = super.getQueryExecutor(queryPK, viewInfo);
qe.option().isAutoIgnoreZero = false;

光标聚焦到单元格

tbl.getEditManager().editCellAt(row.getRowIndex(), colIndex);

KDTable常用代码  end 

转载于:https://my.oschina.net/u/2276456/blog/1838741

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值