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