EAS-BOS开发问题与解决(2)

2019-08-30 20:43

如何在java文件中添加一个F7控件

备注:

由于不允许在标准产品上面添加控件,所以只能够在java上面添加。 解决:

可参考F7业务控件指南(KDBizPromptBox)使用指南。

在这里只写上一些基础配置。一般使用F7都给包含在一个KDLabelContainer控件里面。 创建一个KDLabelContainer控件

this.borrowContain = new com.kingdee.bos.ctrl.swing.KDLabelContainer(); 创建一个KDBizPromptBox控件

this.borrowBox= new com.kingdee.bos.ctrl.extendcontrols.KDBizPromptBox(); 将KDBizPromptBox附在KDLabelContainer上面。 borrowContain.setBoundEditor(borrowBox); 设置一个弹出窗口

FilterInfo filter = new FilterInfo();

FilterItemCollection fic = filter.getFilterItems();

fic.add(new FilterItemInfo(\fic.add(new FilterItemInfo(\filter.setMaskString(\

AccountPromptBox apb = new AccountPromptBox(this, company.getAccountTable(), filter);

设置一些属性。

设置borrowBox为可编辑

this.borrowBox.setEditable(true); 设置borrowBox的编辑格式

this.borrowBox.setEditFormat(\设置borrowBox的显示格式

this.borrowBox.setCommitFormat(\设置borrowBox的提交格式

this.borrowBox.setDisplayFormat(\

设置borrowBox的查询对象

this.borrowBox.setQueryInfo(%untViewQuery\

设置borrowBox的弹出窗口

this.borrowBox.setSelector(apb);

在查询页面上保存一个方案的时候是如何得到页面上各个控件的值。

解决:

由于保存一个查询方案的时候是由QueryToolBar类中的saveButton_actionPerformed方法执行的。而该方法又通过调用getCustomerParams()方法来获得界面上各个控件的值。如果控件是通过java文件上添加的,就是不是在标准产品上面改的,所以必须在getCustomerParams()方法中设置调用setObject()方法进行设置。 例子:

Debitvalue为一个引用。

RptParams params = super.getCustomerParams();

params.setObject(debitvalue,debitBox.getValue()==null?\

无法显示一个控件的值。

解决:

虽然上面的一个问题可以保存控件的值,但是要让控件保存的值显示出来,还需要添加一个方法setCustomerParams()方法,将控件的值设置进去。 例子:

if (params.getObjectElement(debitvalue) != null) {

debitBox.setValue(params.getObjectElement(debitvalue)); }

如何在页面显示时间格式,金钱格式

解决:

在UI的编辑表信息那里选择:时间的字段,然后在formatString 填入 “%r{yyyy-M-d}t”这个是显示年月日的。依次类推。 金钱格式为 #,###.00

在UI上面添加一个KDLable,会出现跟前面的控件重叠

解决:

设置KDLable的constrain中的anchor,看来这个是重要的属性。

EAS的查询是如何实现的

解决:(例子)

protected boolean isHasAttachMent(String bosid) throws Exception { CoreBaseCollection ass = (CoreBaseCollection) BoAttchAssoFactory .getRemoteInstance().getCollection(\ \

if (ass != null && ass.size() > 0) return true; return false;

}

解析:该例子很简单,但是不知道的人确实非常困惑。现在说明一下。

首先应该是BoAttchAssoFactory这个类,每一个实体都有一个factory这个类。这个例子的实体就是BoAttchAsso。这个factory类提供了一个远程的接口获取对象。CoreBaseCollection则是将这个对象包装起来。对象里面的内容就是根据里面的sql得出来的。注意该sql是用实体来查询的。不是数据库sql。FAttachmentID,boid都是BoAttchAsso实体里面的属性。这个例子总的就是说去实体里面找数据然后返回一个对象。

给实体新增了一个属性,如何获取该实体这个属性的值

解决:

给实体新增了一个属性,发布后都会在以Abstract开头的info类中产生get,set方法。 比如给实体BgAdjustBill新增了一个属性isNeedOrNotAttachment,发布后会在AbstractBgAdjustBillInfo类中产生这两个方法。 public boolean isIsNeedOrNotAttachment() {

return getBoolean(\ }

public void setIsNeedOrNotAttachment(boolean item) {

setBoolean(\

就采用editData. isIsNeedOrNotAttachment()方法获得属性的值。editData是在list页面传到edit页面上的对象,想要获取对象的值都可以通过editData。

Edit页面的数据如何保存

解决:

采用数据绑定。在Edit的UI界面选择数据绑定。 例子:

在edit和list页面分别有两个checkbox控件。想要让他们关联起来。

在edit的ui页面上选择数据绑定,选中要绑定的checkbox控件,由于是checkbox,所以是个bollean型的,选择其selected功能,再选择下一步绑定实体的属性。这样子就关联上了。点击保存的时候会将其保存。

弹出提示窗口的信息如何设置

解决:

MsgBox.showWarning(this, EASResource.getString(

BgAdjustBillHelper.RESOURCESTR, \其中mustBeSameOrg为资源文件.resource定义的名称。

如何融合行。变成如下的形式

现在的形式是如下。

解决:

private void setMergeColumn(boolean merge) { // 增加对于单据头的表格融合设置

String mergeColumnKeys[] = getMergeColumnKeys();

if (mergeColumnKeys != null && mergeColumnKeys.length > 0) { tblMain.checkParsed();

//指定KDTable要进行数据分组

tblMain.getGroupManager().setGroup(merge);

for (int i = 0; i < mergeColumnKeys.length; i++) {

//指明要对列进行分组

tblMain.getColumn(mergeColumnKeys[i]).setGroup(merge);

//指明要对列的分组进行单元融合

tblMain.getColumn(mergeColumnKeys[i]).setMergeable(merge); // 有些时候会因为刷新然后没有重新排序,所以就要写下面这一句。

tblMain.getGroupManager().group();

} } }

}

在每次执行查询后调用setMergeColumn(true)这个方法就行了。

// 返回需要融合的列

public String[] getMergeColumnKeys() {

//columnKeys数组是UI上面显示的字段名称,具体要融合哪些列,可以在table右键选择编辑表信息。里面有各个字段的名称。这里的字段还要按照顺序来排列,不允许中间有一个字段没有写进来,可以从编辑表信息里面查找,中间如果漏写了一个会没有效果,意思就是必须得按照顺序来排列。 String[] columnKeys = { \

\ \ return columnKeys;

如何添加功能快捷键?

解决:

this.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put( KeyStroke.getKeyStroke(\其中actionAddNew就是function。

2008-10-20 问题:

如何添加一个参数子系统树节点和参数? 解决:

参数子系统树节点可以通过直接修改xml文件来添加。标准产品的xml文件为: SubSystem.xml。政府行业新增加的文件为: SubSystem_industry.xml。

新增一个子系统数节点可以参考文章

EAS生成子系统树方法。

添加一个子节点的xml(例子)

其中fullname为包名。Parent表示父级目录的包名。isLeaf表示目录的层次。

添加完之后,必需停止服务,并且在控制管理台那里的工具选项选择产生子系统树。这个步骤最好在服务器上面做,本地运行产生子系统树貌似会出错。在服务器上面操作时,需要将eas\\server\\metas\\mdbview-metas.jar覆盖本地的所有这个包。完成后重起服务,进入系统平台->系统配置->参数设置。这时候会发现还没有出现刚才产生的节点。由于如果节点下面没有任何参数的话,此节点是不会显示的。现在为节点添加参数。选中任意一个节点,按


EAS-BOS开发问题与解决(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:工作手机使用管理办法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: