当前位置: 首页 > 编程日记 > 正文

BOS常用代码

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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

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 blocke.printStackTrace();} catch (InstantiationException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.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

相关文章:

20060521

学习中,发现越学习,越觉得基础的知识比较有用.赶紧补... 转载于:https://www.cnblogs.com/tuantuan/archive/2006/05/21/405894.html

Oracle嵌套表实例说明

嵌套表属于oracle复合数据类型中的集合数据类型。 假设有一个关于动物饲养员的表&#xff0c;希望其中具有他们饲养的动物的信息。用一个嵌套表&#xff0c;就可以在同一个表中存储饲养员和其饲养的全部动物的信息。 创建类型animal_ty&#xff1a;此类型中&#xff0c;对于每…

深入浅出开源性能测试工具 Locust (使用篇 1)

在《【LocustPlus序】漫谈服务端性能测试》中&#xff0c;我对服务端性能测试的基础概念和性能测试工具的基本原理进行了介绍&#xff0c;并且重点推荐了Locust这一款开源性能测试工具。然而&#xff0c;当前在网络上针对Locust的教程极少&#xff0c;不管是中文还是英文&#…

Fedora 19下Guacamole的安装使用

由于我要使用RDP实现web远程桌面&#xff0c;因此需要用到了Guacamole这个开源的软件。之前用Ubuntu12.04折腾了一晚上&#xff0c;也没有找到依赖库文件&#xff0c;而Guacamole的官方安装说明却没有介绍这个依赖库如何安装&#xff0c;而是在RDP的配置说明里才一句话简述了这…

创建ASP.NET WEB自定义控件——例程2

本文通过一段完整的代码向读者介绍复合自定义控件的制作&#xff0c;包括&#xff1a;自定义属性、事件处理、控件间数据传递等方面的技术。 作者在http://damao.0538.org有一些控件和代码&#xff0c;并在更新中&#xff0c;有兴趣的读者可以去下载。 以下是一个登陆框的代码&…

Oracle可变数组实例说明

创建类型comm_info CREATE TYPE comm_info AS OBJECT ( /*此类型为通讯方式的集合*/ no number(3), /*通讯类型号*/ comm_type varchar2(20), /*通讯类型*/ comm_no varchar2(30)); /*号码*/ 创建可变数组comm_info_list CREATE TYPE comm_info_list AS VARRAY(50) OF com…

lua创建文件和文件夹

创建文件夹&#xff1a; os.execute(mkdir xx) 创建文件&#xff1a; f assert(io.open(a.tmp,w)) f:write(test) f:close() 转载于:https://www.cnblogs.com/cyberwalker/p/3599199.html

从定制软件到通用软件的转变

最近做了个项目&#xff0c;在不到一周的时间内完成一个大型网站的外壳&#xff0c;这是个很令人振奋的消息~&#xff01;我却走了许多弯路&#xff0c;本来公司有自己的信息平台&#xff0c;从信息平台衍生出来的成型的系统也有四五个其实都是工具的拼装&#xff0c;而我做的部…

OPENVAS运行

https://www.jianshu.com/p/382546aaaab5

白盒测试的5种逻辑覆盖法

文章目录判定覆盖法 Decision Coverage (DC)条件覆盖 Condition Coverage (CC)判定-条件覆盖 Condition-Decision Coverage条件组合覆盖 Multiple Condition Coverage (MCC)修正的条件/判定覆盖 Modified Condition/Decision Coverage (MC/DC)5种覆盖的关系判定覆盖法 Decision…

[sinatra] Just Do It: Learn Sinatra, Part One Darren Jones

1. Install sinatra gem gem install sinatra --no-ri --no-rdoc2. Basic App #!/usr/bin/ruby require sinatra get / do"Just Do It" endruby低于1.9,需要在文件开头加require rubygems ruby basic.rbOpen up your browser and go to http://localhost:4567. 3. I…

GMTC 大前端时代前端监控的最佳实践

摘要&#xff1a; 今天我分享的内容分成三个部分&#xff1a; 第一部分是“大前端时代前端监控新的变化”, 讲述这些年来&#xff0c;前端监控一些新的视角以及最前沿的一些思考。 第二部分"前端监控的最佳实践"&#xff0c; 从使用的角度出发&#xff0c;介绍前端监…

Visual C#访问接口

对接口成员的访问 对接口方法的调用和采用索引指示器访问的规则与类中的情况也是相同的。如果底层成员的命名与继承而来的高层成员一致&#xff0c;那么底层成员将覆盖同名的高层成员。但由于接口支持多继承&#xff0c;在多继承中&#xff0c;如果两个父接口含有同名的成员&am…

powerdesigner类图在子类中显示从父类继承来的方法

首先确保画了子类和父类之间的继承线 然后在子类的选项卡中点击

[UML]UML系列——用例图中的各种关系(include、extend)

[UML]UML系列——用例图中的各种关系&#xff08;include、extend&#xff09; 原文:[UML]UML系列——用例图中的各种关系&#xff08;include、extend&#xff09;用例图中的各种关系 一、参与者与用例间的关联关系 参与者与用例之间的通信&#xff0c;也成为关联或通信关系。…

熬夜写了一个小游戏,向SpaceX聊表敬意

2019独角兽企业重金招聘Python工程师标准>>> 这是我长久放在桌面上的一张图片。 这张照片的名字叫做 Pale Blue Dot&#xff08;暗淡蓝点&#xff09;&#xff0c;是旅行者1号在距地球64亿公里回望太阳系时所拍下的。照片右侧中部有一个隐约可见的小蓝点&#xff0c…

【转】Linux Oracle服务启动停止脚本与开机自启动

在CentOS 6.3下安装完Oracle 10g R2&#xff0c;重开机之后&#xff0c;你会发现Oracle没有自行启动&#xff0c;这是正常的&#xff0c;因为在Linux下安装Oracle的确不会自行启动&#xff0c;必须要自行设置相关参数&#xff0c;首先先介绍一般而言如何启动oracle。 一、在Lin…

ASP.Net中MD5加密-16位32位

publicstringmd5(stringstr,intcode){if(code16) //16位MD5加密&#xff08;取32位加密的9~25字符&#xff09;{return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str,"MD5").ToLower().Substring(8,16) ;} else//32位加密{retur…

PL/SQL编程:将两个数进行交换的存储过程

创建过程exchangeTwo 调用过程enchangeTwo

WCF之多个终结点

1.服务端配置如下&#xff08;一个Service节点下可有多个endpoint,&#xff09;&#xff1a; 1 1<system.serviceModel>2 2 <services>3 3 <service name"Microsoft.ServiceModel.Samples.CalculatorService" behaviorConfiguration"returnFaul…

YAML 语言入门教程

2019独角兽企业重金招聘Python工程师标准>>> YAML简介 另一种标记语言&#xff08;Yet Another Markup Language&#xff09; YAML&#xff08;英语发音&#xff1a;/ˈjməl/&#xff0c;尾音类似camel骆驼&#xff09;是一个可读性高&#xff0c;用来表达资料序列…

我翻译的一篇文章,OO设计中对象的创建和使用

OO设计中对象的创建和使用 转载于:https://www.cnblogs.com/lishu1980/archive/2006/06/22/432526.html

SQL Server Profiler工具

SQL Server Profiler工具 原文:SQL Server Profiler工具一、SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程&#xff0c;其作用如下&#xff1a; 图形化监视SQL Server查询&#xff1b;在后台收集查询信息&#xff1b;分析性能&#xff1b;诊断像死锁之类…

Nginx—核心配置location匹配规则说明

2019独角兽企业重金招聘Python工程师标准>>> location介绍 location指令是Nginx中最核心的一项配置&#xff0c;根据预先定义的URL匹配规则来接收用户发送的请求&#xff0c;根据匹配结果&#xff0c;将请求转发到后台服务器、非法的请求直接拒绝并返回403&#xff…

Windows Live Messenger  正式版已经发布

Windows Live Messenger 正式版已经发布!这是新一代的 Messenger。它拥有全新的名字&#xff0c;可以免费下载。并且除了延续使用原 Messenger 的全部功能外&#xff0c;它还提供了几种出色的全新交流方式&#xff0c;实现与朋友的即时共享和交流。转载于:https://www.cnblogs.…

关闭ubuntu启动时System Program Problem Detected提示

修改vi /etc/default/apport 将其值设置1-->0转载于:https://www.cnblogs.com/snail-micheal/p/3607969.html

C++开源跨平台类库集

在如下的库支持下&#xff0c;开发的系统可以很方便移植到当前大部分平台上运行而无需改动&#xff0c;只需在对应的平台下 用你喜欢的编译器 重新编译即可 经典的C库 STLport-------SGI STL库的跨平台可移植版本&#xff0c;在以前有些编译器离符合 标准比较远的情况…