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

2019-08-30 20:43

客户端和服务端获取当前组织?

解决: 客户端:

com.kingdee.eas.common.client.SysContext 用法:

SysContext.getSysContext().getCurrentXXX();

服务器端:

com.kingdee.eas.util.app.ContextUtil 用法:

ContextUtil.getCurrentXXX(Context ctx) 当前组织的方法为getCurrentCtrlUnit();

如何获取当前页面元数据?

解决:

IMetaDataLoader loader = MetaDataLoaderFactory.getRemoteMetaDataLoader(); EntityObjectInfo entityInfo=loader.getEntity( new MetaDataPK (ProcessDocumentRuleEditUI.class.getName()));

【如何实现导入导出功能?】

解决:(实现非树形页面的导入导出) Step1.

实现导入导出,必须在其ListUI页面实现getExportParam和getImportParam方法,返回一个ArrayList,在其里面有一个DatataskParameter对象,该对象包含了导入导出的方式

datataskMode,有两种DatataskMode.ExpMode或者DatataskMode.ImpMode;说明alias“过程文档规则”和解决方案solutionName“ProcessDocumentRule”,这两个会出现在xls表格里面。如图:

对象的setContextParam()方法可以设置一些数据然后从服务端得到。 具体可参考(ProcessDocumentRuleListUI.java)。 Step2.

用administrator登陆,在系统平台->引入引出管理->引入引出模板管理,点击维护自定义

模板,选择新增模板,填写基本信息,进行字段设置。字段设置有规定,如果是非树形的,则用编码,是树形的则用长编码。(具体这个我觉得可以看对应的实体的属性列表中是否包含有TreeBase这个对象,有的话就要用长编码,没有的话就用编码,还有一点就是实体里面有关联属性的,要看关联属性对应的实体来决定长编码或者编码)除了这个还要设置实现类的名称,导入导出都会调用该类实现。新增完之后,导出该模板根据具体细节进行修改,删除掉刚才创建的模板,进入模板编辑在文件上面选择新增,引入模板。重新填写一些信息,保存模板就OK了。 Step3.

编写导入导出实现类(参考ProcessDocumentRuleImport.java)该类继承了AbstractDataTransmission,具体说明如下: 有两个变量,ALL_FIELDS是在模板设置的各个字段名称,All_OBJS指的字段对应实体的属性。还有必须实现方法transmit和getController,可以在transmit方法中进行数据的验证,验证成功后会转化为一个CoreBaseInfo。getController方法则返回一个工厂处理类。exportTransmit方法实现的是导出数据。getExportQueryInfo方法则是返回一个字符串,在进行数据导出的时候会去找对应的Query进行数据查询。

具体参考

D:\\Document\\文档\\导入导出功能.doc

如何查询执行的SQL,跟踪每个序时簿页面执行的SQL。

解决:

跟踪VirtualModeDataAccess这个类的getRowSetBySeqTable方法。

2009-1-15

问题:如何设置多级审批页面?

备注:在实体里面有一个扩展属性“序时簿UI的类名”,如果设置了某个listUI的话,在消息中心进行多级审批就能够显示指定的listUI,适用于单个实体被单个页面使用,但是当改实体被多个页面引用的时候,而多个页面都有审批的话,这里就不适用了。(不确定的一点就是如果有botp转换的话也是用这个listUI设置,两个需要的listUI不一致,会产生有冲突,最好还是不要这样子设置)比如说budget.entity被多个页面 “一上建议数”,“一上审核”,“二上编制”,“二下审核”共用。

解决:实体还有另一个扩展属性:“多级审批特定Query”,在这里设置进listUI使用到的Query。在消息中心多级审批就会显示Query查询的结果。对于某些字段的显示样式也可以通过Query的扩展属性来设置。比如说要设置金额的显示样式,需要选中金额字段,选择扩展属性:“F7或简单实体的显示格式”,设置显示格式:“#0.00”,这样子就会在 页面上显示金额的样式,无须在java类里面设置某个字段的样式,非常方便。还有一点就是设置扩展属性“是否在KDTable显示”,就会让改字段是否在页面中显示出来,不用在java类中设置

那么麻烦。

如何对Query中的String类型的字段进行排序?

分析:在实体budgetQuery中的SUMSCOREPRIVALUE字段是String,对其进行排列是无效的。

解决:

在该字段的计算式中输入:convert ( int , #0 ),会在

SQL里面将其转换为CONVERT(int, \然后再进行排序设置。

2009-2-4

问题:工作流中如何设置会审功能?

分析:会审就是需要有多人审批一个单据才行。 解决:

在任务一栏中的是否支持会签打钩。就能够支持会审功能了。

会审功能有两个选项:一票否决和全部投票。

一票否决的意思是指“一个人不同意”,则活动到此结束,并且审批结果为不同意。如果这时还有其他审批人未处理,该活动也结束了。

全部投票指的是根据票数的多少决定(该功能有待验证)

自定义页签过滤条件多增加了几个字段,在绑定的Query里面找不到。

解决:在QueryMetaUtil.java中实现了一个功能,就是可以追加Query,可以在不改动原Query的情况下增加多一个新的Query,给自定义页签的过滤条件添加多新的Query的字段。 在二维数组String[][] mergeQuery中添加多一组数据,数组内容:源query,合并用query,源query主实体关联字段,合并用query主实体关联字段。

如何获得自定义条件?

解决:EntityViewInfo filterEntityInfoGol = dialog.getEntityViewInfoResult();

filterEntityInfoGol是根据Query来定义的字段获得的,字段的名称=所选条件。如下图:

2009-2-10

问题:登陆时报找不到intEnum这个类。

解决:读取class文件路径没有问题,构建路径也没有问题。最后检查W:\\eas\\Server\\server\\bin\\server.pl 中 my

$classpath=\配置是否正确;

这里的classpath应该为class文件路径。可以参考W:\\eas\\dev下面的client-user.liblist文件。

如何添加合计行?

分析:利用KDTable的合计功能。

解决:改代码来源自宋大伟 void initGroupInfo() {

IRow row0; // table.getMergeManager().setDataMode(KDTMergeManager.DATA_KEEPFIRST); table.getGroupManager().setGroup(true);

table.getGroupManager().setOrientation(KDTStyleConstants.DOWN);

row0 = (IRow) table.getGroupManager().getStatRowTemplate(-1); // row0.getStyleAttributes().setBackground(Color.blue); row0.getCell(0).setValue(\总计\

row0.getCell(2).setExpressions(KDTGroupManager.STAT_SUM); row0.getCell(3).setExpressions(KDTGroupManager.STAT_SUM); row0.getCell(4).setExpressions(KDTGroupManager.STAT_SUM); // row0.getCell(3).setExpressions(\ table.getGroupManager().setTotalize(true);

row0 = (IRow) table.getGroupManager().getStatRowTemplate(0); row0.getStyleAttributes().setBackground(Color.green); //

row0.getStyleAttributes().setHorizontalAlign(HorizontalAlignment.CENTER);

row0.getCell(0).setValue(\平均值\

row0.getCell(2).setExpressions(KDTGroupManager.STAT_SUM); row0.getCell(3).setExpressions(KDTGroupManager.STAT_SUM); row0.getCell(4).setExpressions(KDTGroupManager.STAT_SUM); // row0.getCell(3).setExpressions(\COLUMN_INDEX).getValue()\

table.getColumn(0).setGroup(true); table.getColumn(0).setStat(true);

table.getColumn(0).setMergeable(true);

row0 = (IRow) table.getGroupManager().getStatRowTemplate(1); row0.getStyleAttributes().setBackground(Color.cyan);

row0.getCell(1).setValue(\最大值\

row0.getCell(2).setExpressions(KDTGroupManager.STAT_SUM); row0.getCell(3).setExpressions(KDTGroupManager.STAT_SUM); row0.getCell(4).setExpressions(KDTGroupManager.STAT_SUM); // row0.getCell(3).setExpressions(\COLUMN_INDEX).getValue()\

table.getColumn(1).setGroup(true); table.getColumn(1).setStat(true);

table.getColumn(1).setMergeable(true); // table.getColumn(4).getStyleAttributes().setNumberFormat(\ row0 = (IRow) table.getGroupManager().getStatRowTemplate(2) row0.getStyleAttributes().setBackground(Color.LIGHT_GRAY); row0.getCell(2).setValue(\最小值\

row0.getCell(3).setExpressions(KDTGroupManager.STAT_SUM); row0.getCell(4).setExpressions(KDTGroupManager.STAT_SUM); // row0.getCell(3).setExpressions(\COLUMN_INDEX).getValue()\

table.getColumn(2).setGroup(true); table.getColumn(2).setStat(true);

table.getColumn(2).setMergeable(true); }

自己的代码:

tblMain.getGroupManager().setGroup(true);

tblMain.getGroupManager().setOrientation(KDTStyleConstants.DOWN); IRow row0;


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

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

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

马上注册会员

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