NC二开经验总结

更新时间:2024-06-03 13:40:01 阅读量: 综合文库 文档下载

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

NC二开经验总结

公式相关

1.显示公式没执行 列表界面显示,卡片界面不显示:

Handler的onBoCard执行:getBillCardPanel().execHeadLoadFormulas(); Controller的isLoadCardFormula返回true 另外,字段录入长度不够时,列表显示,卡片不显示

2.带出数据执行公式 表头显示公式,执行getBillCardPanel().execHeadLoadFormulas();

表体显示公式,执行getBillCardPanel().getBillModel().execLoadFormula(); 补充:上面是最简单的方法,其它自己测试。比如,指定表体行执行公式:

// 下面的方法必须设置编辑公式 –- 用for循环效果等于上面的方法

getBillCardPanel().execBodyFormula(i, \);

UI

1.列表界面设置可多选 public ClientUI(){ }

super();

getBillListPanel().setMultiSelect(true);

2.查询条件 UIDialog dlg = getQueryUI(); if(dlg.showModal() != 1) return;

1 / 13

INormalQuery query = (INormalQuery)dlg; String sql = query.getWhereSql();

3.隐藏表体字段 BillData bs =getBillCardPanel().getBillData(); BillItem[] items = bs.getBillModel().getBodyItems(); for (int i = 0; i < items.length; i++) { }

getBillCardPanel().setBillData(bs); // 必须有这一行

items[i].setShow(false);

4.隐藏表头字段 方法一:

billCardPanel.getHeadItem(\).getComponent().setVisible(false); billCardPanel.getHeadItem(\).getCaptionLabel().setText(\); 方法二:

billCardPanel.hideHeadItem(new

String[]{\,\,\,\,\});

5.将AGGVO显示到单据界面上 billCardPanel.setBillValueVO(aggvo);

系统变量相关

1.单据号 前置任务:配置单据号规则

创建单据号:new HYPubBO().getBillNo(单据类型, 组织, null, null); 或者:getVbillCode(单据类型,组织);

new BillcodeGenerater ().getBillCode (单据类型, 组织,null,null);

2.主键 KeyGenerator.getInstance().getKey(20);

2 / 13

3.获取NCHOME路径 RuntimeEnv.getInstance().getNCHome();

4.系统变量 InvocationInfoProxy WorkbenchEnvironment ClientEnvironment

5.设置客户端背景色 F:\\NC63\\AceHome\\ierp\\sf\\themeconf.xml

模块相关 1.添加模块 META-INF里面必须有module.xml,Sysconfig下才能找到该模块

2.单据类型没有定义所属模块 产生这个异常的原因是:单据类型没在添加在项目模块里,而是在自己的模块里,在单据类型表里:bd_billtype,把单据的systemcode改为项目模块即可

单据动作相关

1.动作注册 从pub_billaction表里复制其它单据的动作,修改单据类型、ID即可

2.动作代码路径 modules -> 单据类型所在模块 -> META-INF -> var -> source

3.按钮显示 只显示isEnabled()==true的按钮:

int[] btnAry = ((LController) getUIManageController()).getCardButtonAry();

3 / 13

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

getBillUI().getButtonManager().getButton(btnAry[i]).setVisible(getBillUI().getButtonManager().getButton(btnAry[i]).isEnabled()); }

单据模版相关

1.下拉字段 数据库里保存的是 0、1、2、3.。。。所以vo里对应Integer

getBillCardWrapper().initHeadComboBox(\, new String[]{\,\,\}, true);

2.日期型字段 单据模板是日期型时,vo要为UFDate

3.日期型默认取值

4.查询所有的默认查询条件

5.调用模板 4 / 13

数据库操作相关 1. HYPUBBO_CLIENT findColValue方法只能查询字符型字段(因为这个方法内嵌了String强转)

2.JDBCSESSION JdbcSession session = null; session = PersistenceManager.getInstance().getJdbcSession(); session = JdbcSessionUtil.createJdbcSession(); 密码相关

1.ROOT密码修改

5 / 13

补丁相关

1.如何打补丁 在modules里找到相应的模块,将public、private、client下的代码导出的jar包放到模块的lib文件夹下,开发工具重新加载下即可(怎么重新加载?--重启,再重启,直到开发工具能加载到刚导入的jar包里的类)

运行相关

1.启动中间件报错

2.STARTUP.BAT启动服务卡着不动 6 / 13

元数据相关

1.单据日期

配置文件相关

1.配置文件变量名写错 7 / 13

节点相关

1.打开其它节点 直接点开指定的节点,没有数据:SFClientUtil.openFrame(\// 下面的还没测试

参照相关

1.表头参照多选取值 8 / 13

((UIRefPane) billCardPanel.getHeadItem(\

2.动态指定参照类 ((UIRefPane)(getBillCardPanelWrapper().getBillCardPanel().getHeadItem(\字段\).getComponent())).setRefModel(参照类.class);

3.设置参照是否支持多选 ((UIRefPane)

editor.getBillCardPanel().getHeadItem(\).getComponent()).setMultiSelectedEnabled(true); 4.设置参照只显示一级

5.参照字段实现手输

6.如何知道一个字段的参照类型: Object obj = ((UIRefPane)getBillCardPanel().getHeadItem(\Syttem.out.println(obj);

下拉相关

1.下拉去掉空白选项 9 / 13

预警

1.配置

其它 1.命名规则 10 / 13

2.表空间的概念

11 / 13

3.获取用户有权限的组织

实用方法

1.获取表体所有页签名 getBillCardPanel().getBillData().getBodyTableCodes();

2.获取表体指定行的VO getBillModel(\页签名\

3.单据状态栏打印消息 ShowStatusBarMsgUtil.showStatusBarMsg

4.获取TS CurTime.getCurrentTimeStampString();

5.创建主键 new SequenceGenerator().generate(pk_corp,num);

6. 保留小数点后2位,并“四舍五入” 12 / 13

new UFDouble().setScale(2, UFDouble.ROUND_HALF_UP);

13 / 13

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

Top