用友NC二次开发问题汇总【转】

               

一、供应链采购订单问题
在采购订单参照请购单时,若选择了10行请购单的记录,采购订单的表体也就显示了10条记录,如何才能实现还可以再弹出请购单的参照,追加一条记录,而不需要取消单据后重现选择请购单。

答:截止最新版本,你这个问题只能是退回去,重新选择11条过来,不能如你希望那样10条不动再追加第11条.这是个易用性改进的需求,我转给SCM开发部门.

二、3.1的XML导入文档

只有项目基本档案、客商基本档案,现在客户在5.0的基础上导入
而且人员档案也分成了集团级和公司级。请问
1、项目基本档案和项目管理档案是否只用一个XML文件即可
2、客商基本档案和客商档案是否需要分别导入
3、人员基本档案和人员档案是否需要分别导入
如果有文,请提供(导入文档和XML交换文件格式)

答:1 、RE: 50中可以导入项目基本档案,导入时如果指定导入的公司时,基本档案会自动分配生成项目管理档案。
2、RE:客商基本档案导入时,如果指定了分配的公司,可以自动把基本档案分配到公司生成客户档案和供应商档案
3、RE:人员基本档案和人员档案不需要分别导入,是在一个完成的XML文件中表示数据的

三、关于NCv5的代码部署

自己完成了一个NCv5的程序,需要部署,我是把public、private、client、gen分别打包,然后把jar和xml在一个一个分类拷贝到对应的文件夹,好麻烦,为什么不能在eclipse中直接就部署到nchome呢?.

答:eclipse里面 uap有个工具,右键mde tools 下 export module可以将代码打包,不用一个个来打jar包。
导出来的目录直接考到nchome下module 就可以

四、nc5中下拉框不能返回其内容的问题
在单据模板和查询模板中,将一个字段的数据类型设置为"下拉框",并且设置参照名称为"I,01,02,03,04,05"。运行时下拉框的内容可以显示出来,
但是返回的却是所选值的索引序号,即0,1,2,3,4。 在查询模板中设置了返回类型和显示类型都没有效果。
求助:这是V5的bug还是哪里设置的不对?
我用的是V501

答:换成 SX,01,02,03,04,05

前面设置的参数都有哪些?分别有什么作用?

答:设置查询模板某一字段的数据类型是"下拉" ,然后在参照类型中输入字符串"IX,自由态,游离态,..."
  IX,UPP10080806-000024=外部单位,UPP10080806-000040=内部核算单位,UPP10080806-000041=内部法人单位,UPP10080806-000042=内部渠道成员
  CX,UC000-0001589=客户,UC000-0000275=供应商,UC000-0001574=客商
  I,工行,招行,人行,建行
  字符串的前缀有 I IX C CX S SX 六种代表不同的含义:
  I  将下拉框的索引号作为整型返回
  IX  将下拉框的索引号作为整型返回
  C  将下拉框的索引号作为Char类型返回
  CX  将下拉框的索引号作为Char类型返回
  S  返回下拉框中显示的内容
  SX  可设置返回值和显示内容的对应关系,选择某一个显示值则会返回该显示值对应的返回值 格式 "SX,自由态=6,审核通过=7,审核不通过=9"
  以上六种类型中两个字母的(IX、CX、SX)可通过"="号设置对应关系,而剩下的类型会把整个字符串包括"="号都显示出来。

五、关于树的问题一个左树右表结构的管理界面的单据不知道如何把树的ROOT根结点改成其它的名字,  还有我对右表里面的数据增加、保存、删除后'如何能同一时间刷新左边的树''用的是V501

答:对于树卡片类界面,调用父类BillTreeCardUI的modifyRootNodeShowName方法修改根节点名称,
对于树管理类界面,调用父类BillTreeManageUI的modifyRootNodeShowName方法修改根节点名称,

UI类对应的Control类的isAutoManageTree方法返回值是true可以在编辑卡片或列表界面后自动刷新树的节点。

在ui类中 可以  ((TableTreeNode)getBillTree().getModel().getRoot()).setUserObject("name");

六、怎样编写代码在待办事务中发送一条消息?
答:可以参考下, 后台代码,就是往数据库插入一条记录
//
        PFMessageBO pfm = new PFMessageBO();
        CommonMessageVO comvo = new CommonMessageVO();
        UserNameObject usvo = new UserNameObject("a");
        usvo.setUserPK("0001ZZ100000000000VJ");
        usvo.setUserCode("a");
        usvo.setUserName("a");
       
        comvo.setSender("a");
        comvo.setReceiver(new UserNameObject[]{usvo});
        comvo.setMessageContent("导入数据演示");
        comvo.setTitle("外部平台导入数据");
        comvo.setType(MessageTypes.MSG_TYPE_INFO);
        pfm.insertCommonMessage(comvo);
       
        ///


参见类  nc.ui.uap.sf.SFClientUtil
    showNode(String nodecode)

七、报表开发中遇到的问题在报表中,需要对 XX率(比如兑现率) 进行小计合计, 兑现率 = 实发量 / 计划量 , 是一个百分比数, 现在点击"小计合计"按钮,对该列进行统计,是将所有的兑现率加起来,这样算法是错误的,应该是
兑现率合计 = 累计实发量 / 累计计划量.

错误的结果:

                兑现率(%)
存货1          50
存货2          90
-小计-          140
-合计-          140
现在不知道修改哪个方法能够修改这个问题,使点击"小计合计"按钮后,将小计合计数由自己来计算.

答:添加 2列内容累计实发量 , 累计计划量 在设置公式列 ( 兑现率)=累计实发量/累计计划量

八、制作报表穿头规则的时候自动生成的代码出现编译类错误制作支持穿透的报表时候,利用左侧的"查询间穿透"代码生成向导生成的规则片段报编译类错误,
生成的代码片段如下:
String value = getPeneValue("SUBJNAME");
getHashParam().put("subj", new ParamVO(value));
StorageDataSet ds = ModelUtil.getQueryResult("gldetail4pene", getHashParam(), "design");
setId("gldetail4pene");
setDataSet(ds);

出现的错误如下:
nc.vo.uap.queryengine.QEBusinessException: 编译类错误....

at nc.bs.pub.querymodel.PenetrateRuleUtilBO.check(PenetrateRuleUtilBO.java:49)
at nc.impl.uap.queryengine.EmbedCodeUtilImpl.checkPenetrateRule(EmbedCodeUtilImpl.java:67)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at nc.bs.framework.comn.serv.ServiceDispatcher.a(ServiceDispatcher.java:320)
at nc.bs.framework.comn.serv.ServiceDispatcher.execCall(ServiceDispatcher.java:129)
at nc.bs.framework.comn.serv.CommonServletDispatcher.doGet(CommonServletDispatcher.java:76)
at nc.bs.framework.comn.serv.CommonServletDispatcher.doPost(CommonServletDispatcher.java:95)

使用的开发环境,版本是nc501,我使用system.out.print();它也报编译类错误

答:在起中间件服务的JAVA项目的构建路径中增加以下外部JAR就可以了:
%JDK%/lib/tools.jar

九、启动NC客户端时报错每次启动NC的客户端时总会提示
Java.lang.ClassNotFoundException:nc.bs.framework.comn.NetStreamConstants错误?
但是这个错误似乎并不是很影响运行

答:是在V5.011后版本去掉.你可以不管这个信息,不影响使用

十、在哪个方法中增加查询条件在哪个类里面增加查询条件.我现在想增加一个条码的查询条件

答:你说的查询条件是指查询对话框中的条件吗?
如果是 只需配置查询模版即可

十一、总账如何查询某个会计月是否已结账答:ICreateCorpQueryService  cc=  (ICreateCorpQueryService)getLocator().lookup(ICreateCorpQueryService.class.getName()); 
  //查询总帐的最小未结帐月份
    String[] sYearMonth = cc.querySettledPeriod(dwbm, "GL");

//再用sYearMonth 与当前月份比较,即可判断是否结帐

十二、关于持久化事务在预警平台中调用了

JdbcSession session = sessionManager.getJdbcSession();
  conn = session.getConnection();
  conn.setAutoCommit(false);

程序里做了分段提交。 但是运行后发现似乎还是最后所有数据一起提交。
由于操作的数据量比较大,所以不想以整个包所有数据为一个事务。
而且程序中有这样的片段。统计一组数据,生成xml文件,打标志位。如果是所有数据一个事务的话会造成一部分数据文件已经生成,但是标志位没有打上的情况。最后就形成了xml文件重复的问题。
有没什么方法,或哪里设置能让程序在调用 conn.commit后就真的进行数据提交。

答:事务型的组件是指该组件的方法调用中事务处理会自动参与,这类组件的开发与远程组件类一样,也是基于接口的,同样我们对接口没有任何的特别要求,
普通借口就可以了。
V5.0中的事务参与模型通过方法名后缀进行判断,判断的方法如下:
?
方法名后缀RequiresNew: 新事物
?
方法名后缀Mandatory: 必须在一个已有的事务环境中运行改方法
?
方法名后缀Supports: 只是支持事务,不建议使用
?
方法名后缀NotSupported:不支持事务,不建议使用
?
方法名后缀Never:不能有事务,否则出错
?
没有方法名后缀:
如果有事务,就在该事务环境下工作,否则新启事务,这是大部分事务型组件的情况

十三、NC缓存出现的问题
修改后的代码更新到服务器上后,3.5以上的版本应该是不需要重新启动应用服务器客户端就应该自动更新,即支持动态部署...但为什么在客户哪里我都把应用服务器重新起到了,可客户端代码还是不更新...在缓存目录删除对应的代码后,界面还是可以运行,应该说明是没有用到这里的代码,这是为什么呢?代码是自己写的,没有使用单据模板...


答:这里可能有些不稳定,不过手工清一下缓存还是放心一些

十四、在NC中使用过web service ?能不能介绍下经验
答:NC的外部交换平台就是NC的一个典型的web service 的应用


十五、WAS 部署问题
NC501版本,配置了 WAS 集群,有主从两台服务器。目前开发了一个模块需要部署到WAS上,可是一直不能正确部署,新注册的功能节点根本就打不开。
新的模块概述:
                                                                                                                                           
1、模块名称为 imptool。
2、需要后台完成的功能就是查询会计科目,在 imptool.module 文件中把相关的类配置为 public 形式,而不是 private 。
3、生成 ejb 代码:使用 eclipse MDE 的 module 工具根本就不对 public 形式的组件生成 ejb 代码,所以不生成 imptool_proxy.module 文件。
总上所述,我认为不需要部署 ejb。或是应该部署 ejb,那如何进行部署呢 ??
另外,

是否在部署模块到 WAS 上需要两个步骤,1、部署 ejb,2、部署模块的代码 ?? 都需要怎么操作??

答一:1.如果没有ejb或者proxy确实不需要生成ejb。
2.但向wa

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值