EAS BOS开发客户端端常用代码

更新时间:2023-03-08 09:42:41 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

客户端常用代码

1

列表界面常用代码............................................................................................................... 3 1.1 初始化用户自己定义的查询过滤框(系统默认为每个定义的列表生成了通用过滤框,如果采用系统通用过滤框则不需要实现下面的方法) ................................................... 3 1.2 设置列表界面的默认过滤条件,可用来过滤列表数据, 也可以直接设置 MAINQUERY的值实现过滤 .......................................................................................................... 5 1.3 设置是否在调入列表界面之前先出过滤框 ................................................................... 5 1.4 客户端对审核的操作 ....................................................................................................... 6 1.5 关联生成 ........................................................................................................................... 6 1.6 动态调用UI界面,并在UI之间传递变量 .................................................................. 7 1.7 关于编码规则 ................................................................................................................... 7 1.8 如何得到当前选中行的ID .............................................................................................. 8 1.9 关于数字精度的设置 ....................................................................................................... 9 1.10 返回当前列表的主键 ................................................................................................. 10 1.11 返回列表界面对应的编辑界面名称 ......................................................................... 11 1.12 返回远程调用接口 ..................................................................................................... 11 2

编辑界面常用代码............................................................................................................. 11 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21

获取菜单参数 ................................................................................................................. 11 客户端环境工具类 ......................................................................................................... 11 获取公司行政组织 ......................................................................................................... 12 获取当前公司本位币 ..................................................................................................... 12 期间工具 ......................................................................................................................... 12 获取资源文件 ................................................................................................................. 12 消息框 ............................................................................................................................. 13 SYSUTIL.ABORT() ............................................................................................................ 13 COM.KINGDEE.EAS.BASE.UIFRAME.UIFACTORYHELPER ................................................. 13 TREE操作 ....................................................................................................................... 14 获取编号 ..................................................................................................................... 14 获取汇率 ..................................................................................................................... 15 数据库工具类 ............................................................................................................. 15 常用数据格式 ............................................................................................................. 15 初始化单据分录中的数据 ......................................................................................... 16 载入编辑界面时设置明细默认值 ............................................................................. 16 BIGDECIMAL类型的使用方式: ................................................................................... 17 构造OBJECTUUIDPK.................................................................................................. 17 组织转换 ..................................................................................................................... 17 获取不同类型的组织视图 ......................................................................................... 17 弹出指定的F7框 ...................................................................................................... 18

3 常用F7 QUERY ................................................................................................................... 19 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14

科目F7 ........................................................................................................................... 19 科目表 ............................................................................................................................. 19 客户F7 ........................................................................................................................... 19 供应商F7 ....................................................................................................................... 19 客商统一码F7 ............................................................................................................... 19 物料F7 ........................................................................................................................... 19 辅助核算F7 ................................................................................................................... 19 币别F7 ........................................................................................................................... 20 辅助核算类型F7 ........................................................................................................... 20 汇率F7 ....................................................................................................................... 20 银行账户F7 ............................................................................................................... 20 银行F7 ....................................................................................................................... 20 用户F7 ....................................................................................................................... 20 银行F7 ....................................................................................................................... 20

4 代码实例............................................................................................................................. 20 4.1 单据新增代码 ................................................................................................................. 20 4.2 单据修改代码 ................................................................................................................. 22 4.3 单据删除代码 ................................................................................................................. 22 4.4 获取集合 ......................................................................................................................... 22 4.5 获取值对象 ..................................................................................................................... 23 4.6 界面之间传递参数 ......................................................................................................... 23 4.7 给QUERY传过滤条件 ................................................................................................... 24 4.8 接口方法的访问方式 ..................................................................................................... 25 4.9 传递上下文参数的接口访问方式 ................................................................................. 25 4.10 控件的初始化 ............................................................................................................. 25 4.11 F7赋值 ........................................................................................................................... 26 4.12 设置单据分录单元格格式 ......................................................................................... 28 4.13 设置单元格可编辑 ..................................................................................................... 28 4.14 删除行 ......................................................................................................................... 29 4.15 F7专用选择界面的设置................................................................................................ 29 4.16 获取各模块系统状态信息 ......................................................................................... 31 4.17 获取当前登陆信息 ..................................................................................................... 31 4.18 获取参数平台参数设置的示例代码 ......................................................................... 31 4.19 网络互斥功能示手工控制 ......................................................................................... 32 4.20 TREE- LIST实现方法1 ................................................................................................... 32 4.21 TREE-LIST点击树上结点时形成过滤条件时的字段 ................................................... 32 4.22 TREE-树形控件的初始化级次 [OPTIONAL] ................................................................. 33 4.23 TREE-树形空间的默认展开级次 [OPTIONAL] ............................................................... 33 4.24 TREE-返回树形控件的根名称 ....................................................................................... 33 4.25 TREE-数据过滤(重载实现对树的过滤) ........................................................................ 33 4.26 TREE-控件基本使用 ....................................................................................................... 34 4.26.1 初始化树形控件 ..................................................................................................... 34

4.26.2 返回选中的树结点 ................................................................................................. 35 4.26.3 返回树结点的值 ..................................................................................................... 35 4.26.4 删除类别时刷新当前结点的父结点,并定位到当前结点的父结点。 ............. 35 4.26.5 设置选中根结点 ..................................................................................................... 36 4.26.6 类别新增与修改时,刷新当前选中结点 ............................................................. 36 4.26.7 修改类别时刷新当前结点的父结点,并定位到当前结点 ................................. 36 4.27 手工发送消息 ............................................................................................................. 37

1 列表界面常用代码

tblMain 作为框架为list列表界面中的kdTable绑定的变量,通过它可以访问到列表上的每一行、每一列,可以做数据检查,控制,格式化,行合并等操作

1.1 初始化用户自己定义的查询过滤框(系统默认为每个定

义的列表生成了通用过滤框,如果采用系统通用过滤框则不需要实现下面的方法)

dialog可在bos中继承CustomerQueryPanel UI新建用户自定义的过滤框

在Bos中发布该元数据后,可以实例化该类并引用

在生成的dialog类中继承方法 getFilterInfo(),并实现用户想要的过滤条件,应用框架会在取数时调用dialog类自动获取过滤条件

在ListUI类中重载方法initCommonQueryDialog

protected CommonQueryDialog initCommonQueryDialog() { dialog = super.initCommonQueryDialog(); try

{ dialog.addUserPanel(getUsierPanel()); dialog.setShowFilter(true); dialog.setShowSorter(true); dialog.setHeight(380); dialog.setWidth(500); dialog.setTitle(“客户自定义过滤框”); }

catch (Exception e) { handUIException(e);

} return dialog; }

protected CustomerQueryPanel getUserPanel() throws Exception { if (this.userPanel == null) this.userPanel = new PurOrderQueryUI(); userPanel.onLoad(); return this.userPanel; }

如上,可以实现通过在通用过滤界面上增加自定义的过滤框实现对列表数据的过滤

1.2 设置列表界面的默认过滤条件,可用来过滤列表数据,

也可以直接设置 mainQuery的值实现过滤

protected EntityViewInfo getInitDefaultSolution() { EntityViewInfo ev = new EntityViewInfo(); FilterInfo filter = new FilterInfo(); //给filter赋过滤条件项 ev.setFilter(filter); return ev; }

1.3 设置是否在调入列表界面之前先出过滤框

protected boolean initDefaultFilter() { return true; }

1.4 客户端对审核的操作

应用框架预定义了一个审核操作actionAuditing

public void actionAuditing_actionPerformed(ActionEvent e) throws Exception { //检查单据状态 if (!checkStatus(tblMain, BillStatusEnum.SUBMITED)) {

MsgBox.showInfo(this,

Day4Resource.getStrResource(\// 状态不正确,终止处理

SysUtil.abort(); } IPurOrder purorder = (IPurOrder) getBizInterface(); String[] billIdlist = getSelectedListId();

//常用的弹出对话框方法

int i = MsgBox.showConfirm2(this, \if (i == MsgBox.OK) { //审核操作 purOrder.audit(new ObjectStringPK(bill)); //完成其他业务逻控制 // 刷新列表界面 actionRefresh_actionPerformed(null); }

}

1.5 关联生成

public void actionCreateTo_actionPerformed(ActionEvent e) throws Exception { checkSelected(); // 未审核单据不能关联生成

}

if (!checkStatus(tblMain, BillStatusEnum.AUDITED)) { MsgBox.showInfo(this, \ SysUtil.abort(); }

//有系统调用配置好的‘botp’规则 super.actionCreateTo_actionPerformed(e);

1.6 动态调用UI界面,并在UI之间传递变量

private void makePurOrderUI(PurOrderInfo srcBillInfo)

throws EASBizException, UIException,

BOSException, Exception { String destBillEditUIClassName = “com.kingdee….PurOrderEditUI”; Map map = new UIContext(this); map.put(\ map.put(UIContext.OWNER, this); map.put(\ IUIWindow uiWindow = null ;

// UIFactoryName.MODEL 为弹出模式

uiWindow = UIFactory.createUIFactory(UIFactoryName.MODEL).

create(destBillEditUIClassName, map, null,

OprtState.ADDNEW); //可对创建的ui进行操作

//((CoreBillEditUI).uiWindow.getUIObject()).

//setMakeRelations(btpResult.getBOTRelationCollection()); //开始展现UI

uiWindow.show(); }

1.7 关于编码规则

// 是否存在编码规则

protected boolean isCodeRuleEnable(IObjectValue objValue)

throws EASBizException, BOSException { String companyId = OrgInnerUtils.getCurCompany(); ICodingRuleManager codeRuleMgr = null;

codeRuleMgr = CodingRuleManagerFactory.getRemoteInstance(); return codeRuleMgr.isExist(objValue, companyId); }

// 得到自动编码

protected String getAutoCode(IObjectValue objValue)

throws EASBizException, BOSException { String companyId = OrgInnerUtils.getCurCompany();

ICodingRuleManager codeRuleMgr = null;

codeRuleMgr = CodingRuleManagerFactory.getRemoteInstance(); if (codeRuleMgr.isUseIntermitNumber(objValue, companyId)) { return codeRuleMgr.readNumber(objValue, companyId); } else { return codeRuleMgr.getNumber(objValue, companyId); } }

1.8 如何得到当前选中行的id

// 得到当前选中行的id

public String[] getSelectedListId() { checkSelected(); // SelectManager 是kdtable中行管理类 ArrayList blocks = tblMain.getSelectManager().getBlocks(); ArrayList idList = new ArrayList(); Iterator iter = blocks.iterator(); while (iter.hasNext()) { KDTSelectBlock block = (KDTSelectBlock) iter.next(); int top = block.getTop(); int bottom = block.getBottom();

for (int rowIndex = top; rowIndex <= bottom; rowIndex++) { ICell cell = tblMain.getRow(rowIndex).

getCell(getKeyFieldName());

}

if (!idList.contains(cell.getValue())) { idList.add(cell.getValue()); } } }

String[] listId = null;

if (idList != null && idList.size() > 0) { Iterator iterat = idList.iterator(); listId = new String[idList.size()]; int index = 0; while (iterat.hasNext()) { listId[index] = (String) iterat.next(); index++; } }

return listId;

1.9 关于数字精度的设置

private void changeShowData(int fistRow, int lastRow)

throws EASBizException, BOSException { for (int i = fistRow; i <= lastRow; i++)

{

IRow row = tblMain.getRow(i); // 根据币别设置精度 ICell cell = row.getCell(“columnName”); //假定精度为2 int precision = 2; if (cell != null && cell.getValue() != null) { try { precision = Integer.parseInt(cell.getValue().toString());

} catch (Exception e) { precision = 2; } } // 当该行的币别精度不能于原币精度时才更改精度 if (precision != basePrecision) { for (int j = 0; j

tblMain.getColumn(\ \

tblMain.getColumn(\ \

tblMain.getColumn(\ HorizontalAlignment.RIGHT);

tblMain.getColumn(\ .setNumberFormat(\

tblMain.getColumn(\ .setHorizontalAlign(HorizontalAlignment.RIGHT); } } } }

1.10 返回当前列表的主键

protected String getKeyFieldName() { return \}

tblMain.getColumn(\tblMain.getColumn(\).getStyleAttributes().setHorizontalAlign(HorizontalAlignment.RIGHT);

2.15 初始化单据分录中的数据

protected IObjectValue createNewDetailData(KDTable table) { PurOrderEntryInfo t2 = new PurOrderEntryInfo(); t2.set***(*); //新增明细行时进行初始化 return t2; }

2.16 载入编辑界面时设置明细默认值

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.17 BigDecimal类型的使用方式:

BigDecimal amounts = new BigDecimal(String.valueOf(0.00));

2.18 构造ObjectUuidPK

ObjectUuidPK pk = new ObjectUuidPK(paymentInfo.getId());

2.19 组织转换

SysContext.getSysContext().getCurrentFIUnit().castToFullOrgUnitInfo();

2.20 获取不同类型的组织视图

如:公司、成本中心、责任中心等

OrgViewF7 orgF7 = new OrgViewF7(this);

orgF7.setCurrentCUID(company.getId().toString());

orgF7.setMultiSelect(false);

orgF7.setOrgViewTypes(new OrgViewType[]{OrgViewType.COMPANY});

orgF7.setIsShowSub(true);

prmptCompany.setSelector(orgF7);

2.21 弹出指定的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.printStackTrace(); } dlg.setSelectorCollection(boxBizEle.getQueryAgent().getSelectorCollection()); dlg.setQueryExecutor(boxBizEle.getQueryAgent().getQueryExecutor()); dlg.setEnabledMultiSelection(boxBizEle.getQueryAgent().isEnabledMultiSelection()); dlg.setReturnValueType(boxBizEle.getQueryAgent().getReturnValueType()); } } dlg.show(); if (!dlg.isCanceled()) { boxBizEle.setValue( ((Object[])dlg.getData())[0]); ICell cell = pnlTables.getFoucusCell(); if(cell!=null)

cell.setValue(((BgContractInfo)((Object[])dlg.getData())[0]).getContractNum()); }

3 常用F7 Query

3.1 科目F7

com.kingdee.eas.basedata.master.account.app.F7AccountViewQuery

3.2 科目表

com.kingdee.eas.basedata.master.account.app.AccountTableQuery

3.3 客户F7

com.kingdee.eas.basedata.master.cssp.app.F7CustomerQuery

3.4 供应商F7

com.kingdee.eas.basedata.master.cssp.app.F7SupplierQuery

3.5 客商统一码F7

com.kingdee.eas.basedata.master.cssp.app.F7BizAnalysisCodeQuery

3.6 物料F7

com.kingdee.eas.basedata.master.material.app.F7MaterialQuery

3.7 辅助核算F7

com.kingdee.eas.basedata.master.auxacct.app.F7AsstAccountQuery

3.8 币别F7

com.kingdee.eas.basedata.assistant.app.F7CurrencyQuery

3.9 辅助核算类型F7

com.kingdee.eas.basedata.master.auxacct.app.F7AsstActTypeQuery

3.10 汇率F7

com.kingdee.eas.basedata.assistant.app.F7ExchangeRateQuery

3.11 银行账户F7

com.kingdee.eas.basedata.assistant.app.F7AccountBankQuery

3.12 银行F7

com.kingdee.eas.basedata.assistant.app.F7BankQuery

3.13 用户F7

com.kingdee.eas.base.permission.app.F7UserQuery

3.14 银行F7

com.kingdee.eas.basedata.assistant.app.F7BankQuery

4 代码实例

4.1 单据新增代码

如:新增一行付款单

//构造一条付款单信息(构造值对象)

PaymentBillInfo payInfo = new PaymentBillInfo();

payInfo.setNumber(“1001”);

//关联用户

UserInfo userInfo = new UserInfo();

userInfo.setId(BOSUuid.read(\BOSUuid建立实体对象

userInfo.setName(“John”);

userInfo.setNumber(“2000”);

BigDecimal ex = new BigDecimal(\建立属性

BigDecimal ex2 = new BigDecimal(12345678901234567.8);//错误

payInfo.setExchangeRate(ex);

payInfo.setCreator(userInfo);

payInfo.setAuditDate(new Date(System.currentTimeMillis()));//时间属性

Timestamp createdate = new Timestamp(System.currentTimeMillis());

payInfo.setCreateDate(createdate);

payInfo.setBizState(BillBizState.create);//枚据属性

payInfo.setSave(true);//Boolean 属性

PaymentBillItemInfo itemInfo = new PaymentBillItemInfo();//建立分录

itemInfo.setLineNo(34);

itemInfo.setAmounts(ex2);

payInfo.getEntries().add(itemInfo);//添加分录

payInfo.getEntries().add(new ErrandTaskItemInfo());//添加分录 //通过

调用新增方法进行保存

IPaymentBill iPayBill = PaymentBillFactory.getRemoteInstance();//获取实体

IObjectPK pk = iPayBill.addnew(payInfo);//保存值对象,返回逻辑键,可以通过逻辑键获取值对象(如下)

4.2 单据修改代码

修改一条付款单信息

IPaymentBill iPayBill = PaymentBillFactory.getRemoteInstance();

String id=\

ObjectUuidPK pk = new ObjectUuidPK(BOSUuid.read(id));//建立逻辑键

PaymentBillInfo payInfo = iPayBill.getValue(pk);//获取值对象;

System.out.println(\获取属性

payInfo.setExchangeRate(ex);//修改属性属性

iPayBill.update(pk, payInfo);//更新数据

4.3 单据删除代码

iPayBill.remove(pk);//通过逻辑键删除单据内容获取集合

4.4 获取集合

CurrencyInfo cur = new CurrencyInfo();

ICurrency c = CurrencyFactory.getRemoteInstance();//建立实体对象 EntityViewInfo evi = new EntityViewInfo();//建立视图信息

FilterInfo i = new FilterInfo();//建立过滤条件

i.getFilterItems().add(new FilterItemInfo(\

i.getFilterItems().add(new FilterItemInfo(\

i. setMaskString(\

evi.setFilter(i);//添加过滤条件

evi.getSelector().add(new SelectorItemInfo(\添加获取属性

evi.getSelector().add(new SelectorItemInfo(\

evi.getSelector().add(new SelectorItemInfo(\

evi.getSelector().add(new SelectorItemInfo(\

//三种获取集合方法

1. 获取所有数据:

CurrencyCollection co = c. getCurrencyCollection ();//获取集合

2. 获取满足上述条件的所有数据

CurrencyCollection co = c.getCurrencyCollection(evi);//获取集合

3. 获取满足oql所写的条件的所有数据

CurrencyCollection co = c. getCurrencyCollection (evi);//获取集合

4.5 获取值对象

CurrencyInfo cur = new CurrencyInfo();

ICurrency c = CurrencyFactory.getRemoteInstance();//建立实体对象 String id=\

ObjectUuidPK pk = new ObjectUuidPK(BOSUuid.read(id));//建立逻辑键 c.getValue(pk); 或 : c.getCurrencyInfo(pk);

4.6 界面之间传递参数

1. 收集父界面要传递给子界面的参数集 HashMap map = new HashMap(); map.put(\必须。被启动UI的父UI对象

map.put(\ map.put(\ map.put(\ map.put(\ IUIFactory uiFactory = null; uiFactory = UIFactory

.createUIFactory(\以模态对话框方式启动

IUIWindow uiWindow = uiFactorycreate(\/* 被启动对象的类名称 */

map); uiWindow.show();

2. 在子界面获取传递下来的数据

private void loadContext() {

int mode = ((Integer)this.getUIContext().get(\

AccountTableInfo accountTableInfo = (AccountTableInfo) this.getUIContext().get(\CtrlUnitInfo cuInfo = (CtrlUnitInfo) this.getUIContext().get(\

AsstAccountInfo asstAccountInfo = (AsstAccountInfo) this.getUIContext().get(\

AuxAccountEditUI ui = (AuxAccountEditUI) this.getUIContext().get(\}

4.7 给Query传过滤条件

EntityViewInfo evi = new EntityViewInfo(); FilterInfo filterInfo = new FilterInfo(); //建立过滤条件 filterInfo.getFilterItems().add( new FilterItemInfo(\ CompareType.EQUALS)); filterInfo.getFilterItems().add( new FilterItemInfo(\ CompareType.EQUALS)); filterInfo.setMaskString(\ evi.setFilter(filterInfo); if (mainQuery == null) { mainQuery = new EntityViewInfo(); } mainQuery.setFilter(filterInfo); //添加过滤条件

this.execQuery();

4.8 接口方法的访问方式

3. 客户端访问

CurrencyInfo cur = new CurrencyInfo();

ICurrency c = CurrencyFactory.getRemoteInstance();//建立实体对象 c. getCurrencyCollection(); 4. 服务端访问

CurrencyInfo cur = new CurrencyInfo();

ICurrency c = CurrencyFactory. getLocalInstance (ctx);//建立实体对象 c. getCurrencyCollection();

4.9 传递上下文参数的接口访问方式

PurOrderInfo cur = new PurOrderInfo();

IPurOrder c = PurOrderFactory. getRemoteInstanceWithObjectContext(ctx);//建立实体对象

c. getPurOrderCollection();

另query也支持上下文参数:

IQueryExecutor exec = QueryExecutorFactory.getRemoteInstance(queryPK,ctx); …

4.10 控件的初始化

1.使用枚举给ComboBox控件赋值 public void setReceiveType() {

this.kDComboBox2.removeAllItems(); List list = new List();

Iterator it = ReceiveType.iterator(); while (it.hasNext()) {

list.add(ReceiveType.getEnum(it.toString()).toString()); }

}

2.使用值对象集合给ComboBox控件赋值 // 获取结算方式列表

IAsstActTypeDefault iAsstActType = AsstActTypeDefaultFactory.getRemoteInstance(); AsstActTypeDefaultCollectioni asstActTypeColl = iAsstActType

.getAsstActTypeDefaultCollection(\ AsstActTypeDefaultInfo defaultVal = null; int count = asstActTypeColl.size();

Object[] typeValue = new Object[count]; for (int i = 0; i < count; i++) {

AsstActTypeDefaultInfo value = (AsstActTypeDefaultInfo) asstActTypeColl.get(i); if (value.isIsDefaultAccountPayable()) {

defaultVal = value; }

ObjectUuidPK pk = new ObjectUuidPK(BOSUuid.read(value.getAsstActType().getString(\

AsstActTypeInfo asstInfo = AsstActTypeFactory.getRemoteInstance().getAsstActTypeInfo(pk);

//cbi[i] = new ComBoxInfo(asstInfo, asstInfo.getName(), true); String typeName = asstInfo.getName(); String typeId = asstInfo.getId().toString();

String typeQueryName = asstInfo.getDefaultQueryName(); String typeTableName = asstInfo.getRealtionDataObject(); int csType = 0; //asstActTypeInfo.getCsType().getValue();

asstActType = new AsstActTypeUtils(typeName, typeId, typeTableName, typeQueryName, csType);

typeValue[i] = (Object) asstActType;

}

///String strQueryName = \

this.kDComAccountCussentType.removeAllItems(); this.kDComAccountCussentType.addItems(typeValue); this.kDComAccountCussentType.setSelectedIndex(0);

4.11 F7赋值

ObjectUuidPK pk = new ObjectUuidPK(id); IObjectValue objVal

DynamicObjectFactory.getRemoteInstance().getValue(pk.getObjectTypei(), pk);

bizPrompt.setData(objVal);

private void setCompanyF7() {

=

//公司的F7的设置

OrgType[] CompanyType = { OrgType.Company };

//首先定义需要显示那些树,这里只显示财务树 //为F7控件指定PromptBox

this.bizPromptCompany.setEditFormat(\ this.bizPromptCompany.setDisplayFormat(\ this.bizPromptCompany.setEditable(true);

this.bizPromptCompany.setCommitFormat(\

OrgUnitTreePromptBox boxCompany = new OrgUnitTreePromptBox(this, CompanyType, null,

OrgSelect.OnlySelectCompanyEntity, false, false, false); bizPromptCompany.setSelector(boxCompany); bizPromptCompany.setData(currentCompany); bizPromptCompany.setEnabled(false);

}

//设置币别

private void setCurrency() throws EASBizException, BOSException {

ICurrency iCurrency = null; CurrencyCollection con = null; try {

iCurrency = CurrencyFactory.getRemoteInstance(); con = iCurrency.getCurrencyCollection(true); }

catch (Exception e) {

// TODO 自动生成 catch 块

MsgBox.showError(this, EASResource.getString(resClassName, \ SysUtil.abort(); }

if (con != null) {

Object[] typeValue = new Object[con.size()]; int j = 0;

for (int i = 0; i < con.size(); i++) {

CurrencyInfo currencyInfo = (CurrencyInfo) con.get(i); String typeName = currencyInfo.getName(); String typeId = currencyInfo.getId().toString();

String typeQueryName = currencyInfo.getNumber();

asstActType = new AsstActTypeUtils(typeName, typeId, typeQueryName); if (asstActType != null) {

typeValue[i] = (Object) asstActType;

if(typeId.equalsIgnoreCase(((CurrencyInfo)currentCompany.getBaseCurrency()).getId().toString()))

{

j = i; } } }

this.bizPromptcurrency.removeAllItems(); this.bizPromptcurrency.addItems(typeValue); //默认值为当前公司的本位币

this.bizPromptcurrency.setSelectedIndex(j); } else {

MsgBox.showError(this, EASResource.getString(resClassName, \ SysUtil.abort(); } }

4.12 设置单据分录单元格格式

// 设置单据分录格式

getDetailTable().getColumn(TB_RELABILL).setWidth(100); getDetailTable().getColumn(TB_ORGUNIT).setWidth(180); getDetailTable().getColumn(TB_BIZMAN).setWidth(100);

getDetailTable().getColumn(TB_PAYAMOUNT).setEditor(number_CellEditor); getDetailTable().getColumn(TB_PAYAMOUNT).getStyleAttributes().setNumberFormat(\[=]{#.00}f\

getDetailTable().getColumn(TB_PAYAMOUNT).getStyleAttributes().setHorizontalAlign(HorizontalAlignment.RIGHT);

4.13 设置单元格可编辑

for (int i = 0; i < kdtEntrys.getRowCount(); i++)

{

kdtEntrys.getRow(i).getCell(\ kdtEntrys.getRow(i).getCell(\ }

//如果折扣金额为null则初始化为0

if (kdtEntrys.getRow(i).getCell(\ {

kdtEntrys.getRow(i).getCell(\ }

//汇总分录行金额

BigDecimal amount = new BigDecimal(\

for (int i = 0, n = kdtEntrys.getRowCount(); i < n; i++) {

amount = amount.add(UIRuleUtil.getBigDecimal(UIRuleUtil.getBigDecimalValue (kdtEntrys.getCell(i,TB_PAYAMOUNT).getValue()))); }

this.txtTotalAmounts.setText(null); this.txtTotalAmounts.setEnable(false); this.txtTotalAmounts.setText(amount);

//和零比较

if (amount.compareTo(new BigDecimal(\

4.14 删除行

public void actionDeleteLine_actionPerformed(ActionEvent e)throws Exception { IRow row = getSelectedRow(); if (row != null) { kDTable1.removeRow(row.getRowIndex()); } }

4.15 F7专用选择界面的设置

public void setF7Selector() throws Exception {

KDBizPromptBox bizPromptBox = new KDBizPromptBox();// 要绑定的F7控件 CoreUIObject ui = null;// 父界面对象 CompanyOrgUnitInfo companyInfo = null; // 当前财务组织 // 客户 bizPromptBox.setSelector(new GeneralKDPromptSelectorAdaptor(bizPromptBox, new F7CustomerTreeDetailListUI(), ui)); // 供应商 bizPromptBox.setSelector(new GeneralKDPromptSelectorAdaptor(bizPromptBox, new F7SupplierTreeDetailListUI(), ui)); // 物料 bizPromptBox.setSelector(new GeneralKDPromptSelectorAdaptor(bizPromptBox, new F7MaterialTreeListUI(), ui)); // 职员 HashMap map = new HashMap(); map.put(PersonF7UI.ALL_ADMIN, \ bizPromptBox.setSelector(new PersonPromptBox(ui, map)); // 公司 CompanyF7 org = new CompanyF7(ui); org.setRootUnitID(\ bizPromptBox.setSelector(new CompanyF7(ui)); // 成本中心 bizPromptBox.setSelector(new CostCenterF7(ui)); // 行政组织 bizPromptBox.setSelector(new AdminF7(ui)); // 采购组织 bizPromptBox.setSelector(new PurchaseF7(ui)); // 库存组织 bizPromptBox.setSelector(new StorageF7(ui)); // 销售组织 bizPromptBox.setSelector(new SaleF7(ui)); // 利润中心组织 bizPromptBox.setSelector(new ProfitCenterF7(ui));

//刷新Query数据

CacheServiceFactory.getInstance().discardQuery(this.mainQueryPK);

4.26.5 设置选中根结点

treeMain.setSelectionRow(0);

4.26.6 类别新增与修改时,刷新当前选中结点

KDTreeNode treeNode = (KDTreeNode) treeMain .getLastSelectedPathComponent();

if (treeNode != null && treeNode.getParent() == null) {

TreePath oldPath = treeMain.getSelectionPath();

treeBuilder.refreshTreeNode(treeMain , treeNode,this.getDefaultFilterForTree());

treeMain.setSelectionPath(oldPath);

treeMain.expandPath(oldPath);

}

4.26.7 修改类别时刷新当前结点的父结点,并定位到当前结

KDTreeNode treeNode = (KDTreeNode) treeMain.getLastSelectedPathComponent(); if (treeNode != null && treeNode.getParent() != null) {

TreePath oldPath = treeMain.getSelectionPath();

TreePath parentPath = treeMain.getSelectionPath().getParentPath();

KDTreeNode parentNode = (KDTreeNode) treeNode.getParent();

treeBuilder.refreshTreeNode(treeMain , parentNode ,this.getDefaultFilterForTree());

treeMain.setSelectionPath(TreePathUtil.getNewTreePath(treeMain , treeMain.getModel() , oldPath)); }

4.27 手工发送消息

//以下是发送一个消息的核心片断,如果针对的是某组织批量发送,自己的需要取得组织的用户ID集合,然后构造receiver

SenderAgent senderAgent = SenderAgent.getSenderAgent(); Message message;

Locale[] lcla = getContextLocales(ctx);//获取ctx的语言信息列表 Locale locale = null;

message = MessageFactory.newMessage(\生成一个消息对象 for (int j = 0, m = lcla.length; j < m; j++) { //此处循环进行多语言消息的设置 locale = lcla[j]; message.setLocaleStringHeader(\标题\设置消息标题 message.setLocaleStringHeader(\发送人\设置发送人,属于文本,不是ID message.setLocaleStringHeader(\\消息体内容\设置消息体内容,根据具体业务自己设定 }

message.setIntHeader(\设置消息类型为通知

message.setIntHeader(\MsgBizType.WORKFLOW_VALUE);//业务类型设置为工作流

message.setIntHeader(\ALUE);//设置任务状态,此处是通知消息,所以设置空

message.setIntHeader(\MsgPriority.MIDDLE_VALUE);//设置消息优先级,自己根据需要设定相应的级别

message.setStringHeader(\得到数据中心 message.setStringHeader(\设置解决方案

message.setStringHeader(\

'4ff9eebb-0108-1000-e000-15acc0a813c813B7DE7F;4ff9eebb-0108-1000-e000-1db0c0a813c813B7DE7F'); //设置接收者,后面那参数是用户ID,多个ID可用分号\分割 senderAgent.sendMessage(message); //发送消息

/** * 获取ctx的语言信息列表 * * @param ctx * @return */ public static Locale[] getContextLocales(Context ctx) { Locale[] locales = null; SolutionInfo solu = MetaDataLoaderFactory.getLocalMetaDataLoader(ctx) .getSolution();

if (solu != null) { LanguageCollection langs = solu.getLanguages(); if (langs != null) {

locales = new Locale[langs.size()];

for (int i = 0; i < langs.size(); i++) { locales[i] = langs.get(i).getLocale(); } } }

return locales;

}

<完>

本文来源:https://www.bwwdw.com/article/5rs3.html

Top