金蝶EAS BOS开发典型示例代码

合集下载

金蝶EAS_套打脚本指南及案例集

金蝶EAS_套打脚本指南及案例集
示例:
var t = getValue();
if(t.contains("银行付款")){setValue(replaceString(t,"银行付款","银付"));}
if(t.contains("银行收款")){setValue(replaceString(t,"银行收款","银收"));}
2.4
if(c>d || (c==month(getFieldValue("ds_baseInfo","birthday")) && e>=f )){
age = a-b;
}else{
age = a-b-1;
}
setValue(age);
2.6
2.6.1
解决方式:
方法一、通过在SQL中加入天数的字段,将两个日期时间差计算好之后,在套打模板中引入天数字段取值;
需求二:
对于固定的内容,只是有条件地控制是否显示。用图片对象,在其“后处理脚本”中写脚本进行控制。
假设存在一个叫“是否完成”的字段isFinished,布尔值,单据状态为“完成”则加盖图章。图章的图片对象的脚本为:
if(getFieldValue(“数据源名称”,“isFinished”))
{
setHide(false);
3、大小写敏感。
1.2
套打脚本可存在于模板设计期中的任意对象,如文字对象、图片对象、金额对象、网格(单元格、行、列及整个网格对象)、数据表(单元格、行、列及整个数据表对象)、动态列表等的前\后处理脚本编辑框中。
前处理脚本—是一段小程序,执行引擎在解析模板时,处理该对象之前运行,可用于修改初始值。

BOS金蝶后台事务开发文档

BOS金蝶后台事务开发文档

后台事务开发文档目录1.简单后台事务示例 (3)2.后台事务执行过程及原理 (13)2.1.后台事务定义 (13)2.2.后台事务发布 (14)2.3.后台事务执行 (15)3.代码实现后台事务定义 (22)3.1.非持久化后台事务 (22)3.2.错过策略 (25)3.3.人工干预(撤销,挂起,唤醒) (28)3.4.调度计划时间 (33)1.简单后台事务示例在进行后台事务示例测试之前,我们需要做一些准备工作,首先,我们要在BOS Studio的BIM视图下新建几个元数据,如图1所示:如上图所示,新建了四个元数据(其中T_BO_BandOffice.table是根据实体右键导出表直接导出得到的),其实这四个元数据很简单,FileLogFacade.facade只有一个方法logWriter(String str);该方法实现了向服务器上的C:/file.log输入日志。

BandOffice.entity上新建了一个方法,该方法和FileLogFacade.facade的方法logWriter(String str)作用一样,名字为testLog(String str),只是为了示范两个不同的调用。

实体BandOffice.entity还新建了一个TestLogEvent的事件,该事件可以引用实体本身的方法logWriter,也可以引用功能FileLogFacade的testLog方法。

再定义了一个业务功能FileLogFunction,在这个业务功能中定义了一个操作fileLog;通过应用,与实体上的事件关联起来。

在定义好这些元数据后,我们需要把这些元数据进行发布,使服务器端在运行时能够加载这些元数据。

上面是我们对解决方案的发布方案设置,如红框标识的,我把元数据发布后生成的代码放在W:\workspace\bs_job\dev\test目录中,如下图所示,元数据发布后在这个目录下生成的代码,这是实体和功能(facade)发布时生成的代码,其他元数据发布时不生成代码。

EAS+BOS开发之界面常用代码

EAS+BOS开发之界面常用代码

EAS BOS开发之界面常用代码1.1 初始化用户自己定义的查询过滤框(系统默认为每个定义的列表生成了通用过滤框,如果采用系统通用过滤框则不需要实现下面的方法)dialog可在bos中继承CustomerQueryPanel UI新建用户自定义的过滤框在Bos中发布该元数据后,可以实例化该类并引用在生成的dialog类中继承方法getFilterInfo(),并实现用户想要的过滤条件,应用框架会在取数时调用dialog类自动获取过滤条件在ListUI类中重载方法initCommonQueryDialogprotected 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 (erPanel == null)erPanel = new PurOrderQueryUI();userPanel.onLoad();return erPanel;}如上,可以实现通过自定义的过滤框实现对列表数据的过滤1.2 设置列表界面的默认过滤条件,可用来过滤列表数据,也可以直接设置mainQuery的值实现过滤protected EntityViewInfo getInitDefaultSolution(){EntityViewInfo ev = new EntityViewInfo();OtherBillQueryUI queryUI = null;try{queryUI = new PurOrderQueryUI();queryUI.onLoad();} catch (Exception e){handUIException(e);}ev.setFilter(queryUI.getFilterInfo());return ev;}1.3)设置是否在调入列表界面之前先出过滤框protected boolean initDefaultFilter(){return true;}1.4)客户端对审核的操作应用框架预定义了一个审核操作actionAuditingpublic void actionAuditing_actionPerformed(ActionEvent e) throws Exception {//检查单据状态if (!checkStatus(tblMain, BillStatusEnum.SUBMITED)){MsgBox.showInfo(this, Day4Resource.getStrResource("isNotSubmitStatus"));// 状态不正确,终止处理SysUtil.abort();}IPurOrder purorder = (IPurOrder) getBizInterface();String[] billIdlist = getSelectedListId();//常用的弹出对话框方法int i = MsgBox.showConfirm2(this, "sureAudit");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, "billIsUnAudited");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("srcBillID", srcBillInfo.getId().toString());map.put(UIContext.OWNER, this);map.put("srcBillBOSTypeString", destBillInfo.getBOSType()); IUIWindow uiWindow = null ;// UIFactoryName.MODEL 为弹出模式uiWindow = UIFactory.createUIFactory(UIFactoryName.MODEL). create(destBillEditUIClassName, map, null,OprtState.ADDNEW);//可对创建的ui进行操作//((CoreBillEditUI).uiWindow.getUIObject()).//setMakeRelations(btpResult.getBOTRelationCollection());//开始展现UIuiWindow.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// 得到当前选中行的idpublic 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”);//假定精度为2int 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 <rowcount; j++) {tblMain.getColumn("billDate").getStyleAttributes().setNumberFormat( "%{yyyy-MM-dd}t");tblMain.getColumn("debitFor").getStyleAttributes().setNumberFormat( "%r{#,##0.00}f");tblMain.getColumn("debitFor").getStyleAttributes().setHorizontalAlign(HorizontalAlignment.RIGHT);tblMain.getColumn("endBalanceFor").getStyleAttributes().setNumberFormat("%r{#,##0.00}f");tblMain.getColumn("endBalanceFor").getStyleAttributes().setHorizontalAlign(HorizontalAlignment.RIGHT);}}}}1.10)返回当前列表的主键protected String getKeyFieldName() {return "id";}1.11)返回列表界面对应的编辑界面名称protected String getEditUIName() {return client.PurOrderEditUI.class.getName();}1.12)返回远程调用接口protected com.kingdee.eas.framework.ICoreBase getBizInterface() throws Exception {return PurOrderFactory.getRemoteInstance();}2.1 单据新增代码如:新增一行付款单//构造一条付款单信息(构造值对象)PaymentBillInfo payInfo = new PaymentBillInfo();payInfo.setNumber(“1001”);//关联用户UserInfo userInfo = new UserInfo();userInfo.setId(BOSUuid.read("867d5df6-00f8-1000-e000-0009c0a81089sysu")); //通过BOSUuid建立实体对象userInfo.setName(“John”);userInfo.setNumber(“2000”);BigDecimal ex = new BigDecimal("343434.445");//建立属性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);//保存值对象,返回逻辑键,可以通过逻辑键获取值对象(如下)2.2 单据修改代码修改一条付款单信息IPaymentBill iPayBill = PaymentBillFactory.getRemoteInstance();String id="8b35b903-00f8-1000-e000-0008c0a81089errt";ObjectUuidPK pk = new ObjectUuidPK(BOSUuid.read(id));//建立逻辑键PaymentBillInfo payInfo = iPayBill.getValue(pk);//获取值对象;System.out.println("this:"+ payInfo.getExchangeRate());//获取属性payInfo.setExchangeRate(ex);//修改属性属性iPayBill.update(pk, payInfo);//更新数据2.3 单据删除代码iPayBill.remove(pk);//通过逻辑键删除单据内容获取集合2.4 获取集合CurrencyInfo cur = new CurrencyInfo();ICurrency c = CurrencyFactory.getRemoteInstance();//建立实体对象EntityViewInfo evi = new EntityViewInfo();//建立视图信息FilterInfo i = new FilterInfo();//建立过滤条件i.getFilterItems().add(new FilterItemInfo("number", "ddff",CompareType.EQUELS));i.getFilterItems().add(new FilterItemInfo("id", "ddff", CompareType.EQUELS)); i. setMaskString(" (#0 and #1)");evi.setFilter(i);//添加过滤条件evi.getSelector().add(new SelectorItemInfo("id"));//添加获取属性evi.getSelector().add(new SelectorItemInfo("*"));evi.getSelector().add(new SelectorItemInfo("company.id"));evi.getSelector().add(new SelectorItemInfo(""));//三种获取集合方法1.获取所有数据:CurrencyCollection co = c. getCurrencyCollection ();//获取集合2.获取满足上述条件的所有数据CurrencyCollection co = c.getCurrencyCollection(evi);//获取集合3.获取满足oql所写的条件的所有数据CurrencyCollection co = c. getCurrencyCollection (evi);//获取集合2.5 获取值对象CurrencyInfo cur = new CurrencyInfo();ICurrency c = CurrencyFactory.getRemoteInstance();//建立实体对象String id="8b35b903-00f8-1000-e000-0008c0a81089errt"; ObjectUuidPK pk = new ObjectUuidPK(BOSUuid.read(id));//建立逻辑键c.getValue(pk); 或: c.getCurrencyInfo(pk);2.6 界面之间传递参数1.收集父界面要传递给子界面的参数集HashMap map = new HashMap(); map.put("Owner", this); //必须。

K3_BOS样例代码演示说明

K3_BOS样例代码演示说明

K3_BOS样例代码演示说明K/3 BOS样例代码演示说明金蝶软件(中国)有限公司K/3产品事业部2007年4月目录一、需求 (4)二、单据界面定义功能 (4)三、单据Action需求和实现方式 (4)3.1 录入或修改币别时,金额和本位币金额类型字段依据币别的精度自动调整显示和录入精度 (4)3.2录入或修改币别时,汇率自动调整 (5)3.3录入或修改物料时,在[物料]列显示物料代码,在[物料名称]列显示其物料名称 (5)3.4 录入或修改物料时,携带销售单位至[计量单位] (5)3.5录入或修改物料时,[数量]和[基本数量]类型字段依据物料的[物料精度]和[价格精度]自动调整数量和价格的显示和录入精度。

(5)3.6 录入或修改物料时,携带销售单位至[基本计量单价],同时根据[计量单位]与该计量单位所在计量单位组的换算率自动计算对应的常用单位单价。

(5)3.7 录入或修改物料时,携带默认仓库至[仓库]、默认仓位至[仓位]。

(5)3.8 录入仓库后,依据仓库的仓库组过滤仓位。

(6)3.9根据输入的物料、仓库、仓位过滤批次号时。

(6)3.10 录入或修改[计量单位]时,自动换算录入的[数量]和[单价]。

(6)3.11 录入或修改[数量]和[单价]时,自动调整计算相应的[基本数量]和[基本单价] (6)3.12 录入或修改物料、数量、单价自动计算[金额],并将[金额]汇总值填入[总额] (6)3.13 录入或修改[金额]时,倒算[单价]和[基本数量单价],并将[金额]汇总值填入[总额](6)3.14 录入或修改币别、汇率、物料、数量、单价、金额后自动计算[本位币金额],并将[本位币金额]汇总值填入[本位币总额] (7)四、多极审核功能 (7)4.1、设置一级审核; (7)4.2、在单据过滤条件中增加[审核状态]的扩展过滤条件 (7)4.3、单据一级审核后调用业务审核,在业务审核中设置状态Fstatus为1(已审核).. 8五、单据审核后允许进行单据变更,其中单据备注信息,任何时候都允许修改 (8)六、展现凭证生成和察看功能 (9)6.1 序时簿上增加[凭证]按钮 (9)6.2 单据录入时增加[借方科目]和[贷方科目] (9)6.3 如果单据没有生成凭证,在序时簿上单击凭证,依据单据内容汇总生成一张凭证 96.4 如果选中的第一条单据已经生成凭证,调用凭证查看界面,其打开模式为只读。

金蝶EAS BOS工作流开发

金蝶EAS BOS工作流开发

金蝶EAS BOS工作流开发1. 流程配置基本知识及示例1.1. 重要概念1.1.1.流程变量流程变量是工作流引擎和业务系统的数据交互的桥梁。

工作流承载业务,驱动业务流程,但是不会执行业务。

工作流中的业务执行,全部都会委托给具体的业务模块执行。

那么,这些被工作流分割的业务功能,在工作流中被调用执行的时候,如何保证做操作的数据的一致性?通过流程变量,在每一步的业务功能执行的过程中,将业务数据保存在流程变量中,那么整个流程的后续活动中,都可以引用该流程变量,来完成业务功能,保证业务数据的一致性。

例如:在凭证的审批流程中,新增凭证审批,审批的时候为什么可以正确定为到刚刚提交的那张凭证,而不是别的凭证?流程变量起到了重要的作用。

在凭证新增之后,将可唯一标示凭证的ID保存到流程变量中,在审批的时候将流程变量中的值传递给凭证,就可以根据这个ID获取到一张凭证了。

流程变量在流程实例的生命周期内都是有效的。

1.1.2.任务输入输出任务输入:在业务发生之前,有工作流传递给业务的数据。

以凭证的过账为例,某个用户收到一条凭证过账的消息,双击消息处理。

在双击之后、凭证的界面弹出之前,工作流会把定义的入口参数变量中的值传递给凭证,凭证根据这个值来展现特定的单据,展现特定的功能。

任务输出:在业务发生之后,由业务系统传递给工作流,需要保存在流程变量中的数据。

仍以凭证过账为例,在用户操作完凭证过账之后,工作流继续流转之前,如果流程定义中定义了任务的输出,那么,就会将凭证对应的属性的数据,保存在流程变量中。

已备在后续的流程活动中使用。

1.2. 注意事项l 绘画工作流图之前一定要先将业务流整理清楚,分析业务流的特性,提取可以抽象出来公用的东西,分析是否可以进行优化等,好的业务流程可以直接映射为工作流流程。

l 利用“流程变量”的威力,建立单据和流程之间数据交换的桥梁。

输入输出参数用来在流程和单据之间进行数据的传递。

输入输出参数和流程变量搭建了流程和单据之间的数据联系通道。

EAS-BOS的代码结构体系

EAS-BOS的代码结构体系

EAS-BOS代码结构体系开发运行环境搭建1、开发环境安装1、Server_CDROM BOS服务器2、Client_CDROM BOS开发工具2、后台运行环境配置打开BOS管理控制台1、建数据中心2、部署应用3、前台开发3、启动BOS集成开发环境4、打开透视图:BOS业务建模工具5、在-》业务单元管理:按右键,选择导入解决方案6、按:选择测试1、代码目录结构如下所示每个业务对象在bos中发布都会将代码发生成到下面的目录中。

例如采购订单:com\kingdee\eas\sample\day4\PurOrdercom\kingdee\eas\sample\day4\ PurOrder\appcom\kingdee\eas\sample\day4\ PurOrder\client在bos中的java视图中可以看到如图的结构:以上图为例,对于一个实体对象如:采购订单1.1目录com\kingdee\eas\sample\day4\PurOrder的类AbstractPurOrderInfo.java 作为值对象的超类PurOrderInfo.java 值对象IPurOrder.java 实体对象接口PurOrder.java 该接口的实现类PurOrderCollection.java 对象集合类PurOrderFactory.java Factory类PurOrder Info.java 值对象I PurOrder.java 实体对象接口PurOrder Collection.java 对象集合类PurOrder Factory.java Factory类1.2目录com\kingdee\eas\sample\day4\PurOrder\app的类AbstractPurOrderControllerBean 超类PurOrderControllerBean 实现类PurOrderController常用类:PurOrder ControllerBean 实现类1.3目录com\kingdee\eas\sample\day4\PurOrder\client的类AbstractPurOrderEditUIAbstractPurOrderListUIPurOrderEditUI 编辑界面类PurOrderListUI 列表界面类AbstractPurOrderEditUI_l1.properties 为指定语言保留AbstractPurOrderEditUI_l2.propertiesAbstractPurOrderEditUI_l3.propertiesAbstractPurOrderEditUI.properties 多语言支持AbstractPurOrderListUI_l1.propertiesAbstractPurOrderListUI_l2.propertiesAbstractPurOrderListUI_l3.propertiesAbstractPurOrderListUI.properties2、常用类说明及代码层次结构以采购订单为例:IPurOrder作为创建,更新及其他操作‘采购订单’实体对象的接口。

金蝶EAS_BOS开发典型示例代码

金蝶EAS_BOS开发典型示例代码
CurrencyInfo cur = new CurrencyInfo();
6 7 8 9 ( ) ICurrency c = CurrencyFactory. getLocalInstance (ctx);//
c. getCurrencyCollection();
14.
特别控件的初始化
1 ComboBox
// Y`y T U 1 Y`tG
Y ` y CurrencyCollection co = c. getCurrencyCollection ();// 2 Y`$ tG
Y ` y CurrencyCollection co = c.getCurrencyCollection(evi);// 3 Y` oql $ t G
¤"# '( )
PaymentBillInfo payInfo = new PaymentBillInfo();
payInfo.setNumber(“1001”);
//01 2 3
UserInfo userInfo = new UserInfo();
userInfo.setId(BOSUuid.read("867d5df6-00f8-1000-e000-0009c0a81089sysu"));
6 7 d e f String id="8b35b903-00f8-1000-e000-0008c0a81089errt";
ObjectUuidPK pk = new ObjectUuidPK(BOSUuid.read(id));//
c.getValue(pk); : c.getCurrencyInfo(pk);

EAS_BOS开发KDTable常用处理代码

EAS_BOS开发KDTable常用处理代码

目录1.如何使得KDTable支持多行文本的显示 (1)2.如何设置KDTable向下键自动新增行 (2)3.如何设置KDTable Tab键和Enter键自动新增行 (2)4.如何调整KDTable的Tab键和enter键的行为 (2)5.KDTable如何根据内容自动调整行高列宽 (3)6.KDTable的排序要如何实现 (3)7.KDTable部分数据导出到excel后显示格式不一致 (4)8.如何控制KDTable的显示格式 (5)9.如何理解KDTable的Render和Editor (5)10.如何在取数之后,调整KDTable单元格的内容或者显示格式 (6)11.KDTable刷新后,滚动条跳到最后修改位置 (6)12.如何通过代码控制KDTable新增行 (6)13.对于分录设置排序 (7)14.EAS Bos 合计行代码 (7)15.EASBos 对于某个权限的验证 (9)16.关于Bos 开发中使用字段类型是选择已有基础资料的的源代码 (10)17.关于对EASbos 分录设定默认值 (10)18.关于eas 单据中有多个分录的情况下,默认是哪个实现了排序 (11)19.eas bos 客户端常用代码 (11)20.关于验证常用的几个类文件和代码 (12)21.EAS多分录单据分录添加按钮,加到最左边 (13)22.禁用EAS多分录单据分录上的操作按钮 (14)23.显示EAS标准单据自带kdtable(kdtEntry) 右键导出excel菜单 (15)24.列表界面根据情况设置单行背景色高亮 (16)25.修改ListUI的表体列的显示文字 (17)26.KDTable显示枚举 (17)27.枚举在KDTable中显示数字解决 (17)28.添加统计行 (18)29.序时簿上的排序设置 (18)30.KDTable单元格如何格式化显示。

(19)31.EAS单据分录的一些初始化设置 (19)32.EAS设定分录按钮快捷键 (19)1.如何使得KDTable支持多行文本的显示只需要给KDTable的列设置一个多行显示的属性即可。

金蝶EAS-BOS常用控件属性、方法、事件.pdf

金蝶EAS-BOS常用控件属性、方法、事件.pdf

种类 名称 说明 例子CombBox addItem 将枚举的值加入下拉列表选项 dataType.removeAllItems();dataType.addItem(DataTypeEnum.SUMDATA);dataType.addItem(DataTypeEnum.ELIMDATA);dataType.setSelectedItem(DataTypeEnum.SUMDATA); txtDataType.setText(DataTypeEnum.SUMDATA.getAlias());CombBox removeAllItems 删除下拉列表的所有选项 this.listOrgBound.removeAllItems();CombBox setModel 使用值对象集合给ComboBox控件赋值DefaultComboBoxModel model = newDefaultComboBoxModel();ICsAccountTable iAccountTable =CsAccountTableFactory.getRemoteInstance();CsAccountTableCollection tableInfos =iAccountTable.getCsAccountTableCollection();Iterator ter = tableInfos.iterator();while (ter.hasNext()){CsAccountTableInfo tableInfo = (CsAccountTableInfo) ter.next();model.addElement(tableInfo);}this.cbxMain.setModel(model);CombBox setSelectedItem 动态设置下拉列表选择项的值 this.listCurrency.getModel().setSelectedItem(currency1);ComboTreeDetailListUI buildTreeFilter 构造查询子节点(右表)数据的过滤条件,默认实现为在EntityViewInfo中添加一个getQueryFieldName()=treeNodeInfo的过滤条件,即查询对象的某个属性关联到Tree节点所代表的对象。

BOS_集成消息中心开发指导

BOS_集成消息中心开发指导

1.1. 接口方法说明public boolean addMessage(WSMessage message)用于在第三方系统中添加消息,其中参数message包含一些消息的信息,这个方法在消息中心获得新的消息的时候会主动调用。

public boolean removeMessage(String ID)用于EAS消息中心主动删除第三方系统相应的消息记录,参数ID是WSMessage中的MsgID字段的值,这个方法是在消息中心删除消息的时候会调用。

public boolean updateMessage(String ID)与消息中心消息状态同步接口,参数ID是WSMessage中的MsgID字段的值。

这个接口是现实的是当鼠标点击在某条消息上时改变消息状态的情况下被调用。

public boolean updateMessages(String IDs, MsgStatus state)与消息中心消息状态同步接口,参数IDs是多条消息的MsgID的值的集合,state是要设置消息的状态值,这个接口是在界面上按下"设置消息已读"或"未读"按钮时被调用。

1.2. 配置文件说明eas\server\deploy\portalconfig\easWebConfig.xml文件中有如下的配置项<configitem name="otherSystem"><!--是否启用与第三方系统消息集成--><attribute key="toSys" value="true" /><attribute key="letGet" value="true"/></configitem>配置项的value值是"true",启用功能。

金蝶EAS BOS V5.4服务端常用代码

金蝶EAS BOS V5.4服务端常用代码

6 78a ) ( bc de f
hi
a
App g
PurOrderControllerBean p q r st u
) v w x ¡y ¡ % & i &
s
1 、
提交控制
Q 5 ( d e f Q g h i j Q
* @param permItemName

¨
* @return
true: false:Ä
* @throws BOSException
* @throws EASBizException
* @author:ryanzhou
*/
public boolean hasFunctionPermission( IObjectPK userPK, IObjectPK orgPK, String permItemName)

//
number
checkNumber(ctx, otherBillInfo);
v
//
o
checkNumberDup(ctx, null, purOrderInfo );
f A z
// setDefaultValue(ctx, purOrderInfo);
5 Q 6 78
a ) 3 i
pqr
protected void _addnew(Context ctx, IObjectPK pk, IObjectValue model)
throws BOSException, EASBizException {
PurOrderInfo purOrderInfo = (PurOrderInfo) model;

金蝶BOS开发中Edit编辑界面和List叙事薄界面需要写的代码

金蝶BOS开发中Edit编辑界面和List叙事薄界面需要写的代码

⾦蝶BOS开发中Edit编辑界⾯和List叙事薄界⾯需要写的代码本⼈刚开始从事⾦蝶EAS开发,对于这个也是刚刚解除,下⾯是⼀些学习整理,EditUI中的代码public class MyBillEditUI extends AbstractMyBillEditUI{public MyBillEditUI() throws Exception{super();}//把数据对象加载到当前UI界⾯相应的控件public void loadFields(){super.loadFields();}//同步当前UI业务数据到数据对象public void storeFields(){super.storeFields();}//进⾏某些控件或数据设置public void onLoad() throws Exception {IColumn column = this.kdtEntries.getColumn(1);column.getStyleAttributes().setLocked(true);super.onLoad();this.actionSubmit.addService( new ForewarnService() ) ;this.actionSubmit.addService( new WorkFlowService() ) ;this.actionSubmit.setBindWorkFlow( true ) ;}//创建新的数据对象,并设置初始值protected IObjectValue createNewData() {MyBillInfo result = new MyBillInfo();result.set*(value);result.getEntries();return result;}//创建分录数据对象,并设置初始值protected IObjectValue createNewDetailData(KDTable table) {return new MyBillEntryInfo();}//获取分录tableprotected KDTable getDetailTable() {return kdtEntries;}//获取业务接⼝protected ICoreBase getBizInterface() throws Exception {return MyBillFactory.getRemoteInstance();}//检验数据的合法性,并抛出异常protected void verifyInput(ActionEvent e) throws Exception {if (this.getDataObject()==null){ throw new Exception();}}//设置某些字段==nullprotected void setFieldsNull(AbstractObjectValue newData) {newData.set**(null);}//保存数据public IObjectPK runSave() throws Exception {//设置editData的某些值super.runSave();}//同runSavepublic IObjectPK runSubmit() throws Exception{…super.runSubmit();}//修改后是提交或暂存 true为暂存 false为提交protected boolean isModifySave(){return false;}ListUI中的代码public class MyBillListUI extends AbstractMyBillListUI{public MyBillListUI() throws Exception{super();this.setUITitle("单据测试");}/***把数据对象加载到当前UI界⾯相应的控件,针对序事薄没有⽤处*/public void loadFields(){super.loadFields();}/***同步当前UI业务数据到数据对象,针对序事薄没有⽤处*/public void storeFields(){super.storeFields();}/***提供序事薄需要打开的编辑界⾯UI的类名*/protected String getEditUIName() {return MyBillEditUI.class.getName();}/***返回当前业务的远程或本地业务接⼝*/protected ICoreBase getBizInterface() throws Exception {return MyBillFactory.getRemoteInstance();}/***由开发⼈员提供当前table的主键字*/protected String getKeyFieldName() {return "id";}/***如果业务需要融合某些列,需要提供这些列的key(即融合单据头)*/public String[] getMergeColumnKeys(){String[] mergeColumn = new String[2];mergeColumn[0] = new String("id");mergeColumn[1] = new String("number");return mergeColumn;}/***要在状态栏显⽰当前的单据条数,需要业务返回计算单据条数的字段*/protected String[] getCountQueryFields(){return new String[] {“id“};}/***可以指定当前窗⼝的打开模式,默认情况下不⽤指定* UIFactoryName.MODEL,UIFactoryName.NEWWIN,UIFactoryName.NEWTAB*/protected String getEditUIModal(){return UIFactoryName.MODEL;}/***是否需要进⾏表格排序,业务可以覆盖返回false,屏蔽点击单据头排序动作*/protected boolean isOrderForClickTableHead(){return true;}/***返回不需要排序的表列数组,默认返回null*/protected String[] getNotOrderColumns(){return null;}/***可以在⽗类的onload后做⼀些⾃⼰的事情*/public void onLoad() throws Exception {super.onLoad();//如设置滚动条隐藏//this.getMainTable().setScrollStateVertical(KDTStyleConstants.SCROLL_STATE_HIDE); }/***允许构造传递给EditUI的UIContext,继承类实现*/protected void prepareUIContext(UIContext uiContext, ActionEvent e){super.prepareUIContext(uiContext,e);//传递⾃⼰的上下⽂参数或其他值uiContext.put(key,value);}/***关闭窗⼝*/public boolean destroyWindow() {super.destoryWindow();//做⾃⼰的⼀下销毁动作}}EditeUI 类是客户端编辑界⾯对应的类ListUI 类是客户端叙事簿界⾯对应的类。

金蝶EAS_V7.5_开发指南_BOS Web应用开发平台(WAFⅡ)

金蝶EAS_V7.5_开发指南_BOS Web应用开发平台(WAFⅡ)

金蝶EAS V7.5 BOS Web应用开发平台WAFⅡ开发指南金蝶软件(中国)有限公司2012年10月●概述本文旨在对BOS W AFⅡ的架构体系与开发模型进行描述,目的是开发人员能够在项目开发前或开发过程中对WAFⅡ整体架构有一个简单的了解,并且熟练利用BIM工具基于WAFⅡ进行项目开发.●读者对象基于金蝶EAS7.0.3及以上版本进行的标准业务系统开发或项目开发人员,设计师以及架构师.●约定●符号约定表示有潜在风险,如果忽视这些文本,可能导致操作错误、数据丢失、设备性能降低或不可预知的结果。

表示可以帮助您获取更多相关信息或提示您通过其它方式也可以获得相同结果。

强调或补充说明所描述的信息。

1 概述 (1)1.1 WAFⅡ技术框架概览 (1)1.1.1 视图层(View) (1)1.1.2 前端逻辑层(Controller) (2)1.1.3 后端服务层(ControllerBean) (2)1.2 WAFⅡ运行期生命周期 (3)1.2.1 流程说明 (4)2 WAFⅡ视图层(View)详解 (5)2.1.1 页面(JSP) (5)2.1.2 视图逻辑(JS) (9)2.1.3 常用工具方法 (11)3 WAFⅡ前端逻辑层(Controller)详解 (13)3.1.1 前端逻辑层概述 (13)3.1.2 超类体系 (15)3.1.3 常用工具方法 (15)4 WAFⅡ后端逻辑层详解 (16)5 基于WAFⅡ的业务模板开发应用 (16)5.1 基础资料模板 (16)5.1.1 标准基础资料模板(generalDataBase) (16)5.1.2 多级基础资料模板(treeDataBase) (18)5.1.3 分组基础资料模板(groupDataBase) (19)5.1.4 批量基础资料模板(generalDataBaseBatch) (21)5.1.5 批量多级基础资料模板(treeDataBaseBatch) (22)5.1.6 批量分组基础资料模板(groupDataBaseBatch) (23)5.2 业务单据模板 (25)5.2.1 标准业务单据模板(generalBill) (25)5.3 简单业务模板 (27)6 基于WAFⅡ开发自定义模板 (27)7 WAFⅡ常用业务组件的使用 (28)7.1 表格组件(dataGrid) (28)7.1.1 功能描述 (28)7.1.2 使用方式 (28)7.1.3 属性定义 (29)7.1.4 常用方法 (29)7.1.5 Action列表 (30)7.2 树组件(dataTree) (30)7.2.1 功能描述 (30)7.2.2 使用方式 (30)7.2.3 属性定义 (31)7.2.4 常用方法 (31)7.2.5 Action列表 (32)7.3 快捷查询组件(quickSearch) (33)7.3.1 功能描述 (33)7.3.2 使用方式 (33)7.3.3 属性定义 (33)7.3.4 常用方法 (34)7.3.5 Action列表 (35)7.4 常用查询组件(simpleQuery) (35)7.4.1 功能描述 (35)7.4.2 使用方式 (35)7.4.3 属性定义 (35)7.4.4 常用方法 (36)7.4.5 Action列表 (36)7.5 高级查询组件(commonQuery) (36)7.5.1 功能描述 (36)7.5.2 使用方式 (37)7.5.3 属性定义 (37)7.5.4 常用方法 (37)7.5.5 Action列表 (38)7.6 快捷列表组件(quickList) (38)7.6.1 功能描述 (38)7.6.2 使用方式 (38)7.6.3 属性定义 (38)7.6.4 常用方法 (39)7.6.5 Action列表 (39)7.7 附件管理组件(webAttachment) (39)7.7.1 功能描述 (39)7.7.2 使用方式 (39)7.7.3 属性定义 (40)7.7.4 常用方法 (40)7.7.5 Action列表 (41)7.8 套打组件(report) (42)7.8.1 功能描述 (42)7.8.2 使用方式 (42)7.8.3 属性定义 (43)7.8.4 常用方法 (43)7.8.5 Action列表 (43)7.9 工作流组件(workflow) (43)7.9.1 功能描述 (43)7.9.2 使用方式 (44)7.9.3 Action列表 (44)7.10 BOTP组件(botp) (45)7.10.1 功能描述 (45)7.10.2 使用方式 (45)7.10.3 Action列表 (46)7.11 引入引出组件(dataImpExp) (46)7.11.1 功能描述 (46)7.11.2 使用方式 (47)7.11.3 属性定义 (47)7.11.4 常用方法 (48)7.11.5 Action列表 (48)8 基于WAFⅡ开发自定义Web业务组件 (48)8.1 自定义开发组件 (49)9 基于BIM开发WAFⅡ应用 (51)10 参考 (51)10.1 WAFⅡ开发规范 (51)10.1.1 JSP开发规范 (51)10.1.2 JS类开发规范 (52)10.1.3 Web Controller开发规范 (54)10.2 WAFⅡ超类体系 (55)10.3 WAFⅡ视图层逻辑常用工具类详解 (55)10.4 WAFⅡ前端逻辑层常用工具类详解 (57)10.5 WAFⅡ标签库参考 (57)10.5.1 <waf.xxxx /> (58)10.5.2 <wafctrl.xxxx /> (59)10.5.3 <wafbiz.xxxx /> (60)10.6 WAFⅡ控件使用参考 (60)10.7 基于WAFⅡ进行二次开发的常见业务场景 (60)10.7.1 初始化值对象 (60)10.7.2 页面初始化. (61)10.7.3 新增分录行时,对新增的分录行数据进行初始化. (62)10.7.4 某F7控件改变值时,连带更新其它控件的值. (63)10.7.5 在单据分录明细中,某F7型编辑列数据改变值时,连带更新数据列的值 (64)10.7.6 单据分录中的金额或数量的合计,并更新至单据头中. (65)10.7.7 自定义界面的实现. (66)10.7.8 WEB界面中非model属性的设值与获取. (68)10.7.9 单据头的属性更改引起明细行中的某个F7型数据列的可选范围变更. (69)1 概述本章主要对W AFⅡ的技术架构体系进行描述,读者可通过本章对W AFⅡ的技术架构体系有一个全面的认识与了解,方便后期基于W AFⅡ作其它应用模块的设计与项目开发.1.1 WAFⅡ技术框架概览WAFⅡ技术架构概览1.1.1 视图层(View)●职责视图层主要选用JSP2.0作为核心展现技术,为实现AJAX及更好的用户体验,并方便开发人员掌握及易于使用,选用目前非常流行的JQuery作为JS库,控件方面以风格统一、功能强大并稳定性和扩展性较好的JQueryUI作为基础控件库,并结合JQGrid 与JSTree等树、表控件,构成W AFⅡ的标准控件库。

EAS-BOS应用框架编程指南

EAS-BOS应用框架编程指南

状态配置表
下表列出了所有已知的数据状态属性,这些属性将作为基础的状态属性供定义具体的业务 对象时选择使用。
状态 状 状态枚举类型 名 态 描 述 生效 0: EffectedStatusEnum 状态 暂 存
属性名
字段名
EffectedStatus
FEffectedStatus
1: 生 效 作废 0: DeletedStatusEnum 状态 普 通
DeletedStatus
FDeletedStatus
1: 作 废 审核 0: CheckedStatusEnum 状态 未 审 核 1: 已 审 核 冻结 0: BlockedStatusEnum 状态 未 冻 结
CheckedStatus
FCheckedStatus
BlockedStatus
FBlockedStatus
原始单据ID String String
sourceFunction 来源功能
方法
名称 checkOut passAudit UnpassAudit Freeze Unfreeze checkStatusFreeze checkNumberDup checkNumberBlank 描述 结清(关闭)业务数据 审核通过 设置为未审核状态 冻结业务数据 解冻业务数据 检查业务数据是否被冻结 检查单据编号是否重复 检查单据编号是否为空
1.3. 普通业务对象超类ObjectBase
属性
名称 Creator CreateTime LastUpdateUser 描述 创建者 创建时间 最后修改 者 数据类型 连接属性——连接 到用户 Timestamp 连接属性——连接 到用户 Timestamp 对应字段 FCreatorID FCreateTime FLastUpdateUserID FLastUpdateTime

金蝶EAS BOS V5.4的代码结构体系

金蝶EAS BOS V5.4的代码结构体系

r # 3¢ # " !s ' & 6 5v u t m l ¦
PurOrderControllerBean
D m l ¢ ¡ 0 7 ¢ E © ¡ 0 7 t m l ¢ " ! ¢ ~ 0 8 ! ¢ " !s ' & % $ 2 ¡ r
java
PurOrderControllerBean
PurOrderEditUI PurOrderListUI Day4Resource.properties
2、 常用类说明及代码层次结构 、 常用类说明及代码层次结构 以采购订单为例
IPurOrder
U TS RQ P
X WS RV
6 5¢ # " !s ' & % $ 2 q p i h g f e d 2 r
的代码结构体系 金蝶 EAS BOS 的代码结构体系
1、 代码目录结构 、 如下所示每个业务对象在 bos 中发布都会将代码发生成到下面的目录中 例如采购订单: com\kingdee\eas\sample\day4\PurOrder com\kingdee\eas\sample\day4\ PurOrder app com\kingdee\eas\sample\day4\ PurOrder client
PurOrderInfo IPurOrder PurOrderCollection PurOrderFactory
com\kingdee\eas\sample\day4\PurOrder\app
¢ ¤ © ¨ §¦ ¥¡ ¤ £
Factory
¢¡
CBA CBA CBA CBA

金蝶EAS_V7.5_编码规则用户手册

金蝶EAS_V7.5_编码规则用户手册

金蝶BOS_V7.5编码规则用户手册前言概述本手册主要介绍金蝶BOS_V7.5编码规则的基本概念、常用功能、典型案例以及详细的界面参数等内容。

本手册的内容可以满足不同层次的使用用户,初学者可以通过本文档迅速掌握编码规则的基本操作过程;熟悉编码规则的编程人员也可以通过阅读本手册进行二次开发。

读者对象本手册适用于金蝶BOS_V7.5编码规则的应用用户●测试人员:熟悉编码规则模块,了解编码规则常用功能。

●开发工程师:了解业务组件对编码规则集成方案。

约定本处对文中通用信息作如下约定●$EAS_HOME表示EAS服务器安装的根目录,即安装过程中输入的本地路径。

●$BOS_HOME表示BOS工具的安装根目录,即安装过程中输入的本地路径。

目录1 编码规则 (1)1.1 概念定义 (1)1.2 规则定义 (1)2 常用功能 (3)2.1 编码规则模板导出 (3)2.2 编码规则应用范围优先策略 (3)2.3 不允许断号、新增显示、新增显示且不允许断号 (4)2.4 断号维护 (6)2.5 属性参与编码 (8)2.6 对生成编码的控制 (8)2.7 多适用条件 (9)2.8 多应用字段 (11)3 案例 (14)4 提供给用户的接口 (17)1 编码规则1.1 概念定义编码:对于业务管理中的基础资料和业务单据,我们都要用一个唯一的、有意义的标识符来表示,这个标识符,就是编码。

编码规则:对于同一类型的基础资料和业务单据,我们必须采用统一的编码生成策略进行管理,这个编码生成策略,就是编码规则。

1.2 规则定义进入方法:系统平台->编码规则->规则定义编码规则系统流程图主要属性类别:●固定值:标识编码业务对象的含义,可以由用户按自己的设计要求,定义固定值的具体内容:通常为英文缩写或中文缩写,例如:借款单-20051115-001LRB-20051115-001●属性值:用户可以将当前业务对象的属性参与编码。

金蝶KIS BOS 实例讲解

金蝶KIS BOS 实例讲解

金蝶KIS BOS 实例讲解(续)新增报表名称好后开始到输入SQL语句了..SQL语句最好在查询分析器调试好后再进行粘贴....语句如图:源码:Set Nocount Onselect IDENTITY(int,1,1)AS ID,t4.fname,sum(fqty) fqty,sum(famount) famount INTO #from icstockbill v1,icstockbillentry v2,t_department t3,t_emp t4,t_stock t8where v1.finterid=v2.finterid andv1.fdeptid=t3.fitemid and v1.ftrantype='21' and v1.fstatus='1' and v1.fempid=t4.fitemid and v1.fdcstockid=t8.fitemidand {strfdatefrom} and {strfdateto}---这里是时间过滤所需要的。

and {strfnumberfrom} and {strfnumberto}---这里是职员代码过滤所用到的group by t4.fname order by v2.famount descselectcase when '第'+cast((case when id=1 then id else id end)as varchar)+'名'='第1名'then '销售冠军' else '第'+cast((case when id=1 then id else id end)as varchar)+'名'end as uid,fname,fqty,famountfrom #drop table #下一步如图:下一步: 如图完成:然后导出报表:导入\发布报表到专业版看效果....导入后..开始添加:在系统_自定义报表维护_报表修改里面添加添加成功...开始查看.双击打开:最后效果: 嘿嘿..!!!OK...完成..总结:虽然只是一个纯SQL语言的报表...但是在过滤查询方面的确是挺灵活的...有人说KIS BOS是一个查询分析器简直是蒙客户.呵呵..我只能说蒙从何来,一个免费的东西.且过滤功能又这么方便. 它只适用小型企业.所以它叫KIS....想使用更多功能上K/3 EAS去话说多了点了....言归正传.这里取数取的是"销售出库单"数量跟金额...(已审核的)本来想加个退货合计的...但限于还一直想不出.所以免了..END希望KIS BOS越做越好!!!!.。

EASBOS典型服务端Coding

EASBOS典型服务端Coding

EASBOS典型服务端Coding典型的服务端Coding服务端代码的编写主要针对App目录下的PurOrderControllerBean 实现类,典型的代码有新增、修改、检验等操作,下面作分别介绍:提交控制用户在编辑界面上点击‘保存’按钮时应用框架会调用PurOrderControllerBean的submit 方法,通过重载PurOrderControllerBean父类的submit方法,可以对要新增、修改的数据进行校验、修正或做一些相关的判断:protected IObjectPK _submit(Context ctx, IObjectValue model)throws BOSException, EASBizException{PurOrderInfo purOrderInfo = (PurOrderInfo) model;//记录是否是新增,false表示是修改,据此可以作相关操作boolean isAddNew = true;if(purOrderInfo.getId()!=null&&_exists(ctx,new ObjectUuidPK(purOrderInfo.getId()))){isAddNew = false;}//检查是否设置number//checkNumber(ctx, otherBillInfo);//调用父类的方法检查是否有重号//super._checkNumberDup(ctx, null, purOrderInfo );// 设置值对象中的一些默认值setDefaultValue(ctx, purOrderInfo);//校验值对象中的属性是否合法checkValid(purOrderInfo);//调用框架的提交方法return super._submit(ctx, purOrderInfo);}对于用户在编辑界面上点击‘暂存’按钮时调用_save(Context ctx, IObjectValue model)方法,其操作过程与调用_submit方法类似_update(Context ctx, IObjectPK pk, IObjectValue model)方法供更新操作调用权限检查先了解一下权限接口类提供的有关权限项检查的方法/**** 描述:返回用户是否具有某项功能的权限* @param userPK 验权用户PK* @param orgPK 验权组织PK* @param permItemName 权限项名称* @return true:有权 false:无权 * @throws BOSException* @throws EASBizException* @author:ryanzhou*/public boolean hasFunctionPermission(IObjectPK userPK,IObjectPK orgPK,String permItemName)throws BOSException, EASBizException;/**** 描述:返回用户是否具有某项功能的权限* @param userPK 验权用户PK* @param orgPK 验权组织PK* @param uiPK UI元数据PK* @param actionPK 业务操作的PK* @return true:有权 false:无权 * @throws BOSException * @throws EASBizException* @author:ryanzhou*/public boolean hasFunctionPermission(IObjectPK userPK,IObjectPK orgPK,IMetaDataPK uiPK,IMetaDataPK actionPK)throws BOSException, EASBizException;/**** 描述:检查用户是否具有某项功能的权限,* 无权时会抛出包含提示信息的业务异常* @param userPK 验权用户PK* @param orgPK 验权组织PK* @param permItemName 权限项名称* @throws BOSException* @throws EASBizException* @author:ryanzhou*/public void checkFunctionPermission(IObjectPK userPK,IObjectPK orgPK,String permItemName)throws BOSException, EASBizException;/**** 描述:检查用户是否具有某项功能的权限,* 无权时会抛出包含提示信息的业务异常* @param userPK 验权用户PK* @param orgPK 验权组织PK* @param uiPK UI元数据PK* @param actionPK 业务操作的PK* @throws BOSException* @throws EASBizException* @author:ryanzhou*/public void checkFunctionPermission(IObjectPK userPK,IObjectPK orgPK,IMetaDataPK uiPK,IMetaDataPK actionPK)throws BOSException, EASBizException;具体调用方法:com.kingdee.eas.base.permission.IPermission perm= null;perm =PermissionFactory.getLocalInstance(ctx );perm.hasFunctionPermission(userPK, orgPK, uiPK,actionPK);通过返回boolean值确定是否具有相应的权限项,根据不同的应用场景调用不同的应用方法检验操作的功能权限或数据权限。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

create(
m n o ( ) u v w "com.kingdee.eas.basedata.master.auxacct.client.AccountSelectUI", /*
*/
map);
2 x h uiWiYnd`owe.shfowi(y); t G
private void loadContext()
//cjp cu
CtrlUnitInfo cuInfo = (CtrlUnitInfo) this.getUIContext().get("cu");
AsstAccountInfo asstAccountInfo = (AsstAccountInfo) this.getUIContext().get("auxAccount");
3 单据新增代码
! //"# $ !% &
¤"# '( )
PaymentBillInfo payInfo = new PaymentBillInfo();
payInfo.setNumber(“1001”);
//01 2 3
UserInfo userInfo = new UserInfo();
AuxAccountEditUI ui = (AuxAccountEditUI) this.getUIContext().get("Owner");
}
12 给 Query 传过滤条件
EntityViewInfo evi = new EntityViewInfo();
6 7 5 $ FilterInfo filterInfo = new FilterInfo(); //
userInfo.setId(BOSUuid.read("867d5df6-00f8-1000-e000-0009c0a81089sysu"));
BOSUuid 6 7 8 9 ( )
userInfo.setName(“John”);
userInfo.setNumber(“2000”);
// 4 5
this.execQuery();
13.
接 3口z方3 {法|的}访问方式
CurrencyInfo cur = new CurrencyInfo();
6 7 8 9 ( ) ICurrency c = CurrencyFactory.getRemoteInstance();//
c4.ge~tCurr{en|cy}Collection();
// PaymentBillInfo payInfo2 = iPayBill.getValue(pk);
4.p
q
单据修改代码
$ !%&
IPaymentBill iPayBill = PaymentBillFactory.getRemoteInstance();
6 7 d e f String id="8b35b903-00f8-1000-e000-0008c0a81089errt";
evi.getSelector().add(new SelectorItemInfo("*")); evi.getSelector().add(new SelectorItemInfo("company.id")); evi.getSelector().add(new SelectorItemInfo(""));
S2TUVWX II`POa'byjme(cetPn)tKBip¤lkl i=PiaiyPBayilBl i=ll.Paadydmneewnt(BpailylFInafcoto);r/y/W.geXtR'em(ot)eInasbtancced();e//Yf`a8g9h4 5 d e f Y
5. 单据删除代码
4 iPayBill.remove(pk);// 5 d e f u v! G wx Y ` y
6. 单据回写代码
7. 单据反写代码
8. 单据审核代码
9. 获取集合
CurrencyInfo cur = new CurrencyInfo();
6 7 8 9 ( ) ICurrency c = CurrencyFactory.getRemoteInstance();//
itemInfo.setLineNo(34); itemInfo.setAmounts(ex2);
Q R I P payInfo.getEntries().add(itemInfo);// Q R I P payInfo.getEntries().add(new ErrandTaskItemInfo());//
D E@ A payInfo.setAuditDate(new Date(System.currentTimeMillis()));//
Timestamp createdate = new Timestamp(System.currentTimeMillis()); payInfo.setCreateDate(createdate);
11.
界面之间传递参数
1 ydefghity
HashMap map = new HashMap();
map.put("Owner", this); //j k lm n o UI UI ( )
map.put("EASMode", new Integer(this.EASMode)); map.put("table", this.accountTablePrompBox.getData()); map.put("cu", currentCtrlUnit); map.put("auxAccount", this.asstAccountPromptBox.getData());
i.getFilterItems().add( new FilterItemInfo("id", "ddff", CompareType.EQUELS));
i. setMaskString(" (#0 and #1)");
Q evi.setFilter(i);// R 5 $ Q R Y ` @ A evi.getSelector().add(new SelectorItemInfo("id"));//
filterInfo.getFilterItems().add( new FilterItemInfo("typelink.id", info.getId(), CompareType.EQUALS));
filterInfo.getFilterItems().add( new FilterItemInfo("currencyCompany.id", companyID, CompareType.EQUALS));
{
int mode = ((Integer)this.getUIContext().get("EASMode")).intValue();
AccountTableInfo accountTableInfo = (AccountTableInfo) this.getUIContext().get("table");
public void setReceiveType() { this.kDComboBox2.removeAllItems(); List list = new List(); Iterator it = ReceiveType.iterator(); while (it.hasNext()) { list.add(ReceiveType.getEnum(it.toString()).toString()); } }
6 7 % & EntityViewInfo evi = new EntityViewInfo();// 6 7 5 $ FilterInfo i = new FilterInfo();//
i.getFilterItems().add( new ItemInfo("number", "ddff", CompareType.EQUELS));
// Y`y T U 1 Y`tG
Y ` y CurrencyCollection co = c. getCurrencyCollection ();// 2 Y`$ tG
Y ` y CurrencyCollection co = c.getCurrencyCollection(evi);// 3 Y` oql $ t G
CurrencyInfo cur = new CurrencyInfo();
6 7 8 9 ( ) ICurrency c = CurrencyFactory. getLocalInstance (ctx);//
c. getCurrencyCollection();
14.
特别控件的初始化
1 ComboBox
ObjectUuidPK pk = new ObjectUuidPK(BOSUuid.read(id));//
Y ` ' ( ) r PaymentBillInfo payInfo = iPayBill.getValue(pk);// Y ` @ A System.out.println("this:"+ payInfo.getExchangeRate());// p q @ A @ A payInfo.setExchangeRate(ex);// s t G iPayBill.update(pk, payInfo);//
相关文档
最新文档