二、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文件)的基础档案时(如:自定义核算项目)。此时就只能通过以下步骤来处理:

  1. 在BIM里加一个F7字段,关联物料或其他可以选到的基础资料。保存后先别发布

  2. 切换到BOS透视图,打到对应的.relation文件,修改supplierEntity,原来是指定物料的实体,改成自定义核算项目的实体,如下

     

  3. 打开XXXEditUI.ui,修改F7字段的queryInfo,原来是指向物料的query,改成自定义核算项目的query

     

posted @ 2023-07-07 15:28  凉了记忆  阅读(249)  评论(0编辑  收藏  举报