当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>`标签来设置是否显示合计行。 ...
本资源主要介绍NC65单据开发进阶的相关知识点,包括环境信息获取、默认值设置、表头表尾编辑前后事件、金额合计、表体编辑前后事件、默认勾选、业务规则等。 环境信息获取: 环境信息获取是指在NC65开发中获取当前...
在NC系统中,单表体的单据开发是企业信息化管理中的一个重要环节,主要用于处理那些无需表头信息,仅由一组表体数据组成的业务场景。这类单据的UI设计是基于ISingleController接口来实现的,它提供了一个专门用于单...
- 设置子表的刷新规则,例如在主表数据改变时自动刷新子表数据。 4. **交互逻辑** - 实现主表与子表的联动操作,例如在主表选择一条记录后,子表自动加载对应的子记录。 - 添加增删改查功能,包括在子表中新增...
这一改变极大地丰富了业务操作的可能性,让企业在进行推单、拉单以及与外系统的数据交互时更加灵活。在单据多选设置的支持下,可以将各种NC单据配置成可以实现多行选中的效果,并且可以在后台获取选中的数据进行后续...
得到选中的表体行数,列数等内容(总行数和当前选中的行数) 2 二.设置初始化界面时的默认值 3 三.表单默认执行方法以及常用的操作 3 四.在报表中显示合计行 4 五.在UI类中设置小数位数 5 六.将表体数据清空 5 ...
本篇文章将深入探讨如何在用友UAP NC65中通过向导开发单表单据,这将对初学者非常有帮助。 首先,我们需要理解“单表单据”的概念。在企业信息系统中,单表单据通常指的是与一个数据库表直接关联的记录形式,例如...
1.用友NC系列产品,在高分辨率屏幕下显示的字体特别小。也找过很多其他的适配补丁,效果都不太理想,都只是部分字段进行了放大,经过一周修改验证测试,自己出了此补丁,绝对原创。 2.本补丁,针对95%的字体都进行...
用友uap开发nc65向导单表头管理型档案详细步骤,详细文档步骤,有源代码,适合新手入门。
里面包含最新NC5.7和NC65数据字典,开发帮助文档, 还有完整的表关系图没和NC5.7总账管理的操作手册,超级有用。
在NC65系统中,添加自定义按钮是一个能够极大增强单据处理能力的功能。这种功能的实现可以让用户根据自己的特定需求,在单据的界面上增加一些个性化的操作按钮,从而使得单据操作流程更加灵活高效。 首先,我们来看...
NC65开发课件之单表档案开发 NC65开发课件之单表档案开发是基于元数据生成单表档案的过程,本课程旨在指导学习者熟练使用向导生成单表档案,掌握单表档案开发的基本流程和技术。 课程介绍 课程对象:分支机构实施...
- 开发步骤:标准的树管理型单据实现、多子表、虚拟主子表和单表头的处理方法。 #### 五、列表卡片类型单据 列表卡片类型单据结合了列表和卡片的特点,适用于展示既有列表特性又有卡片详情的场景。 1. **类结构**...
"用友NC5X 常用表用途资料"这一主题深入探讨了用友NC(Nucleus Commerce)系统中的核心数据表及其功能,这对于系统管理员、开发者以及业务分析师而言,是不可或缺的知识点。下面,我们将详细解析这些表格的功能和...
NC65单据字段参照时多选开发分享 在NC65单据字段参照时,多选开发是一个常见的需求,特别是在物料编码参照时,需要支持多选,以满足业务需求。下面将详细介绍NC65单据字段参照时多选开发的实现方法。 首先,需要在...
用友uap开发nc65向导主子单据树表开发案例详细步骤,详细开发步骤,附带源代码,适合新手入门。
在特定的情况下,列表的表头、表体或者卡片的表体,需要让一些特殊的行显示特定的颜色。
NC对应SQLSERVER数据库建立表空间和用户语句的SQL语句和方法
2. 主子单据开发流程:主子单据开发流程包括创建元数据、生成主子单据、设置表头和表体按钮操作、控制功能信息等。 3. 带审批流主子单据开发:带审批流主子单据开发需要实现“单据联查”和“提交/收回/审批/弃审”...
根据提供的文件信息,本文将详细说明关于“NC6.5 数据库参考脚本及临时表空间配置”的知识点。 首先,文档标题“NC6.5 数据库参考脚本及临时表空间配置.pdf”指出了文件内容涉及三个方面:NC6.5数据库、参考脚本...