二、EAS客户端编辑界面常用代码
2、EAS客户端编辑界面常用代码
2.1 获取菜单
getUIContext().get("UIClassParam")
2.2 客户端环境工具类
//静态存储用户当前登录信息,登录的当前组织信息(ContextUtil在服务端使用) com.kingdee.eas.common.client.SysContext: //获得当前用户的环境变量 Context ctx=SysContext.getSysContext(): //获得当前财务组织,其他组织如:销售等也可从环境变量中取得 SysContext.getSysContextO.getCurrentFIUnit(): //取得用户信息 SysContext.getSysContext().getCurrentUserInfo(); //在handler中可以使用如下方式获取当前用户 Context ctx = WafContext.getInstance().getContext(); UserInfo userInfo = (UserInfo) ctx.get(SysContextConstant.USERINFO);
2.3获取公司行政组织
ICompanyOrgUnit comOrg =null; comOrg = com.kingdee.eas.basedata.org.CompanyOrgUnitFactory.getRemotelnstance(); CompanyOrgUnitInfo comOu =ICompanyOrgUnit.getCompanyOrgUnitInfo(***);//根据不同需要调用相应方法。
2.4获取当前公司本位币
companyOrgUnitInfo.getBaseCurrency()
2.5期间工具
com.kingdee.cas.basedata.assistant.PeriodUtils提供静态方法可获取期间,进行期间运算、比较等功能
2.6获取资源文件
EASResource.getString("com.kingdee.eas.base.TestResource","periodName"):
TestResource为bos中对应的资源文件名
2.7消息框
com.kingdee.eas.util.client.MsgBox.showWaming("***"):
提供message对话框,只能在客户端使用,msgbox中提供了多种方法
2.8实现多页签
com.kingdee.eas.base.uiframe.UIFactoryHelper
//可指定UI名称动态生成UI由用户加到java的panel中,实现多页签
com.kingdee.eas.base.uiframe.UIFactory.initUIObject(XXXXX)
//可指定UI名称动态生成UI由框架自动载入
2.9Tree操作
com.kingdee.eas.basedata.org.client.tree.NewOrgTreeHelper
//组织树的静态方法
com.kingdee.eas.basedata.org.client.f7.*
//如:
KDTree tree.setModel(new DefaultTreeModel(nodes));
TreePath path new TreePath(rootNode.getPath());
tree.expandPath(path);
tree.setSelectionPath(path);
2.10获取编号
ICodingRuleManager iCodingRuleManager=null;
iCodingRuleManager = CodingRuleManagerFactory.getRemotelnstance();
//判断规则是否存在
iCodingRuleManager.isExist(billInfo,companyID);
//是否启用断号支持
iCodingRuleManager.isUseIntermitNumber(billInfo,companyID);
//读取当前最新编码
String sysNumber = iCodingRuleManager.readNumber(billlnfo,companyID);
//没有启用断号支持功能,则获取编码规则产生的编码
String sysNumber = iCodingRuleManager.getNumber(billlnfo,companyID);
2.11获取汇率
//汇率对象
IExchangRate iexchangRate = ExchangeRateFactory.getRemoteInstance();
//获取当前公司汇率表
String exchangeTableID= companyOrgUnitInfo.getBaseExchangeTable().getId();
//取得该公司两种币别之间的汇率
ExchangeRateInfo erInfo =iexchangRate.getExchangeRate(exchangeTableID,sourceCurrencyID,destCurrencyID,Calendar.getInstance().getTime());
2.12数据库工具类
com.kingdee.eas.util.app.DbUtil
//提供静态方法对数据库进行樑作,不需要关注后台的数据库资源的释放(由系统处理)如:executeQuery、execute
2.13常用数据格式
//设置时间
tbIMain.getColumn("billDate").getStyleAttributes().setNumberFormat("%{yyyy-MM-dd}t");
//设置金额
tblMain.getColumn("creditFor").getStyleAttributes().setNumberFormat("%r{#,##0.00)f");
//设置样式
tblMain.getColumn("debitFor").getStyleAttributes().setHorizontalAlign(HorizontalAlignment.RIGHT);
2.14初始化单据分录中的数据
protected IObjectValue createNewDetailData(KDTable table){
PurOrderEntryInfo t2 = new PurOrderEntryInfo();
t2.set***(*);//增明细行时进行初始化
return t2;
}
2.15 载入编辑界面时设置明细默认值
protected com.kingdee.bos.dao.IObjectValue createNewData()
{
//new一个值对象
PurOrderInfo objectValue = new PurOrderInfo();
objectValue.getEntrys().add(new PurOrderEntryInfo()):
objectValue.setCompany((CompanyOrgUnitInfo)(SysContext.getSysContext().getCurrentFIUnit()));
objectValue.setCreator((UserInfo)(SysContext.getSysContext().getCurrentUser()));
return objectValue;
}
2.16 构造 ObjectUuidPK
ObjectUuidPK pk = new ObjectUuidPK(paymentInfo.getId());
2.17组织转换
SysContext.getSysContext().getCurrentFIUnit().castToFullOrgUnitInfo():
2.18获取不同类型的组织视图
//如:公司、成本中心、责任中心等
Org ViewF7 orgF7 = new OrgViewF7(this);
orgF7.setCurrentCUID(company.getldo.toString());
orgF7.setMultiSelect(false);
orgF7.setOrgViewTypes(new Org ViewType[]{OrgViewType.COMPANY}):
orgF7.setIsShowSub(true);
prmptCompany.setSelector(orgF7);
2.19弹出指定的F7框
KDCommonPromptDialog dlg=(KDCommonPromptDialog)selector;
if (dlg==null){
dlg new KDCommonPromptDialog();
if(dlg.getQueryInfo()==null){
dlg.setQueryInfo(boxBizEle.getQueryAgent().getQueryInfo());
try{
dlg.setEntityViewInfo(new EntityViewInfo(boxBizEle.getQueryAgent().getRuntimeEntityView().toString()));
}catch (com.kingdee.bos.sql.ParserException e){
e.printStack Trace();
}
dlg.setSelectorCollection(box BizEle.getQueryAgent().getSelectorCollection());
dlg.setQueryExecutor(boxBizEle.getQueryAgento.getQueryExecutor());
dlg.setEnabledMultiSelection(boxBizEle.getQueryAgentO.isEnabledMultiSelection());
dlg.setRetumValueType(boxBizEle.getQueryAgent()).getReturnValueType());
}
}
dlg.show0;
if (!dlg.isCanceled()){
boxBizEle.setValue(((Object[])dlg.getData())[0]):
ICell cell = pnlTables.getFoucusCell();
if(cell!=null){
cell.setValue(((BgContractInfo)((Object[])dlg.getData())[0]).getContractNum());
}
}
2.20 设置默认表头的默认值
方法:applyDefaultValue(IObjectValue iobjectvalue)
说明:对表头的字段设置默认值时,重写此方法,与onload不同的是,onload只在UI第一次加载时调用,通常用于单据第一次初始化时对单据进行相关属性的操作,注意,当在UI界面打开后,再点 “新增按钮”,此时是不执行此方法的;而applyDefaultValue每次点击新增或者第一次加载该编辑页面都会调用次方法,在后续点击查看或者修改,都不会触发此方法,另外就是点击提交后,仍旧在当前新增页,也是不会触发次方法的;与onload的加载顺序为先加载onload,再加载applyDefaultValue
2.21
2.21 如何修改F7字段所关联的基础档案
在一般情况下,在BIM视图对单据新增F7字段时,就可以关联到想要的基础档案或其它视图。但是,当需要关联一些不存在业务单元(即*.bizunit文件)的基础档案时(如:自定义核算项目)。此时就只能通过以下步骤来处理:
-
在BIM里加一个F7字段,关联物料或其他可以选到的基础资料。保存后先别发布
-
切换到BOS透视图,打到对应的.relation文件,修改supplierEntity,原来是指定物料的实体,改成自定义核算项目的实体,如下
-
打开XXXEditUI.ui,修改F7字段的queryInfo,原来是指向物料的query,改成自定义核算项目的query
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
2021-07-07 字符串数组输出