`
jackzlz
  • 浏览: 141287 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

NC表头改变时保留表体的选中状态

 
阅读更多

当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方法

分享到:
评论

相关推荐

    NC6多子表表头表体合计.docx

    为了实现多子表以及在表头、表体中增加合计的功能,开发者需要对XML进行相应的配置。以下为具体的配置示例: 1. **多子表配置**: - 在`billForm`和`billListView`中通过`<property>`标签来设置是否显示合计行。 ...

    nc二开单据

    在NC系统中,单表体的单据开发是企业信息化管理中的一个重要环节,主要用于处理那些无需表头信息,仅由一组表体数据组成的业务场景。这类单据的UI设计是基于ISingleController接口来实现的,它提供了一个专门用于单...

    用友uap开发nc65向导主子表单据详细步骤

    - 设置子表的刷新规则,例如在主表数据改变时自动刷新子表数据。 4. **交互逻辑** - 实现主表与子表的联动操作,例如在主表选择一条记录后,子表自动加载对应的子记录。 - 添加增删改查功能,包括在子表中新增...

    NC65开发课件之单据开发进阶

    本资源主要介绍NC65单据开发进阶的相关知识点,包括环境信息获取、默认值设置、表头表尾编辑前后事件、金额合计、表体编辑前后事件、默认勾选、业务规则等。 环境信息获取: 环境信息获取是指在NC65开发中获取当前...

    用友NC65高分屏适配补丁+原理

    1.用友NC系列产品,在高分辨率屏幕下显示的字体特别小。也找过很多其他的适配补丁,效果都不太理想,都只是部分字段进行了放大,经过一周修改验证测试,自己出了此补丁,绝对原创。 2.本补丁,针对95%的字体都进行...

    用友uap开发nc65向导单表单据详细步骤

    本篇文章将深入探讨如何在用友UAP NC65中通过向导开发单表单据,这将对初学者非常有帮助。 首先,我们需要理解“单表单据”的概念。在企业信息系统中,单表单据通常指的是与一个数据库表直接关联的记录形式,例如...

    nc二次开发文档 非常详细

    得到选中的表体行数,列数等内容(总行数和当前选中的行数) 2 二.设置初始化界面时的默认值 3 三.表单默认执行方法以及常用的操作 3 四.在报表中显示合计行 4 五.在UI类中设置小数位数 5 六.将表体数据清空 5 ...

    NC5.7 NC65数据字典 数据表关系图 NC5.7操作手册总账管理.zip

    里面包含最新NC5.7和NC65数据字典,开发帮助文档, 还有完整的表关系图没和NC5.7总账管理的操作手册,超级有用。

    用友uap开发nc65向导单表头管理型档案详细步骤

    用友uap开发nc65向导单表头管理型档案详细步骤,详细文档步骤,有源代码,适合新手入门。

    NC57UI工厂文档

    - 开发步骤:标准的树管理型单据实现、多子表、虚拟主子表和单表头的处理方法。 #### 五、列表卡片类型单据 列表卡片类型单据结合了列表和卡片的特点,适用于展示既有列表特性又有卡片详情的场景。 1. **类结构**...

    在NC65单据中添加自定义的按钮

    NC65支持每一个单据进行单据自定义添加按钮,自定义客开增加的按钮可以灵活实现客户的需求,更有利于客户的业务开展,涉及更多特殊业务场景,创造更多的客户价值

    用友NC常用表

    "用友NC5X 常用表用途资料"这一主题深入探讨了用友NC(Nucleus Commerce)系统中的核心数据表及其功能,这对于系统管理员、开发者以及业务分析师而言,是不可或缺的知识点。下面,我们将详细解析这些表格的功能和...

    NC65单据设置支持多选

    NC65标准单据列表界面往往是不支持多行选中的,但客户业务种类繁多,情况复杂多变。很多时候都需要多行选中进行推单,拉单以及推送外系统。 单据多选设置可以将各种NC单据配置成可以实现多行选中的效果,并且能在...

    3.2.4NC65单据字段参照时多选开发分享.docx

    NC65单据字段参照时多选开发分享 在NC65单据字段参照时,多选开发是一个常见的需求,特别是在物料编码参照时,需要支持多选,以满足业务需求。下面将详细介绍NC65单据字段参照时多选开发的实现方法。 首先,需要在...

    NC 行颜色控制.txt

    在特定的情况下,列表的表头、表体或者卡片的表体,需要让一些特殊的行显示特定的颜色。

    NC65开发课件之单表档案开发

    NC65开发课件之单表档案开发 NC65开发课件之单表档案开发是基于元数据生成单表档案的过程,本课程旨在指导学习者熟练使用向导生成单表档案,掌握单表档案开发的基本流程和技术。 课程介绍 课程对象:分支机构实施...

    NC6.5 数据库参考脚本及临时表空间配置.pdf

    根据提供的文件信息,本文将详细说明关于“NC6.5 数据库参考脚本及临时表空间配置”的知识点。 首先,文档标题“NC6.5 数据库参考脚本及临时表空间配置.pdf”指出了文件内容涉及三个方面:NC6.5数据库、参考脚本...

    NC65开发课件之主子单据开发

    2. 主子单据开发流程:主子单据开发流程包括创建元数据、生成主子单据、设置表头和表体按钮操作、控制功能信息等。 3. 带审批流主子单据开发:带审批流主子单据开发需要实现“单据联查”和“提交/收回/审批/弃审”...

    nc63配置文件

    - 对于表体部分的控制,你需要同样在XML文件中插入`BodyLineEditAction` bean,但可能需要根据实际需求修改其ID,以区分表头和表体的按钮行为。 - 如果你的单据界面包含多个区域,可能需要为每个区域分别设置最大...

    NC主子孙表

    ### NC63主子孙表技术知识点详解 #### 一、NC63主子孙表概述 在NC63系统中,主子孙表技术是一种用于管理和处理复杂业务数据结构的方法。它通过构建多层次的数据关联来实现对数据的有效管理和操作,特别是在需要处理...

Global site tag (gtag.js) - Google Analytics