热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

nc65表体编辑事件

本示例判断编辑后是否与存在的值是否重复1.配置xml文件

//本示例判断编辑后是否与存在的值是否重复

1.配置xml文件


<bean id="bmModelEventMediator" class="nc.ui.pubapp.uif2app.model.AppEventHandlerMediator">
<property name="model" ref="bmModel" />
<property name="handlerGroup">
<list>

<bean class="nc.ui.pubapp.uif2app.event.EventHandlerGroup">
<property name="event" value="nc.ui.pubapp.uif2app.event.card.CardBodyBeforeEditEvent" />
<property name="handler">
<bean class="nc.ui.hfdm.hfdm_dormcheckin.ace.handler.AceBodyBeforeEditHandler" />
property>
bean>

<bean class="nc.ui.pubapp.uif2app.event.EventHandlerGroup">
<property name="event" value="nc.ui.pubapp.uif2app.event.card.CardBodyAfterEditEvent" />
<property name="handler">
<bean class="nc.ui.hfdm.hfdm_dormcheckin.ace.handler.AceBodyAfterEditHandler" />
property>
bean>

<bean class="nc.ui.pubapp.uif2app.event.EventHandlerGroup">
<property name="event" value="nc.ui.pubapp.uif2app.event.card.CardHeadTailBeforeEditEvent" />
<property name="handler">
<bean class="nc.ui.hfdm.hfdm_dormcheckin.ace.handler.AceHeadTailBeforeEditHandler" />
property>
bean>

<bean class="nc.ui.pubapp.uif2app.event.EventHandlerGroup">
<property name="event" value="nc.ui.pubapp.uif2app.event.card.CardHeadTailAfterEditEvent" />
<property name="handler">
<bean class="nc.ui.hfdm.hfdm_dormcheckin.ace.handler.AceHeadTailAfterEditHandler" />
property>
bean>

<bean class="nc.ui.pubapp.uif2app.event.EventHandlerGroup">
<property name="event" value="nc.ui.pubapp.uif2app.event.OrgChangedEvent" />
<property name="handler">
<bean class="nc.ui.hfdm.hfdm_dormcheckin.ace.handler.AceOrgChangeHandler" >
<property name="billForm" ref="billForm" />
bean>
property>
bean>

<bean class="nc.ui.pubapp.uif2app.event.EventHandlerGroup">
<property name="event" value="nc.ui.pubapp.uif2app.event.billform.AddEvent" />
<property name="handler">
<bean class="nc.ui.hfdm.hfdm_dormcheckin.ace.handler.AceAddHandler" />
property>
bean>
list>
property>
bean>

2.event 类

/* */ package nc.ui.pubapp.uif2app.event.card;
/* */
/* */ import java.util.ArrayList;
/* */ import java.util.List;
/* */ import nc.ui.bd.ref.AbstractRefModel;
/* */ import nc.ui.pub.beans.UIRefPane;
/* */ import nc.ui.pub.bill.BillCardPanel;
/* */ import nc.ui.pub.bill.BillEditEvent;
/* */ import nc.ui.pub.bill.BillItem;
/* */ import nc.vo.jcom.lang.StringUtil;
/* */ import nc.vo.pub.lang.UFDouble;
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */ public class CardBodyAfterEditEvent
/* */ extends CardPanelEvent
/* */ {
/* */ public static final int NOTBATCHCOPY = -1;
/* */ public static final int BATCHCOPYBEGIN = 1;
/* */ public static final int BATCHCOPING = 2;
/* */ public static final int BATCHCOPYEND = 3;
/* */ private String key;
/* */ private Object oldValue;
/* */ private Object pkValue;
/* 33 */ private int row = -1;
/* */
/* */
/* */ private String tableCode;
/* */
/* */
/* */ private Object value;
/* */
/* */ private int afterEditEventState;
/* */
/* */ private List afterEditIndexList;
/* */
/* 45 */ private boolean isExcelImprting = false;
/* */
/* */ public List getAfterEditIndexList() {
/* 48 */ if (afterEditIndexList == null) {
/* 49 */ afterEditIndexList = new ArrayList();
/* */ }
/* 51 */ return afterEditIndexList;
/* */ }
/* */
/* */ public int getAfterEditEventState() {
/* 55 */ return afterEditEventState;
/* */ }
/* */
/* */ public void setAfterEditEventState(int afterEditEventState) {
/* 59 */ this.afterEditEventState = afterEditEventState;
/* */ }
/* */
/* */ public CardBodyAfterEditEvent(BillCardPanel cardPanel, BillEditEvent e, Object oldValue)
/* */ {
/* 64 */ this(cardPanel, e.getTableCode(), e.getRow(), e.getKey(), e.getValue(), oldValue);
/* */
/* 66 */ setSource(e.getSource());
/* */ }
/* */
/* */ public CardBodyAfterEditEvent(BillCardPanel cardPanel, String tableCode, int row, String key, Object value, Object oldValue)
/* */ {
/* 71 */ super(cardPanel, CardBodyAfterEditEvent.class.getName());
/* 72 */ this.tableCode = tableCode;
/* 73 */ this.row = row;
/* 74 */ this.key = key;
/* 75 */ this.value = value;
/* 76 */ this.oldValue = oldValue;
/* */ }
/* */
/* */
/* */
/* */
/* */
/* */ public String getKey()
/* */ {
/* 85 */ return key;
/* */ }
/* */
/* */
/* */
/* */
/* */
/* */ public Object getOldValue()
/* */ {
/* 94 */ return oldValue;
/* */ }
/* */
/* */
/* */
/* */
/* */
/* */ public int getRow()
/* */ {
/* 103 */ return row;
/* */ }
/* */
/* */
/* */
/* */
/* */
/* */ public String getTableCode()
/* */ {
/* 112 */ return tableCode;
/* */ }
/* */
/* */
/* */
/* */
/* */
/* */ public Object getValue()
/* */ {
/* 121 */ return getPkValue();
/* */ }
/* */
/* */
/* */
/* */
/* */
/* */ private Object getPkValue()
/* */ {
/* 130 */ if (pkValue == null) { BillItem item;
/* */ BillItem item;
/* 132 */ if (StringUtil.isEmpty(tableCode)) {
/* 133 */ item = getBillCardPanel().getBodyItem(key);
/* */ } else {
/* 135 */ item = getBillCardPanel().getBodyItem(tableCode, key);
/* */ }
/* 137 */ int type = item.getDataType();
/* 138 */ if (5 == type) {
/* 139 */ UIRefPane refPane = (UIRefPane)item.getComponent();
/* 140 */ if (refPane.getRefModel() != null) {
/* 141 */ pkValue = refPane.getRefModel().getPkValue();
/* */ }
/* */ }
/* 144 */ else if ((1 == type) || (2 == type) || (18 == type))
/* */ {
/* 146 */ if (value != null) {
/* 147 */ pkValue = new UFDouble(value.toString());
/* */ }
/* */ }
/* */ else {
/* 151 */ pkValue = value;
/* */ }
/* */ }
/* 154 */ return pkValue;
/* */ }
/* */
/* */ public void setExcelImprting(boolean isExcelImprting) {
/* 158 */ this.isExcelImprting = isExcelImprting;
/* */ }
/* */
/* */ public boolean isExcelImprting() {
/* 162 */ return isExcelImprting;
/* */ }
/* */ }

 

3.事件处理

package nc.ui.hfdm.hfdm_dormcheckin.ace.handler;
import nc.ui.pub.bill.BillCardPanel;
import nc.ui.pubapp.uif2app.event.IAppEventHandler;
import nc.ui.pubapp.uif2app.event.card.CardBodyAfterEditEvent;
import nc.ui.uif2.ShowStatusBarMsgUtil;
//单据表体字段编辑后事件
public class AceBodyAfterEditHandler implements IAppEventHandler {
@Override
public void handleAppEvent(CardBodyAfterEditEvent e) {
//获取卡片界面
BillCardPanel card = e.getBillCardPanel();
String key
= e.getKey();
int row = e.getRow();
int rowcount = card.getRowCount();
String rowvalue
= "";
if("beds".equals(key)){
String value
= (String) (null == e.getValue() ? "" : e.getValue());
for(int i = 0; i ){
if(i != row){
rowvalue
= (String) card.getBodyValueAt(i, key);
if(value.equals(rowvalue)){
card.setBodyValueAt(
null, row, key);
//判断是重复床位或者重复房间类型
ShowStatusBarMsgUtil.showErrorMsg("重复的床位,请修改数据!", "重复的床位,请修改数据!", e.getContext());
}
}
}
}
}
}

3.

 



推荐阅读
  • 本课程详细解析了Spring AOP的核心概念及其增强机制,涵盖前置增强、后置增强和环绕增强等类型。通过具体示例,深入探讨了如何在实际开发中有效运用这些增强技术,以提升代码的模块化和可维护性。此外,还介绍了Spring AOP在异常处理和性能监控等场景中的应用,帮助开发者更好地理解和掌握这一强大工具。 ... [详细]
  • 深入解析 Django 中用户模型的自定义方法与技巧 ... [详细]
  • Android 图像色彩处理技术详解
    本文详细探讨了 Android 平台上的图像色彩处理技术,重点介绍了如何通过模仿美图秀秀的交互方式,利用 SeekBar 实现对图片颜色的精细调整。文章展示了具体的布局设计和代码实现,帮助开发者更好地理解和应用图像处理技术。 ... [详细]
  • 本文深入探讨了 MXOTDLL.dll 在 C# 环境中的应用与优化策略。针对近期公司从某生物技术供应商采购的指纹识别设备,该设备提供的 DLL 文件是用 C 语言编写的。为了更好地集成到现有的 C# 系统中,我们对原生的 C 语言 DLL 进行了封装,并利用 C# 的互操作性功能实现了高效调用。此外,文章还详细分析了在实际应用中可能遇到的性能瓶颈,并提出了一系列优化措施,以确保系统的稳定性和高效运行。 ... [详细]
  • Android ListView 自定义 CheckBox 实现列表项多选功能详解
    本文详细介绍了在Android开发中如何在ListView的每一行添加CheckBox,以实现列表项的多选功能。用户不仅可以通过点击复选框来选择项目,还可以通过点击列表的任意一行来完成选中操作,提升了用户体验和操作便捷性。同时,文章还探讨了相关的事件处理机制和布局优化技巧,帮助开发者更好地实现这一功能。 ... [详细]
  • 本文详细探讨了Java集合框架的使用方法及其性能特点。首先,通过关系图展示了集合接口之间的层次结构,如`Collection`接口作为对象集合的基础,其下分为`List`、`Set`和`Queue`等子接口。其中,`List`接口支持按插入顺序保存元素且允许重复,而`Set`接口则确保元素唯一性。此外,文章还深入分析了不同集合类在实际应用中的性能表现,为开发者选择合适的集合类型提供了参考依据。 ... [详细]
  • 利用C#技术实现Word文档的动态生成与编辑
    本文通过一个简单的示例,介绍了如何使用C#语言实现Word文档的动态生成与编辑功能。文章详细阐述了在项目中引用Word动态库的方法,并通过具体代码示例展示了如何创建和操作Word表格。此内容旨在为初学者提供参考和学习资料,欢迎读者提出宝贵意见和建议。 ... [详细]
  • Java 中优先级队列的轮询方法详解与应用 ... [详细]
  • 深入解析JWT的实现与应用
    本文深入探讨了JSON Web Token (JWT) 的实现机制及其应用场景。JWT 是一种基于 RFC 7519 标准的开放性认证协议,用于在各方之间安全地传输信息。文章详细分析了 JWT 的结构、生成和验证过程,并讨论了其在现代 Web 应用中的实际应用案例,为开发者提供了全面的理解和实践指导。 ... [详细]
  • 在Spring Boot项目中,通过YAML配置文件为静态变量设置值的方法与实践涉及以下几个步骤:首先,创建一个新的配置类。需要注意的是,自动生成的setter方法默认是非静态的,因此需要手动将其修改为静态方法,以确保静态变量能够正确初始化。此外,建议使用`@Value`注解或`@ConfigurationProperties`注解来注入配置属性,以提高代码的可读性和维护性。 ... [详细]
  • 全面解析Java虚拟机:内存模型深度剖析 ... [详细]
  • Java 9 中 SafeVarargs 注释的使用与示例解析 ... [详细]
  • 本文提供了 RabbitMQ 3.7 的快速上手指南,详细介绍了环境搭建、生产者和消费者的配置与使用。通过官方教程的指引,读者可以轻松完成初步测试和实践,快速掌握 RabbitMQ 的核心功能和基本操作。 ... [详细]
  • 掌握并发编程的关键:深入解析三大核心挑战
    掌握并发编程的关键:深入解析三大核心挑战 ... [详细]
  • 深入解析十大经典排序算法:动画演示、原理分析与代码实现
    本文深入探讨了十种经典的排序算法,不仅通过动画直观展示了每种算法的运行过程,还详细解析了其背后的原理与机制,并提供了相应的代码实现,帮助读者全面理解和掌握这些算法的核心要点。 ... [详细]
author-avatar
鹏63213
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有