当UI处于多选状态时,表体行的选中状态不会保存下来。表头的选中行改变时,表体行将重新处于非选中状态。
以下为保留选中状态的表体行的UI代码
@Override
protected void initSelfData() {
getBillListPanel().setMultiSelect(true);
getBillListPanel().getHeadBillModel().removeRowStateChangeEventListener();
getBillListPanel().getHeadBillModel().addRowStateChangeEventListener(new HeadRowStateListener());
}
private class HeadRowStateListener implements IBillModelRowStateChangeEventListener
{
public void valueChanged(RowStateChangeEvent e)
{
getBufferData().setCurrentRow(e.getRow());
BillModel model = getBillListPanel().getBodyBillModel();
IBillModelRowStateChangeEventListener l = model.getRowStateChangeEventListener();
model.removeRowStateChangeEventListener();
if (e.isSelectState()) {
getBillListPanel().getChildListPanel().selectAllTableRow();
}else{
getBillListPanel().getChildListPanel().cancelSelectAllTableRow();
}
model.addRowStateChangeEventListener(l);
getBillListPanel().updateUI();
}
}
@Override
public void update(Observable o, Object arg) {
// TODO Auto-generated method stub
if (beforeUpdate()) {
try {
if (isListPanelSelected()){
setListBodyData();
int nrow=getBufferData().getCurrentRow();
if (!getBillListPanel().setBodyModelData(nrow))
{
getBillListPanel().setBodyModelDataCopy(nrow);
}
//getBillListPanel().repaint();
int maxSelIndex=getBillListPanel().getHeadTable().getSelectionModel().getMaxSelectionIndex();
int minSelIndex=getBillListPanel().getHeadTable().getSelectionModel().getMinSelectionIndex();
if(nrow>=0&&maxSelIndex==minSelIndex){
getBillListPanel().addEditListener(null);
getBillListPanel().getHeadTable().getSelectionModel().setSelectionInterval(nrow,nrow);
getBillListPanel().addEditListener(this);
}
}
else
setCardUIData(getBufferData().getCurrentVO());
this.getBillCardPanel().updateValue();
//设置单据状态
updateBtnStateByCurrentVO();
} catch (Exception e) {
e.printStackTrace();
showErrorMessage(e.getMessage());
}
if(getUIControl() instanceof ITableTreeController){
setTableToTreeTable();
}
}
afterUpdate();
}
主要是重新定义表头的行选中事件以及修改update方法
分享到:
相关推荐
为了实现多子表以及在表头、表体中增加合计的功能,开发者需要对XML进行相应的配置。以下为具体的配置示例: 1. **多子表配置**: - 在`billForm`和`billListView`中通过`<property>`标签来设置是否显示合计行。 ...
在NC系统中,单表体的单据开发是企业信息化管理中的一个重要环节,主要用于处理那些无需表头信息,仅由一组表体数据组成的业务场景。这类单据的UI设计是基于ISingleController接口来实现的,它提供了一个专门用于单...
- 设置子表的刷新规则,例如在主表数据改变时自动刷新子表数据。 4. **交互逻辑** - 实现主表与子表的联动操作,例如在主表选择一条记录后,子表自动加载对应的子记录。 - 添加增删改查功能,包括在子表中新增...
本资源主要介绍NC65单据开发进阶的相关知识点,包括环境信息获取、默认值设置、表头表尾编辑前后事件、金额合计、表体编辑前后事件、默认勾选、业务规则等。 环境信息获取: 环境信息获取是指在NC65开发中获取当前...
1.用友NC系列产品,在高分辨率屏幕下显示的字体特别小。也找过很多其他的适配补丁,效果都不太理想,都只是部分字段进行了放大,经过一周修改验证测试,自己出了此补丁,绝对原创。 2.本补丁,针对95%的字体都进行...
本篇文章将深入探讨如何在用友UAP NC65中通过向导开发单表单据,这将对初学者非常有帮助。 首先,我们需要理解“单表单据”的概念。在企业信息系统中,单表单据通常指的是与一个数据库表直接关联的记录形式,例如...
得到选中的表体行数,列数等内容(总行数和当前选中的行数) 2 二.设置初始化界面时的默认值 3 三.表单默认执行方法以及常用的操作 3 四.在报表中显示合计行 4 五.在UI类中设置小数位数 5 六.将表体数据清空 5 ...
里面包含最新NC5.7和NC65数据字典,开发帮助文档, 还有完整的表关系图没和NC5.7总账管理的操作手册,超级有用。
用友uap开发nc65向导单表头管理型档案详细步骤,详细文档步骤,有源代码,适合新手入门。
- 开发步骤:标准的树管理型单据实现、多子表、虚拟主子表和单表头的处理方法。 #### 五、列表卡片类型单据 列表卡片类型单据结合了列表和卡片的特点,适用于展示既有列表特性又有卡片详情的场景。 1. **类结构**...
NC65支持每一个单据进行单据自定义添加按钮,自定义客开增加的按钮可以灵活实现客户的需求,更有利于客户的业务开展,涉及更多特殊业务场景,创造更多的客户价值
"用友NC5X 常用表用途资料"这一主题深入探讨了用友NC(Nucleus Commerce)系统中的核心数据表及其功能,这对于系统管理员、开发者以及业务分析师而言,是不可或缺的知识点。下面,我们将详细解析这些表格的功能和...
NC65标准单据列表界面往往是不支持多行选中的,但客户业务种类繁多,情况复杂多变。很多时候都需要多行选中进行推单,拉单以及推送外系统。 单据多选设置可以将各种NC单据配置成可以实现多行选中的效果,并且能在...
NC65单据字段参照时多选开发分享 在NC65单据字段参照时,多选开发是一个常见的需求,特别是在物料编码参照时,需要支持多选,以满足业务需求。下面将详细介绍NC65单据字段参照时多选开发的实现方法。 首先,需要在...
在特定的情况下,列表的表头、表体或者卡片的表体,需要让一些特殊的行显示特定的颜色。
NC65开发课件之单表档案开发 NC65开发课件之单表档案开发是基于元数据生成单表档案的过程,本课程旨在指导学习者熟练使用向导生成单表档案,掌握单表档案开发的基本流程和技术。 课程介绍 课程对象:分支机构实施...
根据提供的文件信息,本文将详细说明关于“NC6.5 数据库参考脚本及临时表空间配置”的知识点。 首先,文档标题“NC6.5 数据库参考脚本及临时表空间配置.pdf”指出了文件内容涉及三个方面:NC6.5数据库、参考脚本...
2. 主子单据开发流程:主子单据开发流程包括创建元数据、生成主子单据、设置表头和表体按钮操作、控制功能信息等。 3. 带审批流主子单据开发:带审批流主子单据开发需要实现“单据联查”和“提交/收回/审批/弃审”...
- 对于表体部分的控制,你需要同样在XML文件中插入`BodyLineEditAction` bean,但可能需要根据实际需求修改其ID,以区分表头和表体的按钮行为。 - 如果你的单据界面包含多个区域,可能需要为每个区域分别设置最大...
### NC63主子孙表技术知识点详解 #### 一、NC63主子孙表概述 在NC63系统中,主子孙表技术是一种用于管理和处理复杂业务数据结构的方法。它通过构建多层次的数据关联来实现对数据的有效管理和操作,特别是在需要处理...